【云原生】prometheus监控告警之安装部署alertmanager实战

news2024/11/22 15:29:11

前言

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是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重新读取配置文件
  • 六. 总结

一. 实验环境

本次实验环境见下表

操作系统服务器IPhostname
centos7.910.0.0.7mufengrow7

二. 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

六. 总结

  1. alertmanager是prometheus向用户发送消息的重要组成部分,类似一个告警中枢,prometheus所有的告警信息都流进alertmanager然后经有alertmanager发送。
  2. alertmanager在小的环境中一个节点就够了,但是在大环境中需要对alertmanager高可用。如何实现alertmanager的高可用我们以后会出文章来详细说明
  3. prometheus连接alertmanager就是在prometheus的配置文件中的“alerting”模块添加alertmanager的信息即可。

你学会了吗,欢迎关注沐风晓月的csdn博客,一起学习云原生

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/450500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python基础知识:绝对/相对路径等

1 Python处理相对/绝对路径 由于本人在导入数据时,十分喜欢相对路径(在数据的上一级文件中,新建文件夹保存处理整个代码处理过程),因此,将首先简单介绍下Python中相对/绝对路径的处理。 1.1 绝对路径 一…

状态压缩DP-蒙德里安的梦想

题意 求把 NM 的棋盘分割成若干个 12 的长方形,有多少种方案。 例如当 N2,M4 时,共有 5 种方案。当 N2,M3 时,共有 3 种方案。 如下图所示: 输入格式 输入包含多组测试用例。 每组测试用例占一行&#xff0…

Jupyter notebook安装教程

文章目录 前言一、安装步骤1、安装 Python 编译器2、安装 jupyter3、运行 Jupyter notebook 二、 更改打开文件位置和快捷启动方式1、更改打开文件位置2、创建快捷启动方式 前言 Jupyter Notebook 是以网页的形式打开,可以在网页页面中直接编写代码和运行代码&…

20230421 | 203. 移除链表元素、707. 设计链表、206. 反转链表

1、203. 移除链表元素 方法1:不添加虚拟节点方式,但是要注意处理删除头部的数据 时间复杂度 O(n) 空间复杂度 O(1) /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* List…

婚恋交友app开发中需要注意的安全问题

前言 随着移动设备的普及,婚恋交友app已经成为了人们生活中重要的一部分。但是,这些应用的开发者需要确保应用的安全性,以保护用户的隐私和数据免受攻击。本文将介绍在婚恋交友app开发中需要注意的安全问题。 在当今数字化时代,…

狗屁不通文章生成器下载-狗屁不通生成器网址

狗屁不通文章生成器 狗屁不通文章生成器(也称为“吹牛生成器”)是使用自然语言处理技术和机器学习算法生成随机文章的工具。这些文章往往没有意义,因为它们是从各种不相关的话语中随机组合而成的。 虽然这些文章看起来毫无意义,…

显卡GPU与CUDA

文章目录 1 什么是GPU1.1 独立显卡1.2 核心显卡 2 驱动3 深度学习显卡CUDA4 GPU VS CPU5 深度学习环境配置中各软件的关系windows下判断有无NVIDIA GPU16G512G8核14核 1 什么是GPU GPU就是显卡Graphics Processing Unit 图像处理单元显卡主要用于在屏幕上显示图像,…

ROS学习第二十六节——机器人仿真相关组件

1.URDF URDF是 Unified Robot Description Format 的首字母缩写,直译为统一(标准化)机器人描述格式,可以以一种 XML 的方式描述机器人的部分结构,比如底盘、摄像头、激光雷达、机械臂以及不同关节的自由度.....,该文件可以被 C 内置的解释器…

服务(第十篇)Nginx和tomcat反向代理(动静分离)

正向代理: 当用户想访问某一网址时,用户先访问代理服务器,然后由代理服务器向目标网址发送请求最终将数据返回代理服务器,最后代理服务器将数据返回给用户这一过程我们称之为正向代理。 反向代理:基本流程是与正向代理…

