Loki日志系统告警

          Loki在2.0 版本以后就提供了报警功能,其包含了一个Ruler组件,可以持续查询一个 rules规则,并将超过阈值的事件推送给 AlertManager 或者其他 Webhook 服务。这是 Loki 自带的报警功能,且完全兼容AlertManager。

        启用Ruler组件需要在配置文件中加入如下配置:

    ruler:
      alertmanager_url: http://alertmanager:9093           # alertmanager地址
      enable_alertmanager_v2: true
      enable_api: true                 		# 启用loki rules API
      enable_sharding: true            # 对rules分片,支持ruler多实例
      ring:                  		# ruler服务的一致性哈希环配置,用于支持多实例和分片
        kvstore:
          store: inmemory
      rule_path: /data/loki/tmp_rules            # rules规则文件临时存储路径
      storage:                         # rules规则存储,主要支持本地存储和对象存储
        type: local
        local:
          directory: /data/loki/rules            # rules规则文件存储路径
      flush_period: 1m                # rules规则加载时间

        上述配置文件中,通过loki.config.ruler对Ruler组件进行配置,其中,ruler.rule_path这个路径用于Loki临时存储ruler规则,需要用户提前创建好。ruler.storage.local.directory这个路径用于存储用户配置的rules规则,同样需要用户提前创建好,且需要在这个路径下继续创建一个“fake”名称的文件夹,这个“fake”是Loki以单租户模式运行时默认的租户Id。所以,根据上述配置文件,rulers规则文件需要放在/data/loki/rules/fake下。

        Loki的rulers规则文件与Prometheus完全兼容,唯一的区别在于查询语句不同,在Loki中使用LogQL来查询日志,一个典型的 rules 配置文件如下所示:

groups:
  - name: <string>						# 组名称
    rules:
      - alert: <string>						# Alert名称
       expr: <string>						# LogQL查询语句
       [ for: <duration> | default = 0s ]			# 产生告警的持续时间 
       labels:							# 自定义告警事件的label
       [ <labelname>: <tmpl_string> ]
       annotations:						# 告警时间的注释
       [ <labelname>: <tmpl_string> ]

        根据上述rules配置文件规则,可以配置一个如下所示的规则实例:表示对于app="uav"业务,日志的错误率大于5%会触发告警。

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

        上述rules规则文件配置好以后,放入/data/loki/rules/fake文件夹下,Loki就可以读取到rules规则,在下面Loki日志中可以看到配置的告警规则信息触发:

        当触发告警时,会根据配置好的Alertmanager地址将告警信息发送到Alertmanager中,Alertmanager再根据配置的邮箱地址发送到指定邮箱中,如下图所示:


链接:移动云开发者社区

来源:移动云官网开发者社区

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值