当前位置: 首页 > news >正文

Prometheus中部署Alertmanager

部署Alertmanager 是 Prometheus 生态系统中的一个重要步骤,用于管理和处理 Prometheus生成的告警。Alertmanager和Prometheus Server一样均采用Golang实现,并且没有第三方依赖。一般来说我们可以通过以下几种方式来部署Alertmanager:二进制包、容器以及源码方式安装。

二进制部署法

1)获取并安装软件包

Alertmanager最新版本的下载地址可以从Prometheus官方网站
https://prometheus.io/download/获取

export VERSION=0.15.2
curl -LO
https://github.com/prometheus/alertmanager/releases/download/v$VERSION/alertmana
ger-$VERSION.darwin-amd64.tar.gz
tar xvf alertmanager-$VERSION.darwin-amd64.tar.gz

2)创建alertmanager配置文件

Alertmanager解压后会包含一个默认的alertmanager.yml配置文件,内容如下所示:

global:
resolve_timeout: 5m
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
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的配置主要包含两个部分:路由(route)以及接收器(receivers)。

所有的告警信息都会从配置中的顶级路由(route)进入路由树,根据路由规则将告警信息发送给相应的接收器。

在Alertmanager中可以定义一组接收器,比如可以按照角色(比如系统运维,数据库管理员)来划分多个接收器。接收器可以关联邮件,Slack以及其它方式接收告警信息。

当前配置文件中定义了一个默认的接收者default-receiver由于这里没有设置接收方式,目前只相当于一个占位符。关于接收器的详细介绍会在后续章节介绍。

在配置文件中使用route定义了顶级的路由,路由是一个基于标签匹配规则的树状结构。所有的告警信息从顶级路由开始,根据标签匹配规则进入到不同的子路由,并且根据子路由设置的接收器发送告警。目前配置文件中只设置了一个顶级路由route并且定义的接收器为default-receiver。因此,所有的告警都会发送给default-receiver。

3)启动Alertmanager

Alermanager会将数据保存到本地中,默认的存储路径为data/ 。因此,在启动Alertmanager之前需要创建相应的目录:


./alertmanager

用户也在启动Alertmanager时使用参数修改相关配置。–config.file 用于指定alertmanager配置文件路径, --storage.path 用于指定数据存储路径。

4)查看运行状态

Alertmanager启动后可以通过9093端口访问http://192.168.33.10:9093
在这里插入图片描述
5)关联Prometheus与Alertmanager

在Prometheus的架构中被划分成两个独立的部分。Prometheus负责产生告警,而Alertmanager负责告警产生后的后续处理。因此Alertmanager部署完成后,需要在Prometheus中设置Alertmanager相关的信息。

编辑Prometheus配置文件prometheus.yml,并添加以下内容

alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093']

重启Prometheus服务,成功后,可以从http://192.168.33.10:9090/config查看alerting配置是否生效。

此时,再次尝试手动拉高系统CPU使用率:

cat /dev/zero>/dev/null

等待Prometheus告警进行触发状态:
在这里插入图片描述
查看Alertmanager UI此时可以看到Alertmanager接收到的告警信息。
在这里插入图片描述

二、定义告警规则

在 alert.rules.yml 文件中定义告警规则,例如:

groups:
- name: examplerules:- alert: HighRequestLatencyexpr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5for: 10mlabels:severity: pageannotations:summary: High request latency

目前为止,我们已经成功安装部署了Alertmanager并且与Prometheus关联,能够正常接收来自Prometheus的告警信息。
在这里插入图片描述

相关文章:

  • 基于 Python 的自然语言处理系列(85):PPO 原理与实践
  • 70.评论日记
  • Kubernetes in action-初相识
  • C++ 类及函数原型详解
  • 通过模仿学习实现机器人灵巧操作:综述(上)
  • 船舶参数(第一版)
  • 交叉熵损失函数:从信息量、熵、KL散度出发的推导与理解
  • 动态规划算法详解(C++)
  • 使用Tortoise-ORM和FastAPI构建评论系统
  • RDK X3新玩法:超沉浸下棋机器人开发日记
  • 通过VSCode远程连接到CentOS7/Ubuntu18等老系统
  • 单精度浮点运算/定点运算下 MATLAB (VS) VIVADO
  • 【大语言模型】大语言模型(LLMs)在工业缺陷检测领域的应用
  • AD相同网络的铜皮和导线连接不上
  • 泽众TestOne精准测试:助力软件开发质量新升级
  • VS Code搭建C/C++开发环境
  • 设置Rocky Linux盒盖不休眠的3个简单步骤
  • 第TR5周:Transformer实战:文本分类
  • MySQL 表结构及日志文件详解
  • 树莓派4B+Ubuntu24.04 电应普超声波传感器串口输出 保姆级教程
  • 剪纸纹样“流动”在水乡,谁不忆江南
  • 博物馆有一项活动40岁以上不能参加?馆方回应
  • 美媒称特朗普考虑大幅下调对华关税、降幅或超一半,外交部回应
  • 养胃不是顿顿喝粥,这份“胃的使用说明书”请收好
  • 瞭望:高校大门要向公众打开,不能让“一关了之”成为常态
  • 神二十具备执行发射任务的各项条件