prometheus使用alertmanager部署Linux/mysql/oracle邮件告警
【环境介绍】
tar -zvxf alertmanager-0.21.0.linux-amd64.tar.gz
cp alertmanager-0.21.0.linux-amd64/alertmanager /usr/local/bin/
cp alertmanager-0.21.0.linux-amd64/amtool /usr/local/bin/
alertmanager --version
创建alertmanager发送邮件信息的配置文件,修改注释说明部分即可
cat > /etc/alertmanager/alertmanager.yml
global:
resolve_timeout: 5m
###################################
smtp_auth_username: "xxxxx@qq.com" ###这里配置发送邮件的用户,我这里使用自己QQ发送邮件
smtp_auth_password: "xxxxx" ###这里输入授权码,操作方法参考官方文档,操作比较简单,最后将授权码复制到xxxxx即可:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
#smtp_auth_secret: ""
smtp_require_tls: false
smtp_smarthost: "smtp.qq.com:465"
smtp_from: "xxxxxx@qq.com" ###这里配置发送邮件的地址,我这里使用自己QQ发送邮件
####################################
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'email-caozm'
receivers:
- name: 'email-caozm'
email_configs:
- send_resolved: true
to: xxxx_xxxx@kxxxx.com ###这里配置为接收邮件的地址
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
尝试启动alertmanager:
没有报错即可,然后打开网页地址访问http://10.0.x.xxx:9093/,查看status可以看到刚才配置文件内容
以上配置后,alertmanager安装完成,然后停止掉即可。
【prometheus加载alertmanager的配置】
只修改prometheus.yml配置文件即可,
分两部分:
第一个修改为alertmanager安装的IP,跟输出日志的端口一致
第二个配置告警的规则,这里在当前目录下创建rules文件夹,下面多个告警配置文件类型,*rules.yml表示以这个为后缀名就可以读取文件
添加一个告警规则文件,注意这里使用率当前配置文件下创建目录:
mkdir ./rules
cd rules
创建告警规则文件
注意:前面定义的*rules.yml,创建的文件一定要以这个为后缀名,这里部署多个监控告警,Linux跟Oracle跟MySQL规则,这里举例Linux规则,具体写法可以查询网址即可
cat >LinuxAlert_rules.yml
groups:
- name: LinuxAlert
rules:
- alert: Linux is down
expr: up == 0
for: 1m
labels:
zone: 内网
type: linux-alert
serverity: critical
annotations:
summary: "linux 主机{{ $labels.instance }} 停止工作"
description: "linux 主机{{ $labels.instance }} job {{ $labels.job }} linux主机服务已停止"
- alert: LinuxDdisKUseHight
expr: round(100-100*(node_filesystem_avail_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"})) > 95
for: 1m
labels:
zone: 内网
type: linux-alert
severity: critical
annotations:
summary: "linux 主机{{ $labels.instance }}磁盘使用率过高"
description: "linux 主机{{ $labels.instance }} 当前磁盘{{$labels.mountpoint}} 使用率{{ $value }}%"
重启prometheus加载告警规则
这里这边使用kill方式(具体压力大的需要权衡,可采取停服务方式)
查看prometheus加载告警规则是否生效
访问http://10.0.0.xxx:9090/alerts
这里信息跟配置的一致,三种类型,每种类型定义具体的告警规则
查看具体的规则是否正常,点击具体的规则,然后点击链接,自动跳转到查询界面:
调整具体的阈值,可以查看当前监控到达阈值的对象情况,我这里从95调整为80查看信息(具体告警阈值需要自己权衡评估)
【重新启动alertmanager触发告警及告警邮件信息】
跟第一次启动方式一样,启动alertmanager,这里使用调试目的,没有后台运行(后台运行命令 nohup alertmanager --config.file alertmanager.yml & 注意具体的路径配置文件)
查看到达阈值规则的告警信息是否发送到alertmanager,到达阈值的告警会显示在这里
查看邮件信息:
Linux邮件告警信息
Oracle告警邮件信息
触发的告警信息
恢复的告警信息
MySQL告警邮件信息
触发的告警信息
恢复的告警信息