毕业-单片机-嵌入式~三年经历回顾

入行嵌入式软件开发 20年6月疫情第一次缓和、实操51单片机;20年9月郑州实习、温湿度采集类低功耗产品、初次接触ARM Cortex M0/M3 单片机;21年5月毕业来到杭州、不懂应届生的宝贵青春!匆匆忙忙进厂~人生中第一个项目:…

使用vscode、cmake配置c++开发环境

使用vscode、cmake配置c开发环境 下载软件安装包VS codegcc编译器cmake 设置环境变量VS code插件安装 下载软件安装包 VS code 根据自己电脑选择合适版本下载安装即可。 官网链接:https://code.visualstudio.com/download gcc编译器 我使用的是mingw-w64编译器…

kong(2):docker搭建kong环境

Kong 安装有两种方式一种是没有数据库依赖的DB-less 模式,另一种是with a Database 模式。我们这里使用第二种带Database的模式,因为这种模式功能更全。 1 docker安装Kong 1.1构建Kong的容器网络 首先我们创建一个Docker自定义网络,以允许容…

022:Mapbox GL 加载geojson数据,形成热力图,自定义样式

第022个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载geojson数据,形成热力图. paint设置的参数:heatmap-color,heatmap-intensity,heatmap-opacity,heatmap-radius,heatmap-weight,visibility,具体请参考下面的api链接。 直接复制下面的 vue+mapbox源代…

如何实现网络安全的无缝衔接

随着信息技术的飞速发展,数字化转型已成为企业发展的必经之路。然而,随着技术进步带来的便利,网络安全问题也日益凸显。那么,在数字化转型的过程中,企业如何实现网络安全的无缝衔接呢? 一、网络安全与数字化…

功能分析临时参考

App 组件中注释 Menu, 去除顶部菜单 MenuWrapper SubMenuComponent 请求/chart/add ,直接展示绘图页 此过程,浏览器只加载静态资源,没有api的数据请求。 取消登录限制: api: GET, POST /chart/add view: SliceModel…

Elasticsearch:了解和解决文档更新后 Elasticsearch 分数的变化

问题 问卷中有如下这样的文档,开发者想通过 match query 搜索这些文档来使用分数。 POST sample-index-test/_doc/1 {"first_name": "James","last_name" : "Osaka" } 以下是对上述文档的示例查询: GET sam…

阿里6面,成功唬住面试官拿了26K,突然感觉软件测试面试貌似不太难...

一次闲聊,一个在阿里上班的朋友突然说起他在阿里的面试经历。 朋友说,阿里的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一…

【MYSQL】索引与事务(超详细)

文章目录 🌷 1.索引⭐️ 1.1 定义⭐️ 1.2 为什么要用索引⭐️ 1.3 作用⭐️ 1.4 使用场景⭐️ 1.5 使用🍁 1.5.1 查看索引🍁 1.5.2 创建索引🍁 1.5.3 删除索引 ⭐️ 1.6 创建索引的⽅式⭐️ 1.7 选择索引的数据结构(面…

MySQL的索引与SQL优化策略

文章目录 存储引擎常见的存储引擎 索引索引结构BTree的优点索引分类索引语法explain执行计划索引的使用原则最左前缀法则范围查询索引列进行运算操作字符串不加引号模糊查询or连接的条件数据分布影响 覆盖索引前缀索引索引的设计原则 SQL优化insert优化主键优化order by优化gro…

途虎养车三闯IPO,如何突破亏损“魔咒”?

近日,汽车后市场的“资本宠儿”途虎养车更新招股书,再次闯关港股IPO。 途虎养车是一家中国线上线下一体化汽车服务平台。2013-2021年,途虎养车共进行16轮融资,融资总额超过90亿元。这是继2022年1月和8月先后两次递表失效后&#…