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

Alertmanager的安装和详细使用步骤总结

一、安装步骤

1. 二进制安装
  1. 下载与解压

    • 从GitHub下载最新版本(如v0.23.0):
      wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
      tar -xzf alertmanager-0.23.0.linux-amd64.tar.gz -C /usr/local/
      ln -s /usr/local/alertmanager-0.23.0.linux-amd64/ /usr/local/alertmanager
      
    • 创建数据存储目录:mkdir -p /data/alertmanager/data
  2. 配置Systemd服务

    • 创建服务文件/usr/lib/systemd/system/alertmanager.service
      [Unit]
      Description=Alertmanager
      After=network.target[Service]
      Type=simple
      User=root
      ExecStart=/usr/local/alertmanager/alertmanager \--config.file=/usr/local/alertmanager/alertmanager.yml \--storage.path=/data/alertmanager/data
      Restart=on-failure[Install]
      WantedBy=multi-user.target
      
    • 启动服务:
      systemctl enable alertmanager
      systemctl start alertmanager
      
2. Docker安装
docker run -d --name alertmanager \-p 9093:9093 \-v /path/to/alertmanager.yml:/etc/alertmanager/alertmanager.yml \-v /data/alertmanager/data:/alertmanager/data \prom/alertmanager:latest

需确保配置文件alertmanager.yml和存储目录已正确挂载。


二、配置邮件告警

  1. 全局配置(SMTP设置)
    修改alertmanager.yml文件:

    global:resolve_timeout: 5msmtp_smarthost: 'smtp.qq.com:465'  # QQ邮箱SMTP服务smtp_from: 'sender@qq.com'smtp_auth_username: 'sender@qq.com'smtp_auth_password: 'your_auth_code'  # 邮箱授权码,非登录密码smtp_require_tls: false  # 必须设为false
    
  2. 路由与接收者配置

    route:group_by: ['alertname']  # 按告警名称分组group_wait: 10s          # 初始等待时间group_interval: 10s      # 组内新告警间隔repeat_interval: 1h      # 重复发送间隔receiver: 'mail'         # 默认接收者receivers:
    - name: 'mail'email_configs:- to: 'receiver@example.com'  # 收件人地址send_resolved: true         # 发送恢复通知
    
  3. 自定义邮件模板

    • 创建模板文件/data/alertmanager/template/email.tmpl
      {{ define "email.to.html" }}
      {{ range .Alerts }}
      告警名称: {{ .Labels.alertname }}<br>
      级别: {{ .Labels.severity }}<br>
      实例: {{ .Labels.instance }}<br>
      摘要: {{ .Annotations.summary }}<br>
      {{ end }}
      {{ end }}
      
    • 在配置中引用模板:
      templates:- '/data/alertmanager/template/*.tmpl'
      

三、核心功能配置

1. 告警分组
  • 通过group_by字段定义分组标签(如alertnameinstance),减少重复通知。
2. 抑制规则
inhibit_rules:- source_match:      # 匹配源告警severity: 'critical'target_match:      # 抑制目标告警severity: 'warning'equal: ['alertname']  # 需匹配的标签
3. 静默配置
  • 通过Alertmanager Web界面(默认端口9093)设置静默规则,临时屏蔽特定告警。
4. 路由策略
  • 按标签匹配不同接收者:
    routes:- receiver: 'slack-team'match:team: 'slack'- receiver: 'email-dba'match:team: 'dba'
    

四、与Prometheus集成

  1. 修改Prometheus配置
    prometheus.yml中添加Alertmanager地址:

    alerting:alertmanagers:- static_configs:- targets: ['alertmanager:9093']
    
  2. 创建告警规则
    在Prometheus规则文件(如rules.yml)中定义触发条件:

    groups:
    - name: examplerules:- alert: HighCPUexpr: (1 - avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100 > 80for: 5mlabels:severity: criticalannotations:summary: "CPU使用率超过80%"
    

五、高可用性(HA)配置

  1. 集群部署
    启动多个Alertmanager实例,通过--cluster.peer参数指定对等节点:

    # 节点1
    ./alertmanager --cluster.listen-address=IP1:9094
    # 节点2
    ./alertmanager --cluster.listen-address=IP2:9094 --cluster.peer=IP1:9094
    
  2. Prometheus多目标配置
    在Prometheus中指定所有Alertmanager实例:

    alertmanagers:- static_configs:- targets:- 'alertmanager1:9093'- 'alertmanager2:9093'
    

六、验证与测试

  1. 检查配置文件

    amtool check-config alertmanager.yml
    
  2. 发送测试告警
    使用curl模拟告警:

    curl -XPOST http://localhost:9093/api/v1/alerts -d '[{"labels": {"alertname": "TestAlert", "instance": "example"},"annotations": {"summary": "This is a test"}}
    ]'
    

注意事项

  • 权限问题:确保数据目录(如/data/alertmanager)有写入权限。
  • 防火墙:开放Alertmanager的端口(默认9093)和集群通信端口。
  • 模板调试:使用amtool验证模板语法。

更多配置细节可参考官方文档或相关技术博客(如网页1、网页5、网页6)。

相关文章:

  • 【Java面试笔记:基础】12.Java有几种文件拷贝方式?哪一种最高效?
  • JAVA程序获取SVN提交记录
  • SPSS ANOVA分析test
  • 云原生--CNCF-2-五层生态结构(成熟度3层分类,云原生生态5层结构)
  • 18487.1-2015-解读笔记之四-交流充电之流程分析
  • word内容使用python替换
  • 【go】go run-gcflags常用参数归纳,go逃逸分析执行语句,go返回局部变量指针是安全的
  • 连锁美业管理系统「数据分析」的重要左右分析︳博弈美业系统疗愈系统分享
  • 自动创建 中国古代故事人物一致性图画,看看扣子的空间是否能达到你的满意,自媒体的福音?
  • PCB规则
  • Python爬虫实战:获取xie程网敦煌景点数据,为51旅游路线做参考
  • Linux网络编程 从集线器到交换机的网络通信全流程——基于Packet Tracer的深度实验
  • Docker安装ES :确保 Kibana 正确连接 Elasticsearch
  • Unity中使用Cinemachine插件创建自由视角相机(freelookCamera)来实现第三人称漫游
  • WSL2-Ubuntu22.04下拉取Docker MongoDB镜像并启动
  • STM32F407 的通用定时器与串口配置深度解析
  • Linux系统学习----概述与目录结构
  • 阿里巴巴安全工程师面试题:BAS
  • k8s 证书相关问题
  • 如何避免多任务并行导致的效率下降
  • 秭归“橘颂”:屈原故里打造脐橙全产业链,创造12个亿元村,运输用上无人机
  • 中国泳协:新奥运周期竞争激烈,“三从一新”全力提升实力
  • 国际货币基金组织:将今年美国经济增长预期下调0.9个百分点至1.8%
  • 金发科技去年净利增160%,机器人等新领域催生材料新需求
  • 李家超率团访问浙江
  • “五一”假期前多地规范旅游市场:要求明码标价,禁止强迫购物