首页
运维部署
苹果MAC系统
Kubernetes(K8S)
nginx 使用geo模块识别ip归属地做跳转
Docker
Docker部署Uptime Kuma
多媒体类
NGINX + OBS = 网页直播服务搭建
CentOS 7部署DNS服务器BIND
监控告警
prometheus(一、基础使用)
Prometheus(二、用snmp监控)
Grafana(1、部署+使用)
Grafana(2、snmp交换机仪表盘自定义)
prometheus_Alertmanager(三、报警配置_邮件)
prometheus_Alertmanager(四、企微 钉钉 告警)
prometheus_blackbox(五、黑盒监测 )
Pushgateway-客户端主动推送告警
snmp_exporter快速监控交换机
多个Prometheus实例互联
exporter自定义监控项
PC
服务器
Dell 服务器R540做raid
服务器电源供电
更换raid阵列卡
企业微信
企业微信api使用
centos7中yum安装dnsmasq内网dns
centos7部署ntopng
Syslog 日志存储
IT-数据恢复
OpenVPN
JumpServer分布式部署
Gitlab
ansible常用命令
将pem证书转换为crt和key
CentOS 7 中搭建ocserv
ocserv相关收藏
ocserv服务器配置实例
ocserv客户端无法将网络共享给其它终端
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
prometheus_Alertmanager(三、报警配置_邮件)
## AlertManager简介 Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,而且很容易做到告警信息进行去重,降噪,分组等,是一款前卫的告警通知系统。 Prometheus会根据配置的参数周期性的对警报规则进行计算, 如果满足警报条件,生产一条警报信息,将其推送到 Alertmanager 组件,Alertmanager 收到警报信息之后,会对警告信息进行处理,进行 分组 Group 并将它们通过定义好的路由 Routing 规则转到 正确的接收器 receiver, 比如 Email、 钉钉、企业微信(webhook)等。 prometheus触发一条告警的过程: prometheus—>触发阈值—>超出持续时间—>alertmanager—>分组|抑制|静默—>媒体类型—>邮件|钉钉|微信等。 ## 二进制部署 Alertmanager ### 下载 [官网下载](https://prometheus.io/download/#alertmanager "官网下载") [github下载](https://github.com/prometheus/alertmanager/releases "github下载") ```shell #下载 wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz #解压/opt/monitor目录下 tar -zxvf alertmanager-0.25.0.linux-amd64.tar.gz -C /opt/monitor/ #重命名 cd /opt/monitor/ mv alertmanager-0.25.0.linux-amd64/ alertmanager #查看版本 cd alertmanager/ alternatives --version #alternatives(备用)版本 1.7.6 ``` ### 设置为系统服务 #### 系统service编写系统service编写 创建/usr/lib/systemd/system/alertmanager.service配置文件 ```shell cat > /etc/systemd/system/alertmanager.service << "EOF" [Unit] Description=alertmanager After=local-fs.target network-online.target network.target Wants=local-fs.target network-online.target network.target [Service] ExecStart=/opt/monitor/alertmanager/alertmanager --config.file=/opt/monitor/alertmanager/alertmanager.yml --storage.path=/opt/monitor/alertmanager/data/ Restart=on-failure [Install] WantedBy=multi-user.target EOF ``` alertmanager程序位置根据实际情况修改,我的是在/opt/monitor/alertmanager/目录下 #### 刷新服务配置并启动服务 ```shell systemctl daemon-reload systemctl start alertmanager.service systemctl status alertmanager systemctl enable alertmanager #设置开机自启动 ``` 浏览器访问: 默认监听端口9093 http://IP:9093/ ### 配置alertmanager 修改alertmanager配置文件 vim alertmanager.yml ```shell global: # resolve_timeout:解析超时时间 resolve_timeout: 5m # smtp_smarthost: 使用email打开服务配置 smtp_smarthost: 'smtp.126.com:465' # smtp_from:指定通知报警的邮箱 smtp_from: 'laowang@126.com' # smtp_auth_username:邮箱用户名 smtp_auth_username: 'laowang@126.com' # smtp_auth_password:授权密码 smtp_auth_password: '123456' # smtp_require_tls:是否启用tls smtp_require_tls: false # route标记:告警如何发送分配 route: # group_by:采用哪个标签作为分组的依据 group_by: ['alertname'] # group_wait:分组等待的时间 group_wait: 10s # group_interval:上下两组发送告警的间隔时间 group_interval: 10s # repeat_interval:重复发送告警时间。默认1h repeat_interval: 1m # receiver 定义谁来通知报警 receiver: 'mail' # receiver标记:告警接受者 receivers: # name:报警来源自定义名称 - name: 'mail' # email_configs:通过邮箱发送报警 email_configs: # to:指定接收端email - to: 'laowang@126.com' # inhibit_rules标记: #inhibit_rules: # - source_match: # severity: 'critical' # target_match: # severity: 'warning' # equal: ['alertname', 'dev', 'instance'] ``` 主要配置的作用: global: 全局配置,包括报警解决后的超时时间、SMTP 相关配置、各种渠道通知的 API 地址等等。 route: 用来设置报警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。 receivers: 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式。 inhibit_rules: 抑制规则配置,当存在与另一组匹配的警报(源)时,抑制规则将禁用与一组匹配的警报(目标)。 smtp_smarthost: 这里为 QQ 邮箱 SMTP 服务地址,官方地址 smtp.qq.com 端口为 465 或 587,同时设置开启 POP3/SMTP 服务。 smtp_auth_password: 这里为第三方登录 QQ 邮箱的授权码,非 QQ 账户登录密码,否则会报错,获取方式在 QQ 邮箱服务端设置开启 POP3/SMTP 服务时会提示。 #### 检查alertmanager配置文件 ./amtool check-config alertmanager.yml ```shell [root@localhost alertmanager]# ./amtool check-config alertmanager.yml Checking 'alertmanager.yml' SUCCESS Found: - global config - route - 1 inhibit rules - 1 receivers - 0 templates ``` 重启alertmanager systemctl restart alertmanager ### Prometheus配置 #### 编辑prometheus.yml 进入prometheus安装目录,编辑prometheus.yml,设置如下配置 告警配置连接 ```shell # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: - 127.0.0.1:9093 ``` 开启告警配置 ```shell rule_files: # 告警规则配置文件位置 - "rules/*.yml" ``` 增加名为Alertmanager的监控项 ```shell scrape_configs:中增加下面的job_name项 # - job_name: 'alertmanager' static_configs: - targets: ['172.20.32.218:9093'] ``` #### 检查并重新加载配置文件 ./promtool check config prometheus.yml ```shell [root@localhost prometheus]# ./promtool check config prometheus.yml Checking prometheus.yml SUCCESS: prometheus.yml is valid prometheus config file syntax ``` #### 添加报警规则 在prometheus.yml的同级目录下,创建rules目录,在该rules目录下创建node_alerts.yml文件: ``` #创建告警目录 mkdir rules && cd rules/ vim node_alerts.yml #添加报警规则 [root@localhost rules]# cat node_alerts.yml groups: - name: general.rules rules: - alert: NodeExporterDown expr: up{job="node-exporter"} != 1 for: 5m labels: severity: warning level: 2 annotations: summary: "端口9100探测失败" description: "服务器{{ $labels.node_name }}端口9100探测失败,请尽快检查node_exporter是否出现异常!" - alert: NodeExporterDown2 expr: up{node_name="test188"} != 1 for: 5m labels: severity: warning level: 2 annotations: summary: "188探测失败" description: "服务器{{ $labels.node_name }}端口9100探测失败,请尽快检查node_exporter是否出现异常!" ``` 注意:可以配置多个监控告警项,如上文件中配置多个 -alert **重启Prometheus** systemctl restart prometheus ### 验证测试 测试,将node_exporter进程杀死,此时可以打开prometheus-server的web界面的alerts选项查看是否有Firing,如果有了,到alertmanager的web页面的alerts选项查看是否有告警进来,如果有,就表示alertmanager能正常接收告警了,如果没有收到告警信息,此就是alertmanager和消息通知组件的问题了。 查看告警规则配置 ![](/media/202303/2023-03-02_155500.png) 关掉上面监控项的机器,查看告警 ![](/media/202303/2023-03-02_155521.png) #### 警报有三种状态: Inactive 警报未激活; Pending:警报已满足测试表达式条件,但未达到for指定的持续时间; Firing:警报满足测试表达式条件,且持续时间达到了for指定的持续时间; #### 查看邮箱中邮件 ## 在此文基础上,设置企微 钉钉 告警 请见下一篇文章。 参考: [Prometheus监控平台Alertmanager配置告警](https://blog.csdn.net/finghting321/article/details/108107591 "Prometheus监控平台Alertmanager配置告警") [配置Alertmanager(钉钉告警)](https://www.cnblogs.com/blogof-fusu/p/17161554.html "配置Alertmanager(钉钉告警)") [AlertManager实现webhook告警](https://blog.csdn.net/weixin_44385486/article/details/123605887 "AlertManager实现webhook告警")
local
2023年3月2日 16:39
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码