prometheus alertmanager http告警


一、准备工作

1.1 安装或关闭以下服务

关闭防火墙等
linux时间校对
prometheus+grafana安装文档

1.2 本次安装环境

配置信息说明
服务器IP地址192.168.1.10
系统版本CentOS7.4
内核ml-3.10.0
go版本1.19.4

接上篇prometheus blackbox_exporter安装接着写。完成数据采集后,需要搭配上告警。
prometheus blackbox_exporter安装

二、安装alertmanager

2.1下载并解压

alertmanager下载

tar xf alertmanager-0.25.0.linux-amd64.tar.gz

2.2配置

mv alertmanager-0.25.0.linux-amd64 /home/alermanager #修改文件名称,并移动到指定位置
cd /home/alermanager      
./alertmanager   #启动

测试访问192.168.1.10:9093
在这里插入图片描述

三、告警配置

3.1创建文件

mkdir /usr/local/prometheus/rules #告警规则目录
mkdir /home/alermanager/tmplates #告警模版目录

3.2告警规则配置

编辑prometheus文件

vim /usr/local/prometheus/prometheus.yml 
alerting:
  alertmanagers:
    - static_configs:
        - targets: ["192.168.1.10:9093"]

rule_files:             #告警规则位置
    - "/usr/local/prometheus/*.yml"

编辑告警规则

vim /usr/local/prometheus/rules/http.yml
groups:
  - name: 告警         #名称
    rules:

      - alert: google.com无法访问   #告警名称
        expr: probe_success{job="http", instance="https://google.com"} == 0
        for: 1m
        labels:
          severity: 紧急
        annotations:
          summary: "访问失败 {{ $labels.instance }}"
          description: "检测到 {{ $labels.instance }} 访问失败已经超过1分钟."

      - alert: baidu.com无法访问
        expr: probe_success{job="http", instance="https://baidu.com"} == 0
        for: 1m
        labels:
          severity: 紧急
        annotations:
          summary: "访问失败 {{ $labels.instance }}"
          description: "检测到 {{ $labels.instance }} 访问失败已经超过1分钟."

3.3告警模版配置

编辑alertmanager文件

vim /home/alermanager/alertmanager.yml 
global:
    resolve_timeout: 5m
    # 邮箱告警配置
    smtp_hello: 'prometheus'
    smtp_from: 'xxx@qq.com'       #发送邮箱名称
    smtp_smarthost: 'smtp.qq.com:465'  # 其它邮箱请填写相应的host
    smtp_auth_username: 'xxx@qq.com'  #邮箱名称
    smtp_auth_password: 'x'           #邮箱密码
    smtp_require_tls: false            # qq邮箱需要设定 
templates:
  - '/home/alermanager/tmplates/*.tmpl'               # 指定告警模板路径

receivers:
  - name: email
    email_configs:
    - to: 'x@qq.com'                 #接收报警邮箱地址
      headers: {"subject":'{{ template "email.header" . }}'}
      html: '{{ template "email.html" . }}'
      send_resolved: true            # 发送报警解除邮件

route:
    group_wait: 5s                     # 分组等待时间
    group_interval: 5s                 # 上下两组发送告警的间隔时间
    receiver: email
    repeat_interval: 5m                # 重复发送告警时间
inhibit_rules:                       # 告警抑制:当多级别规则同时生效时,只发送最高级别的告警
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname']

编辑告警模板

vim /home/alermanager/tmplates/test.tmpl       # 告警模版
test.tmpl: |-           
    {{ define "email.header" }}
    {{ if eq .Status "firing"}}[Warning]: {{ range .Alerts }}{{ .Annotations.summary }} {{ end }}{{ end }}
    {{ if eq .Status "resolved"}}[Resolved]: {{ range .Alerts }}{{ .Annotations.resolve_summary }} {{ end }}{{ end }}
    {{ end }}

    {{ define "email.html" }}
    {{ if gt (len .Alerts.Firing) 0 -}}
    <font color="#FF0000"><h3>[Warning]:</h3></font>
    {{ range .Alerts }}
    告警级别:{{ .Labels.severity }}   <br>
    告警类型:{{ .Labels.alertname }}   <br>
    故障主机: {{ .Labels.instance }}   <br>
    告警主题: {{ .Annotations.summary }}   <br>
    告警详情: {{ .Annotations.description }}   <br>
    触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}   <br>
    {{- end }}
    {{- end }}

    {{ if gt (len .Alerts.Resolved) 0 -}}
    <font color="#66CDAA"><h3>[Resolved]:</h3></font>
    {{ range .Alerts }}
    告警级别:{{ .Labels.severity }}   <br>
    告警类型:{{ .Labels.alertname }}   <br>
    故障主机: {{ .Labels.instance }}   <br>
    告警主题: {{ .Annotations.resolve_summary }}   <br>
    告警详情: {{ .Annotations.resolve_description }}   <br>
    触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}   <br>
    恢复时间: {{ (.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}   <br>
    {{- end }}
    {{- end }}
    {{- end }}

四、测试

将告警数值设置低,查看是否有告警和到时间后是否发邮件。不过文章中,关于告警内容太少,后续慢慢添加。
收到的邮件

[Warning]:
告警级别:紧急
告警类型:google.com无法访问
故障主机: https://google.com
告警主题: 访问失败 https://google.com
告警详情: 检测到 https://google.com 访问失败已经超过1分钟.
触发时间: 2023-08-20 14:23:31
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值