一. 部署Alertmanager:
1. 解压Alertmanager压缩包:
[root@node5 ~]# tar xf alertmanager-0.24.0.linux-amd64.tar.gz -C /usr/local/
2. 为解压后的文件做软连接:
[root@node5 ~]# ln -sv /usr/local/alertmanager-0.24.0.linux-amd64/ /usr/local/alertmanager
3. 配置Alertmanager配置文件:
[root@node5 ~]# cd /usr/local/alertmanager
## 备份原本配置文件
[root@node5 alertmanager]# cp alertmanager.yml{,.bak}
[root@node5 alertmanager]# vim alertmanager.yml
global: ##全局配置
resolve_timeout: 5m
smtp_smarthost: 'smtp.163.com:456'
smtp_from: '[email protected]' ##发送告警的邮箱
smtp_auth_username: '[email protected]' ##邮箱的用户名
smtp_auth_password: 'KEZSZMNTQZXBQXRU' ##邮箱的授权码,并非邮箱的登陆密码
smtp_require_tls: false
route: ##配置报警分发策略
group_by: ['alertname'] ##分组标签
group_wait: 10s ##告警等待时间
group_interval: 10s ##两组告警的间隔时间
repeat_interval: 1m ##重复告警的间隔时间
receiver: 'mail' ##默认接收者
routes: ##指定哪些组可以接受消息
- receiver: mail
receivers: ##配置接收者信息
- name: 'mail'
email_configs:
- to: '[email protected]' ##接收报警邮件的邮箱
4. 测试配置文件语法是否正确:
[root@node5 alertmanager]# ./amtool check-config alertmanager.yml
Checking 'alertmanager.yml' SUCCESS
Found:
- global config
- route
- 0 inhibit rules
- 1 receivers
- 0 templates
二. 关联Prometheus和Alertmanager:
1. 修改Prometheus.yml文件中的alerting配置项及rule_files配置项:
[root@node5 ~]# vim /usr/local/prometheus/prometheus.yml
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
rule_files: ##告警规则的文件
- "rules.yml"
2. 编写告警规则文件" rules.yml ":
[root@node5 ~]# vim /usr/local/prometheus/rules.yml
groups:
- name: mem_rule
rules: ##告警规则
- alert: '内存报警' ##告警规则的名称
expr: (node_memory_MemTotal_bytes - (node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes )) / node_memory_MemTotal_bytes * 100 > 1
##基于PromQL表达式告警触发条件,用于计算是否有时间序列满足该条件
for: 30s ##评估等待时间,可选参数。用于表示只有当触发条件持续一段时间后才发送告警
labels: ##自定义标签,允许用户指定要附加到告警上的一组附加标签
severity: warning
annotations: ##用于指定一组附加信息
summary: "服务名:{{$labels.altername}} 内存报警" ##告警的摘要信息
description: "{{ $labels.altername }} 内存资源利用率大于 10%" ##告警的详细信息
value: "{{ $value }}" ##表达式计算后的值
3. 重启prometheus服务:
[root@node5 ~]# systemctl restart prometheus.service
三. 配置Alertmanager服务启动文件:
1. 编写服务启动文件:
[root@node5 ~]# vim /usr/lib/systemd/system/alertmanager.service
[Unit]
Description=alertmanager
Documentation=https://github.com/prometheus/alertmanager
After=network.target
[Service]
Type=simple
User=prometheus
WorkingDirectory=/usr/local/alertmanager
ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml --storage.path=/usr/local/alertmanager/data --log.level=debug --log.format=json
Restart=on-failure
[Install]
WantedBy=multi-user.target
2. 创建alertmanager的数据目录:
[root@node5 ~]# mkdir -p /usr/local/altermanager/data
3. 修改目录属主,属组:
[root@node5 ~]# chown -R prometheus.prometheus /usr/local/alertmanager/*
4. 启动服务:
[root@node5 ~]# systemctl daemon-reload
[root@node5 ~]# systemctl enable --now alertmanager.service
5. alertmanager服务默认端口是9093,查看端口是否监听:
[root@slave2 ~]# ss -lntup | grep 9093
tcp LISTEN 0 4096 [::]:9093 [::]:* users:(("alertmanager",pid=9770,fd=8))
6. 访问alertmanager:
http://192.168.188.115:9093