前言
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
本文中的是prometheus已经安装好,如果你还未安装,可以参考上一篇文章:prometheus安装及使用入门
文章目录
- 一. 实验环境
- 二. alertmanager简介
- 三. 安装部署alertmanager
- 3.1 下载alertmanager
- 3.2 解压并做软连接
- 3.4 查看alertmanager的帮助
- 3.5 查看alertmanager的配置文件
- 四. 启动alertmanager
- 4.1 创建数据存储目录
- 4.2 添加service文件
- 4.3 创建启动用户
- 4.4 修改alertmanager文件所属
- 4.5 启动alertmanager并设置开机启动
- 4.6 查看alertmanager启动状态
- 4.7 查看alertmanager的网页
- 4.7.1 alertmanager的WEB页面简介
- 五. 配置prometheus连接alertmanager
- 5.1 修改prometheus的配置文件
- 5.2 检查prometheus语法
- 5.3 让prometheus重新读取配置文件
- 六. 总结
一. 实验环境
本次实验环境见下表
操作系统 | 服务器IP | hostname |
---|---|---|
centos7.9 | 10.0.0.7 | mufengrow7 |
二. alertmanager简介
alertmanager是prometheus官方开源的使用go语言实现的告警组件。在整个prometheus监控环境中有着举足轻重的作用。
prometheus将整个告警分为两部分,第一部f分是prometheus server,第二部分是alertmanager。
prometheus server实现的是存储告警规则和发送告警信息的功能。
alertmanager的核心功能就是接收prometheus server的告警信息,然后将信息发送至在alertmanager设置好的接收者(如:邮件,钉钉,企业微信等等)。
如果还没了解alertmanager的作用,我这里就举个例子:
假设领导就是prometheus server,人事就是alertmanager,接收者就是所有员工。
领导让人事通知所有员工周六团建,人事执行领导的吩咐,通过这种手段(邮件,钉钉,企业微信)通知所有员工周六去团建(告警信息)。
在整个通知的过程中,人事不对消息有任何的修改,直接发送给所有的员工。
三. 安装部署alertmanager
alertmanager可以安装在任何一台服务器上,只要该服务器能与prometheusserver通信即可。
此外如果需要使用外部的邮件,钉钉或企业微信进行通知,那么安装alertmanager的服务器需要连通外网。
3.1 下载alertmanager
在哪里可以下载最新版本的alertmanager呢?
我们可以到prometheus的官方下载页面下载最新版本的alertmanager
到哪里下载旧版本的alertmanager呢?
如果需要旧版本的alertmanager可以在prometheus官方的下载页面进入alertmanager的github页面,然后下载旧版本的alertmanager。
本次实验使用最新版本的alertmanager
#创建alertmanager安装目录
[root@mufengrow7 ~]# mkdir /apps
#进入安装目录
[root@mufengrow7 ~]# cd /apps/
#下载alertmanager
[root@mufengrow7 apps]# wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz
3.2 解压并做软连接
alertmanager下载后默认是一个压缩包,我们需要解压才能使用。
而这里使用软连接的目的是方面以后alertmanager版本更换,可以进行版本的回滚或者版本的升级。
#解压alertmanager
[root@mufengrow7 apps]# tar zxvf alertmanager-0.25.0.linux-amd64.tar.gz
alertmanager-0.25.0.linux-amd64/
alertmanager-0.25.0.linux-amd64/alertmanager.yml
alertmanager-0.25.0.linux-amd64/NOTICE
alertmanager-0.25.0.linux-amd64/amtool
alertmanager-0.25.0.linux-amd64/alertmanager
alertmanager-0.25.0.linux-amd64/LICENSE
#创建软连接
[root@mufengrow7 apps]# ln -sv /apps/alertmanager-0.25.0.linux-amd64 /apps/alertmanager
‘/apps/alertmanager’ -> ‘/apps/alertmanager-0.25.0.linux-amd64’
3.4 查看alertmanager的帮助
对于不熟悉alertmanager的朋友来说,我们先查看一下alertmanager的帮助文档,有助于我们了解alertmanager的启动。
#进入alertmanager目录
[root@mufengrow7 apps]# cd alertmanager
#查看alertmanager目录文件
[root@mufengrow7 alertmanager]# ll
total 61016
-rwxr-xr-x 1 prometheus prometheus 34546840 Dec 22 22:52 alertmanager
-rw-r--r-- 1 prometheus prometheus 356 Dec 22 23:14 alertmanager.yml
-rwxr-xr-x 1 prometheus prometheus 27906085 Dec 22 22:53 amtool
-rw-r--r-- 1 prometheus prometheus 11357 Dec 22 23:14 LICENSE
-rw-r--r-- 1 prometheus prometheus 457 Dec 22 23:14 NOTICE
#查看alertmanager的帮助
[root@mufengrow7 alertmanager]# ./alertmanager --help
为了更直观一些,我们把alermanager
常用的参数用表格来展示:
参数 | 描述 |
---|---|
–config.file | 指定alertmanager的配置文件 |
–storage.path | 指定数据存储目录 |
–data.retention | 指定数据存放时间 |
–web.listen-address | 指定alertmanager的监听地址,默认监听地址为:“0.0.0.0:9093” |
–web.timeout | 设置web的请求超时时间 |
–log.level | 设置日志级别 |
–log.format | 设置日志格式 |
–version | 查看alertmanager版本 |
3.5 查看alertmanager的配置文件
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
receiver: 'web.hook'
receivers:
- name: 'web.hook'
webhook_configs:
- url: 'http://127.0.0.1:5001/'
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
通过查看alertmanager的配置文件,alertmanager的配置文件有三个模块,分别为“route”,“receivers”和“inhibit_rules”。
简单介绍这三个模块:
“route”:类似路由器一样,主要的功能是用于匹配告警消息最后发到哪个接收者(receivers)。还有就是关于路由匹配规则,路由组的信息等。
“receivers”:定义告警的接收者,支持多种接收方式,如:邮件,钉钉,企业微信。
“inhibit_rules”:定义抑制规则。
当然,alertmanager的配置不仅仅是这三个,至少还有全局的配置。不过这四个模块在alertmanager的配置里是一定会用到的。
更详细的alertmanager配置我们可以到alertmanager官方文档中查看。
四. 启动alertmanager
4.1 创建数据存储目录
因为alertmanager也是需要存储数据的,所以为alertmanager创建了一个存储数据的目录。
[root@mufengrow7 apps]# mkdir -p /apps/alertmanager-0.25.0.linux-amd64/data
代码注释:
-p
:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
4.2 添加service文件
本次实验是将alertmanager从后台启动,所以我们给alertmanager添加一个service文件。
[root@mufengrow7 apps]# vim /usr/lib/systemd/system/alertmanager.service
[Unit]
Description=Alertmanager for prometheus
Documentation=https://prometheus.io/docs/alerting/alertmanager/
[Service]
Restart=always #负责在崩溃后重新恢复服务
User=prometheus #启动用户
ExecStart=/apps/alertmanager/alertmanager --config.file=/apps/alertmanager/alertmanager.yml --storage.path=/apps/alertmanager/data
ExecReload=/bin/kill -HUP $MAINPID #重启参数
TimeoutStopSec=20s
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
代码注释:
--config.file
:指定配置文件
--storage.path
:指定数据存储路径
4.3 创建启动用户
从上方的service文件看出,alertmanager的启动用户为“prometheus”,那么我们就在该服务器上创建一个prometheus用户。
[root@mufengrow7 apps]# useradd -M -r -s /sbin/nologin prometheus
4.4 修改alertmanager文件所属
将alertmanager目录的所有者所属组改为“prometheus”用户,不然到时会启动失败。原因就是“prometheus”用户对alertmanager没有权限。
[root@mufengrow7 apps]# chown -R prometheus.prometheus /apps/alertmanager-0.25.0.linux-amd64
4.5 启动alertmanager并设置开机启动
启动alertmanager,并且将alertmanager设置为开机启动模式
[root@mufengrow7 apps]# systemctl daemon-reload
[root@mufengrow7 apps]# systemctl start alertmanager.service
[root@mufengrow7 apps]# systemctl enable alertmanager.service
4.6 查看alertmanager启动状态
我们通过ss
命令和ps
命令查看alertmanager的运行状态。alertmanager默认的监听端口为9093.
#使用ss命令查看alertmanager端口
[root@mufengrow7 alertmanager]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 128 [::]:9094 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 128 [::]:9093 [::]:*
#使用ps命令查看alertmanager进程
[root@mufengrow7 alertmanager]# ps -ef | grep alertmanager | grep -v grep
prometh+ 2143 1 0 13:05 ? 00:00:00 /apps/alertmanager/alertmanager --config.file=/apps/alertmanager/alertmanager.yml --storage.path=/apps/alertmanager/data
4.7 查看alertmanager的网页
浏览器访问:
http://10.0.0.7::9093
进入alertmanager的主页:
4.7.1 alertmanager的WEB页面简介
alertmanager的WEB页面主要有6个按钮,分别为“Alerts”,“Silences”,“Status”,“Settings”,“Help”和“New Silence”,这些按钮分别对应“告警”,“静默”,“状态”,“设置”,“帮助”和“创建静默处理”
- 查看“Alerts”页面
“Alerts”就是alertmanager的默认页面,如果prometheus server发送告警信息到alertmanager,那么就可以在这个看到告警信息。
- 查看“Silencs”页面
这里是alertmanager的静默页面,这里存储着怕alertmanager创建的静默设置。
- 查看“Status”页面
这里是查看alertmanager当前的状态,可以从这里获取alertmanager的状态信息,包括alertmanager的状态,集群状态,版本和配置文件信息。
- 查看“Setting”页面
这里是alertmanager已周一还是周日为一周的开始。
- 查看"Help"页面
点击“Help”按钮,就会跳转到alertmanager的官方文档页面
- 查看“New Ssience”
这里是创建静默规则的页面。
五. 配置prometheus连接alertmanager
5.1 修改prometheus的配置文件
修改的方式如图:
5.2 检查prometheus语法
[root@mufengrow7 prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
5.3 让prometheus重新读取配置文件
这里通过重启prometheus的方式让prometheus重新读取配置文件
[root@mufengrow7 prometheus]# systemctl restart prometheus.service
六. 总结
- alertmanager是prometheus向用户发送消息的重要组成部分,类似一个告警中枢,prometheus所有的告警信息都流进alertmanager然后经有alertmanager发送。
- alertmanager在小的环境中一个节点就够了,但是在大环境中需要对alertmanager高可用。如何实现alertmanager的高可用我们以后会出文章来详细说明
- prometheus连接alertmanager就是在prometheus的配置文件中的“alerting”模块添加alertmanager的信息即可。
你学会了吗,欢迎关注沐风晓月的csdn博客,一起学习云原生