Prometheus配置alertmanager邮件报警

本文详细介绍了如何配置Prometheus与alertmanager实现邮件报警。首先通过docker部署alertmanager,接着在Prometheus配置文件中添加alertmanager的配置,然后创建并配置报警规则,最后验证报警功能正常工作,当触发条件时能够接收到报警邮件。
摘要由CSDN通过智能技术生成

Prometheus监控系统的搭建方式详见:https://blog.csdn.net/w342164796/article/details/104989355。此处只记录关于alertmanager配置邮件报警。

安装alertmanager

alertmanager是Prometheus中的一个独立的告警模块,接受Prometheus发来警报,然后通过分组、删除重复等处理,并将他们通过路由发送给正确的接收器。
alertmanager的安装方式也推荐docker容器部署:

  1. 拉取镜像
docker pull prom/alertmanager
  1. 创建配置文件alertmanager.yml ; 此文件是alertmanager的配置文件,一会启动容器的时候要把这个文件挂在到容器内
    vim alertmanager.yml
global:
  smtp_smarthost: 'smtp.mxhichina.com:465'       # smtp地址
  smtp_from: '******@163.com'                # 谁发邮件
  smtp_auth_username: '******@163.com'       # 邮箱用户
  smtp_auth_password: 'password'                   # 邮箱密码
  smtp_require_tls: false

route:
  group_by: ["alertname"]            # 分组名
  group_wait: 10s                   # 当收到告警的时候,等待三十秒看是否还有告警,如果有就一起发出去
  group_interval: 10s                # 发送警告间隔时间
  repeat_interval: 1h              # 重复报警的间隔时间
  receiver: mail                    # 全局报警组,这个参数是必选的,和下面报警组名要相同

receivers:
 1. name: 'mail'                      # 报警组名
  email_configs:
 2. to: '******@qq.com'      # 发送给谁
  1. 启动容器
docker run -d -p 9093:9093 -v /root/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml --name alertmanager prom/alertmanager

4.浏览器访问http:IP::9093 alertmanager后台页面,如果可以正常打开,就代表安装成功了。
在这里插入图片描述

Prometheus 配置alertmanager

  1. prometheus.yml新增关于alertmanager的配置
global:
  # 全局默认抓取间隔
  scrape_interval: 15s
rule_files:
  - "*rule.yml"
  ########alertmanager新增#######
alerting:
  alertmanagers:
  - static_configs:
    - targets: ['alertmanagerIP:9093']
scrape_configs:
  - job_name: 'prometheus'

    # 本任务的抓取间隔,覆盖全局配置
    scrape_interval: 5s

    static_configs:
      # 抓取地址同 Prometheus 服务地址,路径为默认的 /metrics
      - targets: ['localhost:9090']
  # 任务名
  - job_name: 'node-exporter'

    # 本任务的抓取间隔,覆盖全局配置
    scrape_interval: 5s

    static_configs:
      # 抓取地址同 Prometheus 服务地址,路径为默认的 /metrics
      - targets: ['机器1IP:9100','机器2IP:9100','机器3IP:9100']

重启prometheus

docker restart prometheus

配置报警规则

在prometheus.yml同级目录下创建两个报警规则配置文件node-exporter-record-rule.yml,node-exporter-alert-rule.yml。第一个文件用于记录规则,第二个是报警规则。
由于之前我们在prometheus.yml中已经引用了所有已rule结尾的文件,所以我们不用在修改prometheus.yml配置文件。

#关于报警规则的配置
rule_files:
  - "*rule.yml"

创建node-exporter-record-rule.yml

node-exporter-record-rule.yml

输入以下配置

groups:
  - name: node-exporter-record
    rules:
    - expr: up{job=~"node-exporter"}
      record: node_exporter:up
      labels:
        desc: "节点是否在线, 在线1,不在线0"
        unit: " "
        job: "node-exporter"
    - expr: time() - node_boot_time_seconds{}
      record: node_exporter:node_uptime
      labels:
        desc: "节点的运行时间"
        unit: "s"
        job: "node-exporter"
##############################################################################################
#                              cpu                                                           #
    - expr: (1 - avg by (environment,instance) (irate(node_cpu_seconds_total{job="node-exporter",mode="idle"}[5m])))  * 100
      record: node_exporter:cpu:total:percent
      labels:
        desc: "节点的cpu总消耗百分比"
        unit: "%"
        job: "node-exporter"

    - expr: (avg by (environment,instance) (irate(node_cpu_seconds_total{job="node-exporter",mode="idle"}[5m])))  * 100
      record: node_exporter:cpu:idle:percent
      labels:
        desc: "节点的cpu idle百分比"
        unit: "%"
        job: "node-exporter"

    - expr: (avg by (environment,instance) (irate(node_cpu_seconds_total{job="node-exporter",mode="iowait"}[5m])))  * 100
      record: node_exporter:cpu:iowait:percent
      labels:
        desc: "节点的cpu iowait百分比"
        unit: "%"
        job: "node-exporter"


    - expr: (avg by (environment,instance) (irate(node_cpu_seconds_total{job="node-exporter",mode="system"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值