文章目录
-
- 1、Prometheus & AlertManager 介绍
- 2、环境、软件准备
- 3、启动并配置 Prometheus
-
- 3.1、Docker 启动 Prometheus
- 3.2、Docker 启动 node-exporter
- 3.3、Prometheus 配置 node-exproter
- 4、启动并配置 AlertManager
-
- 4.1、AlertManager 配置邮件告警
- 4.2、Prometheus 配置 AlertManager 告警规则
- 4.3、触发 警发送 Email
- 4.4、AlertManager 配置自定义邮件模板
1、Prometheus & AlertManager 介绍
Prometheus 是一套开源的系统监控、 警、时间序列数据库的组合,最初有 SoundCloud 开发的,后来随着越来越多公司使用,于是便独立成开源项目。Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,例如邮件、微信、钉钉、Slack 等常用沟通工具,而且很容易做到告警信息进行去重,降噪,分组等,是一款很好用的告警通知系统。
2、环境、软件准备
本次演示环境,我是在本机 MAC OS 上操作,以下是安装的软件及版本:
- Docker: 18.06.3-ce
- Oracle VirtualBox: 6.0.8 r130520 (Qt5.6.3)
- Linux: 7.6.1810
- Prometheus: v2.11.1
- Alertmanager: v0.18.0
- Node-Exporter: v0.18.1
注意:这里为了快速方便启动 Prometheus、Alertmanager、Node-Exporter 服务,我使用 Docker 方式启动,所以本机需要安装好 Docker 环境,这里忽略 Docker 的安装过程,着重介绍一下如何启动并配置 Prometheus 监控 警系统 集成 AlertManager,并配置 Email 发送告警信息。
3、启动并配置 Prometheus
3.1、Docker 启动 Prometheus
启动 Prometheus 很简单,这里为了方便,我采用 Docker 方式启动,最简单的启动命令如下:
这里默认 Prometheus 开放 端口,我们使用最新版官方镜像,当前最新版本为 ,启动完成后,浏览器访问 即可看到默认 UI 页面。
3.2、Docker 启动 node-exporter
同样采用 Docker 方式启动 服务,最简单的启动命令如下:
这里 默认启动端口为 ,当前镜像最新版本为 。启动完成后,浏览器访问 可以看到提供的监控指标项列表了。
这里通过挂载的方式将外部配置文件覆盖容器内配置,重启 prometheus 服务,浏览器访问 可以看到新增加的 target,并且是 状态。
4.1、AlertManager 配置邮件告警
AlertManager 默认配置文件为 ,在容器内路径为 ,默认配置如下:
简单介绍一下主要配置的作用:
- global: 全局配置,包括 警解决后的超时时间、SMTP 相关配置、各种渠道通知的 API 地址等等。
- route: 用来设置 警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。
- receivers: 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式。
- inhibit_rules: 抑制规则配置,当存在与另一组匹配的警 (源)时,抑制规则将禁用与一组匹配的警 (目标)。
那么,我们就来配置一下使用 Email 方式通知 警信息,这里以 QQ 邮箱为例,配置如下:
以上配置我反复试验后,发现不同的环境参数配置也不一样,调试期间出现了各种 错问题,将其中几个关键的配置说明一下:
- : 这里为 QQ 邮箱 SMTP 服务地址,官方地址为 端口为 或 ,同时要设置开启 服务。
- : 这里为第三方登录 QQ 邮箱的授权码,非 QQ 账户登录密码,否则会 错,获取方式在 QQ 邮箱服务端设置开启 服务时会提示。
- : 是否使用 tls,根据环境不同,来选择开启和关闭。如果提示 错 ,那么就需要设置为 true。着重说明一下,如果开启了 tls,提示 错 ,需要在 下配置 来跳过 tls 验证。
修改 AlertManager 启动命令,将本地 文件挂载到容器内指定位置。
4.2、Prometheus 配置 AlertManager 告警规则
接下来,我们需要在 Prometheus 配置 AlertManager 服务地址以及告警规则,新建 警规则文件 如下:
说明一下:该 rules 目的是监测 node 是否存活, 为 PromQL 表达式验证特定节点 是否活着, 表示 警状态为 后等待 15s 变成 状态,一旦变成 状态则将 警发送到 AlertManager, 和 对该 alert 添加更多的标识说明信息,所有添加的标签注解信息,以及 中该 job 已添加 label 都会自动添加到邮件内容中,更多关于 rule 详细配置可以参考 这里。
然后,修改 配置文件,添加 rules 规则文件。
注意: 这里 为容器内路径,需要将本地 文件挂载到容器内指定路径,修改 Prometheus 启动命令如下,并重启服务。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!