如何部署Alertmanager发送告警

 更新时间:2025年06月08日 16:30:31   作者:Aspire to freedom  
这篇文章主要介绍了如何部署Alertmanager发送告警问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1、Alertmanager简介

Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件,前者仅负责定义告警规则生成告警通知, 具体的告警操作则由后者完成。

Alertmanager 负责处理由 Prometheus Server 发来的告警通知,Alertmanager对告警通知进行分组、去重后,根据路由规则将其路由到不同的receiver,如Email、钉钉或企业微信等。

除了基本的告警通知能力外,Altermanager还支持对告警进行去重、分组、抑制、静默和路由等功能:

  • 分组(Grouping):将相似告警合并为单个告警通知的机制,在系统因大面积故障而触发告警潮时,分组机制能避免用户被大量的告警噪声淹没,进而导致关键信息的隐没
  • 抑制(Inhibition):系统中某个组件或服务故障而触发告警通知后,那些依赖于该组件或服务的其它组件或服务可能也会因此而触发告警,抑制便是避免类似的级联告警的一种特性,从而让用户能将精力集中于真正的故障所在
  • 静默(Silent):是指在一个特定的时间窗口内,即便接收到告警通知,Alertmanager也不会真正向用户发送告警信息的行为;通常,在系统例行维护期间,需要激活告警系统的静默特性
  • 路由(route):用于配置Alertmanager如何处理传入的特定类型的告警通知,其基本逻辑是根据路由匹配规则的匹配结果来确定处理当前告警通知的路径和行为

2、部署使用Alertmanage

cd /opt
上传alertmanager-0.24.0.linux-amd64.tar.gz
tar xf alertmanager-0.24.0.linux-amd64.tar.gz
mv alertmanager-0.24.0.linux-amd64 /usr/local/alertmanager
cd /usr/local/alertmanager
cp alertmanager.yml alertmanager.yml.bak
vim alertmanager.yml

配置启动文件
cd /usr/lib/systemd/system
 
[Unit]
Description=alertmanager
Documentation=https://prometheus.io/
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/alertmanager/alertmanager \
--config.file=/usr/local/alertmanager/alertmanager.yml \
--log.level=debug
 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
 
systemctl start alertmanager.service
systemctl enable alertmanager.service
 
netstat -lntp | grep alert

cd /usr/local/prometheus/
mkdir alert_rules
cd alert_rules/
vim node_alert.yaml
groups:
- name: k8s_instances
  rules:
  - alert: instance_down
    expr: up{job="node_exporter"} == 0
    for: 1m
    labels:
      severity: "critical"
    annotations:
      summary: "instance is down"
      description: "instance had been down for more than one minute"

cd /usr/local/prometheus/
vim prometheus.yml
13行#- 192.168.9.113:9093
17行#- "alert_rules/*.yaml"
 
 
systemctl restart prometheus.service

systemctl stop node_exporter.service  #暂停服务验证

邮箱查看是否收到告警邮件

vim node_alert.yaml    #设置cpu使用报警
- alert: "cpu_usage too high"
    expr: (1 -avg(rate(node_cpu_seconds_total{mode="idle"}[1m])) by(instance)) * 100 > 80
    for: 20s
    labels:
      severity: "warning"
    annotations:
      summary: "cpu usage is too high"
      description: "instance: {{ $labels.instance }}, cpu usage is too high! now value is {{ $value }}"
 
 
cd ..
systemctl restart prometheus.service  #重启服务

rpm -ivh stress-1.0.4-16.el7.x86_64.rpm 
stress -c 2   #对cpu进行压测

浏览器查看、邮件查看是否有报警提示

3、设置钉钉关联报报警

钉钉报警

创建群聊——群聊设置——机器人——添加机器人——自定义——添加——选择加签(复制密钥)——完成(保存webhook地址)

上传prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
tar xf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 /usr/local/dingtalk
cd !$
cp config.example.yml config.yml
vim config.yml
取消2、8、9、13、14、15注释
注释23-39行
 
20行替换为保存的webhook地址
 
22行替换为保存的加签
 
./prometheus-webhook-dingtalk
cd /usr/local/alertmanager/
vim alertmanager.yml
末尾添加
- name: 'dingtalk.webhook1'
  webhook_configs:
  - url: 'http://192.168.9.113:8060/dingtalk/webhook1/send'
    send_resolved: true
13行修改  receiver: 'dingtalk.webhook1' 
 
systemctl reload alertmanager.service 

即可进行测试,查看钉钉报警邮件

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Docker compose启动自定义jar包的步骤详解

    使用Docker compose启动自定义jar包的步骤详解

    这篇文章主要介绍了使用Docker compose启动自定义jar包的步骤,首先我们需要编写一个docker-compose.yml文件来定义我们的服务传到我们的云服务器上,本文给大家分享示例代码,感兴趣的朋友一起看看吧
    2024-03-03
  • Docker容器与外部系统之间沟通交流方式详解

    Docker容器与外部系统之间沟通交流方式详解

    这篇文章主要介绍了Docker容器与外部系统之间沟通交流方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-05-05
  • k8s部署docker容器的实现

    k8s部署docker容器的实现

    这篇文章主要介绍了k8s部署docker容器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 修改已有docker容器中的内容方法

    修改已有docker容器中的内容方法

    这篇文章主要介绍了修改已有docker容器中的内容方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Docker宿主机与容器之间的文件拷贝实例详解

    Docker宿主机与容器之间的文件拷贝实例详解

    现在公司用docker,有时候需要从容器中拷贝文件出来,下面这篇文章主要给大家介绍了关于Docker宿主机与容器之间的文件拷贝的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • 在Ubuntu15.04上安装Docker的步骤以及基本用法

    在Ubuntu15.04上安装Docker的步骤以及基本用法

    Docker是一种轻量型的的类虚拟机的平台,在开发项目上还是很有优势的,这仅是我的一种直观理解。所以这篇文章主要给大家介绍了在Ubuntu15.04上安装Docker的步骤以及基本用法,有需要的朋友们可以参考借鉴。
    2016-10-10
  • Ubuntu20.04上安装docker步骤及docker使用方法

    Ubuntu20.04上安装docker步骤及docker使用方法

    Docker是一个可以简化容器中应用程序进程管理过程的应用程序,容器允许你在资源隔离的进程中运行应用程序,这篇文章主要介绍了Ubuntu20.04上安装docker步骤及docker使用的相关资料,需要的朋友可以参考下
    2026-04-04
  • Docker容器日志占用空间过大的解决方式

    Docker容器日志占用空间过大的解决方式

    当我们尝试查看特定 Docker 容器的日志时,通常会使用 docker logs <容器名称> 命令,,然而,有时候会发现控制台持续输出日志信息,持续时间可能相当长,直到最终打印完成,导致日志积累过多,占用了系统磁盘空间,所以本文给大家介绍了解决方法,需要的朋友可以参考下
    2024-03-03
  • Centos Docker的安装教程

    Centos Docker的安装教程

    本文介绍了在yum环境下安装Docker的具体步骤,包括卸载旧版本、安装依赖、配置镜像源、更新索引、安装和验证Docker,并说明了卸载Docker的方法
    2025-10-10
  • Docker 本地部署 CSR 前端项目完整指南

    Docker 本地部署 CSR 前端项目完整指南

    本文详细介绍了使用Docker部署Vue3+Vite前端项目的完整流程,通过这套方案,开发者可以轻松实现前端项目的容器化部署,确保开发、测试和生产环境的一致性,感兴趣的可以了解一下
    2026-01-01

最新评论