我是靠谱客的博主 舒心眼睛,最近开发中收集的这篇文章主要介绍prometheus使用alertmanager实现报警功能一、安装altermanager二、配置钉钉告警,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

在运维工作中,最重要的事情就是监控,监控中最重要的就是报警功能,这样可以使我们收到告警之后及时处理,以免事态发展到无可挽回的地步,下面就给大家分享一下prometheus中的告警如何实现吧。

一、安装altermanager

1、解压安装包

tar zxf alertmanager-0.21.0.linux-amd64.tar.gz -C /data/

#查看是否安装成功
cd /data/alertmanager-0.21.0.linux-amd64/
./alertmanager --version

2、修改配置文件

#配置邮件告警
cd /data/alertmanager-0.21.0.linux-amd64/
vim alertmanager.yml
global:
  smtp_smarthost: 'smtp.163.com:25'
  smtp_from: '15010741839@xxx.com'
  smtp_auth_username: '15010741839@xxx.com'
  smtp_auth_password: 'xxxxxxxx'

templates:
  - 'template/*.tmpl'

route:
  receiver: 'mail'
  group_wait: 1s
  group_interval: 5s
  repeat_interval: 1h
  group_by: ['alertname']
receivers:
- name: 'mail'
  email_configs:
  - to: '15010741839@xxx.com'
send_resolved: true
html: '{{ template "test.html" . }}'

#配置邮件发送模板
{{ define "email.html" }}
{{ range .Alerts }}
告警实例: {{ .Labels.instance }} <br>
告警状态:{{   .Status }} <br>
告警级别: {{ .Labels.severity }} 级 <br>
告警类型: {{ .Labels.alertname }} <br>
触发阀值:{{ .Annotations.value }} <br>
告警详情: {{ .Annotations.description }} <br>
告警时间:{{ .StartsAt.Format "2006-01-02 15:04:05" }} <br>
{{ end }}{{ end }}

3、配置prometheus

cd /data/prometheus-2.19.1.linux-amd64/
vim prometheus.yml
alerting:
  alertmanagers:
  - static_configs:
    - targets: ["192.168.84.128:9093"]

#指定报警规则文件
rule_files:
   - rule.yml

#配置报警条件
vim rule.yml
groups:
- name: port_status
  rules:
  - alert: "端口状态监测"
    expr: probe_success{job="port_status"} == 0
    for: 1s
    labels:
      severity: "High"
    annotations:
      description: "Instance {{ $labels.instance }} 端口down掉"
      value: "{{ $value }}"

- name: web_status
  rules:
  - alert: "网站状态监测"
    expr: probe_http_status_code  == 0
    for: 1s
    labels:
      severity: "High"
    annotations:
      description:  "Instance {{ $labels.instance }} 网站无法访问"
      value: "{{ $value }}"

- name: process
  rules:
  - alert: "进程状态监测"
    expr: namedprocess_namegroup_num_procs  == 0
    for: 1s
    labels:
      severity: "High"
    annotations:
      description: "Instance {{ $labels.instance }} 服务进程死亡!"
      value: "{{ $value }}"

4、重启prometheus

nohup ./alertmanager --config.file=alertmanager.yml &

5、测试告警

手动关闭服务,就可以收到报警了。

二、配置钉钉告警

1、配置钉钉机器人

在钉钉上创建一个群,点击群设置
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ip填写Prometheus服务端的出口ip
在这里插入图片描述
保存api地址,下面会用到。

2、安装webhook-dingtalk

tar zxf prometheus-webhook-dingtalk-1.4.0.linux-amd64.tar.gz -C /data/

3、配置

cd /data/prometheus-webhook-dingtalk-1.4.0.linux-amd64
mv config.example.yml config.yml
vim config.yml

在这里插入图片描述
修改这两处即可。

#编写告警模板
vim contrib/templates/legacy/template.tmpl
{{ define "__subject" }}[Prometheus监控告警:{{ .Alerts.Firing | len }}] {{ end }}
{{ define "__text_list" }}{{ range . }}
 
告警实例: {{ (.Labels.instance) }}

实例群组: {{ (.Labels.job) }}

告警级别:{{ (.Labels.severity) }}

告警类型:{{ (.Labels.alertname) }}

触发阈值: {{ (.Annotations.value) }}

告警详情: {{ (.Annotations.description) }}

告警时间: {{ dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" }}
{{ end }}
{{ end }}


{{ define "__text_resolve_list" }}{{ range . }}

告警实例: {{ (.Labels.instance) }}

实例群组: {{ (.Labels.job) }}

告警类型:{{ (.Labels.alertname) }}

告警详情: {{ (.Annotations.description) }}

告警时间: {{ dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" }}

恢复时间: {{ dateInZone "2006.01.02 15:04:05" (.EndsAt) "Asia/Shanghai" }}
{{ end }}
{{ end }}


{{ define "ding.link.title" }}{{ template "__subject" . }}{{ end }}
{{ define "ding.link.content" }}

{{ if gt (len .Alerts.Firing) 0 }}#### 监控平台发现报警信息!
--------------------------
{{ template "__text_list" .Alerts.Firing }}
{{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}#### 警报解除!
---------------------------
{{ template "__text_resolve_list" .Alerts.Resolved }}
{{ end }}
{{ end }}

4、启动

nohup ./prometheus-webhook-dingtalk &

5、配置alertmanager

cd /data/alertmanager-0.21.0.linux-amd64/
vim alertmanager.yml
global:
  resolve_timeout: 5m

route:
  receiver: 'dingding'
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1h
receivers:
- name: 'dingding'
  webhook_configs:
  - url: 'http://192.168.3.158:8060/dingtalk/webhook1/send'
    send_resolved: true

6、手动触发告警测试即可。

最后

以上就是舒心眼睛为你收集整理的prometheus使用alertmanager实现报警功能一、安装altermanager二、配置钉钉告警的全部内容,希望文章能够帮你解决prometheus使用alertmanager实现报警功能一、安装altermanager二、配置钉钉告警所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部