本文记录一次练手项目的过程,主要用来理解prometheus的监控报警流程及配置,使用docker-compose 快速上手,实现微信以及email报警。本文的主要目的,一是记录, 二时帮助新手来理解报警监控。 项目地址:https://github.com/kekek/prometheus-alert
这个项目监控了docker-compose管理的服务程序 target-go 手动停止后,prometheus 怎样采集指标 , 上报错误,及报警处理。需要了解更多的指标监控, 请查看prometheus 文档
本项目涉及到的知识点:
1. docker-compose 编排管理docker服务
2. prometheus 指标采集
3. prometheus 报警管理
文件目录结构
.
├── alertmanager/
├── docker-compose.yml
├── grafana/
├── mysql/
├── mysql-export/
├── prometheus/
├── readme.md
└── target-go/
- alertmanager/ : prometheus 的 报警管理器,负责报警信息归集,发送通知等
- prometheus/ : docker 启动的 prometheus 服务, 收集监控信息,根据监控信息发送报警
- target-go/ : go 启动的一个web服务,被监控对象,docker-compse中服务名称为 kingtrader, 在这个项目中,可以通过启动和停止 kingtrader,该项目来观察 prometheus的监控和报警结果
- docker-compose.yml : 通过 docker-compose 管理管理上面的服务
修改配置
- 启动docker, clone 仓库到本地目录,假如是prom
git clone https://github.com/kekek/prometheus-alert prom
- 修改 alertmanager 报警通知相关的配置文件
alertmanager/conf/alertmanager.yml
///////////////////////////// 发送邮件 /////////////////////////////
// 修改发送配置
smtp_from: '发送人'
smtp_smarthost: '发送服务器'
smtp_auth_username: '账号'
smtp_auth_password: "密码"
// 接收者
receivers:
- name: 'manager'
email_configs:
- send_resolved: false
to: 接收人email
///////////////////////////// 发送微信消息 /////////////////////////////
## 修改 wechat
# wechat_api_url: <string> | default = "https://qyapi.weixin.qq.com/cgi-bin/"
# wechat_api_secret: <secret>
# wechat_api_corp_id: <string>
运行并观察
- 进入 prom,启动服务
cd prom
docker-compose up
- 浏览器中 查看监控指标
- 停止 kingtrader 再次查看
docker-compose stop kingtrader
job="kingtrader"服务启动状态 0
指标报警触发状态 红色
不出意外的话,过5分钟就能收到报警信息啦
过程说明
prometheus 会不停的的采集 job=kingtrader 的状态, 如果根据配置, 如果该值为0 , 则每个采集周期都是发送一条警告信息到 alertmanager去, 由altermanager来处理信息的归集,过滤, 等, 然后发送报警信息
网友评论