Docker部署Prometheus+Grafana+Alertmanager企业微信机器人告警
根据项目需求在之前的的告警上进行修改
1.修改Alertmanager配置文件
# vim /data/alertmanager/alertmanager.yml
# 添加以下内容
global: # 指定了全局配置
resolve_timeout: 5m # 表示在警报解决之前等待的最长时间为5分钟
smtp_smarthost: 'xxxxxxx.qq.com:123' # SMTP 服务器和端口
smtp_from: 'xxxxxxx@qq.com' # 发件人邮箱
smtp_auth_username: 'xxxxxx@qq.com' # SMTP 认证用户名
smtp_auth_password: 'asdfasdfzi6V5' # SMTP 认证密码
smtp_require_tls: false # 是否要求使用 TLS
smtp_hello: 'qq.com' # SMTP 服务器的 HELO 名称
route: # 定义告警发送规则
group_by: ['alertname'] # 按照alertname进行分组,也就是相同警报名称的警报将会被分到一组。
group_wait: 10s # 表示在同一组内等待来自不同实例的所有警报。
group_interval: 10s # 表示在发送多个通知之间等待的时间。
repeat_interval: 5m # 表示对于未解决的警报,重复发送通知的间隔。
receiver: 'web.hook' # 表示接收到的警报将会被发送到名为web.hook的接收者
routes:
- receiver: 'web.hook' # 测试环境使用 webhook
match_re:
environment: 'test'
- receiver: 'email.alert'
match_re:
environment: 'pro'
receivers: # 接收通知的配置
- name: 'email.alert'
email_configs:
- to: 'xxxxx@qq.com' # 收件人邮箱
headers:
Subject: "告警" # 邮件主题
send_resolved: true # 发送解决告警通知
- name: 'web.hook' # 定义接收者名称为web.hook
webhook_configs: # 定义了 webhook 目标的配置
- url: 'http://192.168.1.202:8080/adapter/wx' # 指定了目标地址
send_resolved: true # 表示在警报解决时也发送通知。
inhibit_rules: # 降低告警收敛,减少报警,发送关键报警。
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
2.修改prometheus配置文件
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.1.202:9093
# 配置alertmanagers的IP和端口
rule_files:
- "rules/*.yml"
# 文件夹rules需要和prometheus.yml在同级目录,这里存放告警触发规则文件
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
# 配置Prometheus的主机地址,默认端口9090
# 云服务器部署ip填写内网ip
- job_name: node-exporter
# 此处添加了多台主机,每台主机都要安装node-exporter
static_configs:
- targets: ['192.168.1.202:9100']
labels:
instance: localhost
group: 项目1 # 根据项目经行分组
environment: test #根据服务器环境添加,此处为测试环境
- targets: ['192.168.1.193:19100']
labels:
instance: 192.168.1.193
group: 项目1
environment: pro
- targets: ['192.168.1.181:9100']
labels:
instance: 192.168.1.181
group: 项目2
environment: test
- targets: ['192.168.1.182:9100']
labels:
instance: 192.168.1.182
group: 项目3
environment: pro
- targets: ['192.168.1.203:9100']
labels:
instance: 192.168.1.203
group: 项目3
environment: test
- job_name: 'alertmanager_exporter'
static_configs:
- targets: ['192.168.1.202:9093']
3.修改告警规则,所有告警规则都要修改
groups:
- name: CPU报警规则
rules:
- alert: CPU使用率告警
expr: 100 - (avg by (instance)(irate(node_cpu_seconds_total{mode="idle"}[5m]) )) * 100 > 90
for: 1m
labels:
severity: warning
environment: '{{ $labels.environment }}' #添加环境,可对照之前文章进行修改
annotations:
summary: "CPU使用率正在飙升 - {{ $labels.environment }}"
description: "{{ $labels.environment }}的CPU使用率超过90%(当前值:{{ $value }}%)"
4.重启所有服务
# docker-compose restart