Prometheus架构从入门到实践(7) --alert配置

1.alertmanager配置文件说明

      # cat /root/alertmanager/alertmanager.yml

global:

  resolve_timeout: 5m   # resolve_timeout:解析超时时间

  http_config:

    proxy_url: 'http://192.168.13.190:7777'

route:   # route标记:告警如何发送分配

  group_by: ['alertname']   # group_by:采用哪个标签作为分组的依据

  group_wait: 10s   # group_wait:分组等待的时间

  group_interval: 10s   # group_interval:上下两组发送告警的间隔时间

  repeat_interval: 1h   # repeat_interval:重复发送告警时间。默认1h

  receiver: 'rocketchat'   # receiver 定义谁来通知报警

receivers:   # receiver标记:告警接受者

  - name: 'rocketchat'

    webhook_configs:

      - url: 'http://211.149.224.155:3000/hooks/ZanvEXd5t2Qaoycvm/Wwff7ndDeCq8DqFnaGhi4gdGWHpXJnaWyQoQzESypwwBvApJ'

        send_resolved: true

主要配置的作用:

global: 全局配置,包括报警解决后的超时时间、SMTP 相关配置、各种渠道通知的 API 地址等等。

route: 用来设置报警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。

receivers: 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式。

检查alertmanager配置文件

      # /root/alertmanager/amtool check-config /root/alertmanager/alertmanager.yml

Checking '/root/alertmanager/alertmanager.yml'  SUCCESS

Found:

- global config

- route

- 0 inhibit rules

- 1 receivers

- 0 templates

2.prometheus配置alert规则

      # vi /root/prometheus-2.25.0.linux-amd64/prometheus.yml

      增加以下内容

# Alertmanager configuration

alerting:

  alertmanagers:

  - static_configs:

    - targets:

      - alertmanager:['192.168.8.124:9093']

rule_files:

  - "rules/*.yml"

    - job_name: 'alertmanager'

    scrape_interval: 10s

    static_configs:

    - targets: ['192.168.8.124:9093']

      # ./promtool check config prometheus.yml

Checking prometheus.yml

  SUCCESS: 1 rule files found

Checking rules/node_alerts.yml

  SUCCESS: 1 rules found

      # cd /root/prometheus-2.25.0.linux-amd64

      # mkdir rules && cd rules/

      # touch linux_rule.yml

# groups:组告警

groups:

# name:组名。报警规则组名称

#NAME?

  # rules:定义角色

  rules:

  # alert:告警名称。 任何实例5分钟内无法访问发出告警

  - alert: NodeFilesystemUsage

    # expr:表达式。 获取磁盘使用率 大于百分之80 触发

    expr: 100 - (node_filesystem_free_bytes{mountpoint="/",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"} * 100) > 80

    # for:持续时间。 表示持续一分钟获取不到信息,则触发报警。0表示不使用持续时间

    for: 1m

    # labels:定义当前告警规则级别

    labels:

      # severity: 指定告警级别。

      severity: warning

    # annotations: 注释 告警通知

    annotations:

      # 调用标签具体指附加通知信息

      summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} 分区使用率过高" # 自定义摘要

      description: "{{ $labels.instance  }} : {{ $labels.job  }} :{{ $labels.mountpoint  }} 这个分区使用大于百分之80% (当前值:{{ $value }})" # 自定义具体描述

      # systemctl restart prometheus

3.Web查看:

      http://192.168.8.124:9090/alerts

      http://192.168.8.124:9090/targets

4.prometheus rules参考

      URL:https://awesome-prometheus-alerts.grep.to/rules

你可能感兴趣的:(Prometheus架构从入门到实践(7) --alert配置)