1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Loki 告警的正確姿勢(shì)

        共 3011字,需瀏覽 7分鐘

         ·

        2020-10-15 20:56

        小白之前有通過Grafana設(shè)置Loki數(shù)據(jù)源的騷操作來做日志告警,雖然能直接在Grafana面板上配置告警,但它們還是沒辦法集中維護(hù)和管理。小白前面介紹了那么多關(guān)于Loki的文章,那么它有沒有像Prometheus一樣的rules來管理策略呢?答案是肯定的!

        根據(jù)Loki的RoadMap,Ruler組件將于Loki 1.7.0版本正式推出。那么小白今天先帶大家嘗嘗鮮,體驗(yàn)下在Loki里日志告警的正確姿勢(shì)。

        Loki Ruler

        Loki1.7將包含一個(gè)名為Ruler的組件,它是從Crotex項(xiàng)目里面引入進(jìn)來的(還記得Loki分集群的架構(gòu)嗎?)Ruler的主要功能是持續(xù)查詢r(jià)ules規(guī)則,并將超過閾值的事件推送給Alert-Manager或者其他Webhook服務(wù)。結(jié)合Cortex,Loki的Ruler組件也是如上的架構(gòu)。可以看到loki和cortex的架構(gòu)主要區(qū)別只剩下Configs API了。?不過,牛逼的是借助注冊(cè)到consul的一致性hash環(huán),Loki的ruler同樣支持多實(shí)例的分布式部署,實(shí)例和實(shí)例之間會(huì)自己根據(jù)分片協(xié)調(diào)需要使用的rules。不過這是一個(gè)動(dòng)態(tài)的過程,任何ruler實(shí)例的添加或刪除都會(huì)導(dǎo)致rules的重新分片。

        當(dāng)前啟用Loki的ruler組件比較簡(jiǎn)單,只要將下列的相關(guān)配置引入,并在Loki啟動(dòng)的參數(shù)里面加入-target=ruler即可。

        ruler:
        # 觸發(fā)告警事件后的回調(diào)查詢地址
        # 如果用grafana的話就配置成grafana/explore
        external_url:

        # alertmanager地址
        alertmanager_url:
        enable_alertmanager_v2: true

        # 啟用loki rules API
        enable_api: true

        # 對(duì)rules分片,支持ruler多實(shí)例
        enable_sharding: true

        # ruler服務(wù)的一致性哈希環(huán)配置,用于支持多實(shí)例和分片
        ring:
        kvstore:
        consul:
        host: :8500
        store: consul

        # rules臨時(shí)規(guī)則文件存儲(chǔ)路徑
        rule_path: /tmp/rules

        # rules規(guī)則存儲(chǔ)
        # 主要支持本地存儲(chǔ)(local)和對(duì)象文件系統(tǒng)(azure, gcs, s3, swift)
        storage:
        type: local
        local:
        directory: /loki/rules

        # rules規(guī)則加載時(shí)間
        flush_period: 1m

        想快速體驗(yàn)Ruler的同學(xué),可以用小白之前docker-compose來部署demo

        https://github.com/CloudXiaobai/loki-cluster-deploy/tree/master/demo/docker-compose

        Alert配置

        Loki的rulers規(guī)則和結(jié)構(gòu)與Prometheus完全兼容,唯一的區(qū)別在于查詢語(yǔ)句不同。在Loki中我們用logQL來查詢?nèi)罩局笜?biāo)。一個(gè)典型的rules配置說明如下:

        groups:
        # 組名稱
        - name:
        rules:
        # Alert名稱
        - alert:
        # logQL查詢語(yǔ)句
        expr:
        # 產(chǎn)生告警的持續(xù)時(shí)間
        pending.
        [ for: | default = 0s ]
        # 自定義告警事件的label
        labels:
        [ : ]
        # 告警時(shí)間的注釋
        annotations:
        [ : ]

        舉個(gè)栗子,如果小白想通過日志查到某個(gè)業(yè)務(wù)日志的錯(cuò)誤率大于5%就觸發(fā)告警,那么可以配置成這樣:

        groups:
        - name: should_fire
        rules:
        - alert: HighPercentageError
        expr: |
        sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
        /
        sum(rate({app="foo", env="production"}[5m])) by (job)
        > 0.05
        for: 10m
        labels:
        severity: page
        annotations:
        summary: High request latency

        當(dāng)告警事件產(chǎn)生時(shí),我們?cè)赼lert-manager上就能收到該事件的推送。

        Ruler用途

        • 還沒用metrics做應(yīng)用監(jiān)控告警時(shí)

        對(duì)于有些業(yè)務(wù)可能沒有暴露自己程序運(yùn)行時(shí)的metrics時(shí),這個(gè)時(shí)候我們可以借助查詢?nèi)罩镜姆椒ㄈ?gòu)建相關(guān)的指標(biāo)告警是比較容易的。比如上面提到的應(yīng)用錯(cuò)誤率的告警。

        • 黑匣子監(jiān)控

        對(duì)于完全不受我們控制的應(yīng)用(開源服務(wù)或者三方閉源產(chǎn)品),在他們不提供監(jiān)控指標(biāo)時(shí),我們采用查詢?nèi)罩局笜?biāo)的方式不失為一個(gè)快速的方法。

        下面這個(gè)就是某大佬利用nginx日志和logQL做的監(jiān)控和告警大盤,簡(jiǎn)直不要太炫酷。

        • 響應(yīng)應(yīng)用的事件

        對(duì)于有些應(yīng)用的特殊的事件,我們也可以利用Loki的ruler來做相關(guān)的通知,比如檢查日志中的base auth認(rèn)證泄漏事件

        - name: credentials_leak
        rules:
        - alert: http-credentials-leaked
        annotations:
        message: "{{ $labels.job }} is leaking http basic auth credentials."
        expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
        for: 10m
        labels:
        severity: critical
        • High-Cardinality高基告警

        看過小白之前《Loki最佳實(shí)踐》的同學(xué)知道,在Loki中high-cardinality會(huì)嚴(yán)重拖慢查詢效率。這部分查詢會(huì)在接下來的LogQL v2語(yǔ)法中實(shí)現(xiàn)。




        K8S進(jìn)階訓(xùn)練營(yíng),點(diǎn)擊下方圖片了解詳情


        瀏覽 207
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲精品三级 | 办公室情趣内衣呻吟嗯啊小说 | 日日摸夜夜添夜夜添欧美毛片小说 | 欧美人妻黑人精品久久五月天婷婷 | 忘穿内裤被同桌c了好爽漫画 | 国产精品久久婷婷六月丁香 | 成人精品三级 | 亚洲黄色电影免费在线观看 | 又黄又湿又爽又高潮的视频 | 日韩国产 |