Alertmanager钉钉告警
一.部署alertmanager
1.1 创建目录
mkdir -p /deploy/app/alertmanager/config
chmod -R 777 /deploy/app/alertmanager/config
1.2部署alertmanager,也需要个配置文件,先部署临时容器,然后把配置文件复制下来
docker run -d -p 9093:9093 --name alertmanager prom/alertmanager
docker cp alertmanager:/etc/alertmanager/alertmanager.yml /deploy/app/alertmanager/config
docker rm -f alertmanager
1.3修改配置文件
global:
#旧的告警3分钟没有更新,则认为告警解决
resolve_timeout: 3m
route:
group_by: ['alertname'] #根据告警规则组名进行分组
group_wait: 0s #在组内等待所配置的时间,如果同组内,30秒内出现相同报警,在一个组内出现
group_interval: 10s #控制告警组的发送频率,一条告警消息发送后,等待10秒,发送第二组告警
repeat_interval: 1h #发送报警间隔,如果指定时间内没有修复,则重新发送报警
receiver: 'web.hook'
receivers:
- name: 'web.hook'
webhook_configs: #可设置多个接收方
- url: 'http://192.168.80.86:8060/dingtalk/webhook1/send'
- url: 'http://192.168.80.86:8060/dingtalk/webhook2/send'
send_resolved: true # 表示服务恢复后会收到恢复告警
inhibit_rules:
- source_match: #配置了仰制告警
severity: '非常严重'
target_match:
severity: '严重'
equal: ['alertname',"target","job","instance"]
1.4正式部署
docker run -d \
-p 9093:9093 \
--name alertmanager \
--network-alias=alertmanager \
--restart=always \
-v "/deploy/app/alertmanager/config/alertmanager.yml:/etc/alertmanager/alertmanager.yml" \
prom/alertmanager:v0.25.0
http://192.168.80.86:9093/#/status 打开链接能看到自己的配置即可

二.安装钉钉插件
2.1安装钉钉插件prometheus-webhook-dingtalk,和上述一样,就不解释了
创建目录
mkdir -p /deploy/app/prometheus-webhook-dingtalk/templates
chmod 777 -R /deploy/app/prometheus-webhook-dingtalk/templates
docker run -d -p 8060:8060 --name=dingding timonwong/prometheus-webhook-dingtalk
docker cp dingding:/etc/prometheus-webhook-dingtalk/config.yml /deploy/app/prometheus-webhook-dingtalk/
docker rm -f dingding
2.2修改/deploy/app/prometheus-webhook-dingtalk/config.yml
templates:
- /etc/prometheus-webhook-dingtalk/templates/templates.tmpl
targets: #配置多个接收方
webhook1:
url: https://oapi.dingtalk.com/robot/send?access_token=2170a4079a1008d52320d32d6d895a98e0ee70f93c409
secret: SEC48c5d9fbe1b1634fde69b28027eebb86ecfeeccb74c0af5290e
message:
text: '{{ template "email.to.message" . }}'
webhook2:
url: https://oapi.dingtalk.com/robot/send?access_token=55e44b618ae703b3c3cde84d39404024618af0b77926dc227d6
secret: SECc7d467845f4c44803a1f4b50935415afea42e0299183bc805506
message:
text: '{{ template "email.to.message" . }}'
2.3 修改/deploy/app/prometheus-webhook-dingtalk/templates/templates.tmpl
{{ define "email.to.message" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
<font color=#FF0000>========= **监控告警** ========= </font>
**告警类型:** {{ $alert.Labels.alertname }}
**告警级别:** {{ $alert.Labels.severity }} 级
**故障主机:** {{ $alert.Labels.instance }} {{ $alert.Labels.device }}
**告警详情:** {{ $alert.Annotations.message }}{{ $alert.Annotations.description}}
**故障时间:** {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
{{ end }}{{ end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
<font color=#00800>========= **告警恢复** ========= </font>
**告警主机:** {{ $alert.Labels.instance }}
**告警类型:** {{ $alert.Labels.alertname }}
**告警级别:** {{ $alert.Labels.severity }} 级
**告警详情:** {{ $alert.Annotations.message }}{{ $alert.Annotations.description}}
**故障时间:** {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
**恢复时间:** {{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
{{ end }}{{ end }}{{ end }}
2.4正式部署
docker run -d \
-p 8060:8060 \
--name=dingding \
--restart=always \
--network-alias=dingding \
-v /deploy/app/prometheus-webhook-dingtalk:/etc/prometheus-webhook-dingtalk \
timonwong/prometheus-webhook-dingtalk
三,修改prometheus的配置
3.1编辑prometheus的告警规则文件,更多规则请点击下方链接
https://awesome-prometheus-alerts.grep.to/rules#host-and-hardware
vim /deploy/app/prometheus/rules/node_exporter.yml
vim /deploy/app/prometheus/rules/node_exporter.yml
groups:
- name: 服务器主机信息监控告警
rules:
- alert: 公司内部服务器监控
expr: up {job="公司内部服务器"} == 0
for: 0m
labels:
severity: 非常严重
annotations:
description: "监控的目标已丢失,请检查服务器自身或node_exporter服务"
- alert: "内存报警"
expr: 100 - ((node_memory_MemAvailable_bytes * 100) / node_memory_MemTotal_bytes) > 95
for: 3m # 告警持续时间,超过这个时间才会发送给alertmanager
labels:
severity: 严重
annotations:
summary: "{{ $labels.instance }} 内存使用率过高,请尽快处理!"
description: "{{ $labels.instance }}内存使用率超过95%,当前使用率{{ $value }}%."
- alert: "磁盘空间报警"
expr: (1 - node_filesystem_avail_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"}) * 100 > 95
for: 60s
labels:
severity: 严重
annotations:
summary: "{{ $labels.instance }}磁盘空间使用超过95%了"
description: "{{ $labels.instance }}磁盘使用率超过95%,当前使用率{{ $value }}%."
- alert: "CPU报警"
expr: 100-(avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance)* 100) > 95
for: 120s
labels:
severity: 严重
instance: "{{ $labels.instance }}"
annotations:
summary: "{{$labels.instance}}CPU使用率超过95%了"
description: "{{ $labels.instance }}CPU使用率超过95%,当前使用率{{ $value }}%."
- alert: "磁盘IO性能报警"
expr: ((irate(node_disk_io_time_seconds_total[30m]))* 100) > 95
for: 3m
labels:
severity: 严重
annotations:
summary: "{{$labels.instance}} 流入磁盘IO使用率过高,请尽快处理!"
description: "{{$labels.instance}} 流入磁盘IO大于95%,当前使用率{{ $value }}%."
3.2
vim /deploy/app/prometheus/config/prometheus.yml
global:
# 数据采集间隔
scrape_interval: 45s
# 告警检测间隔
evaluation_interval: 45s
alerting:
alertmanagers:
- static_configs:
- targets: ["192.168.80.86:9093"]
# 告警规则
rule_files:
# 这里匹配指定目录下所有的.rules文件
- /prometheus/rules/*.yml
# 采集配置
scrape_configs:
# 采集项(prometheus)
#- job_name: 'prometheus'
# static_configs:
# # prometheus自带了对自身的exporter监控程序,所以不需额外安装exporter就可配置采集项
# - targets: ['localhost:9090']
- job_name: "公司内部服务器"
file_sd_configs: #基于文件发现服务方式,也可以基于Consul服务发现等,其它方式不讲解,又不给工资费劲
- files:
- /prometheus/ClientAll/*.json #用json格式文件方式发现服务,下面的是用yaml格式文件方式,都可以,反正两个都部署了,随便你用哪个
refresh_interval: 10m
- files:
- /prometheus/ClientAll/*.yaml
refresh_interval: 10m
热加载
curl -X POST http://192.168.80.86:9090/-/reload
测试一下 停止某个节点的node_exporter
即可看到告警通知


Alertmanager钉钉告警的更多相关文章
- Docker+Prometheus+Alertmanager+Webhook钉钉告警
Docker+Prometheus+Alertmanager+Webhook钉钉告警 1.环境部署 1.1 二进制部署 1.2 docker部署 1.2.1 webhook 1.2.2 alertma ...
- Grafana+prometheus+AlertManager+钉钉机器人
一.Grafana (1)安装Grafana的Linux环境 在官网下载windows的Grafana的压缩包到指定目录,解压缩Grafana压缩文件到包含当前Grafana版本的文件夹.将该文件夹解 ...
- Grafana+Prometheus实现Ceph监控和钉钉告警-转载(云栖社区)
获取软件包 最新的软件包获取地址 https://prometheus.io/download/ Prometheus 1.下载Prometheus $ wget https://github.com ...
- kube-promethues监控告警详解(邮件、钉钉、微信、自研平台)
Alertmanager已经在前面Prometheus初体验(三)已经介绍过了.现在介绍一下在kube-promethues里面怎么修改alertmanager配置文件,以及怎么通过各种媒介发送信息. ...
- prometheus grafana graylog 钉钉告警 短信告警 电话告警系统 PrometheusAlert
PrometheusAlert 简介 PrometheusAlert是开源的运维告警中心消息转发系统,支持主流的监控系统Prometheus,日志系统Graylog和数据可视化系统Grafana发出的 ...
- prometheus-alertmanager告警推送到钉钉
1. Prometheus告警简介 告警能力在Prometheus的架构中被划分成两个独立的部分.如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性 ...
- Istio on ACK集成生态(2): 扩展AlertManager集成钉钉助力可观测性监控能力
阿里云容器服务Kubernetes(简称ACK)支持一键部署Istio,可以参考文档在ACK上部署使用Isito.Istio on ACK提供了丰富的监控能力,为网格中的服务收集遥测数据,其中Mixe ...
- 使用 Prometheus Alertmanager 模块发送 Doris 异常信息至钉钉报警群
基础环境 1.Prometheus 版本:2.22.2 下载地址: https://github.com/prometheus/prometheus/releases/download/v2.22.2 ...
- zabbix系列之九——添加钉钉告警
一.添加钉钉机器人 1. 2. 复制webhook后面脚本用到:https://oapi.dingtalk.com/robot/send?access_token=36e69dd50bbcc54b7b ...
- elk报警监控之sentinl 钉钉+邮件告警
注:我的elk sentinl版本都是6.5.1 前期知识 es的查询语法.es watcher使用方法. https://www.cnblogs.com/pilihaotian/p/5830754. ...
随机推荐
- 【学到了】golang的[]byte可以append string类型的数据
上代码: func Test_use_string(t *testing.T){ arr := make([]byte,0, 100) arr = append(arr, "abcd&quo ...
- 数组 vs. 切片
在Go编程语言中处理数据时,经常会遇到数组和切片.这两者是不同的数据结构,有各自的特性和用途.本文将对Go中的数组和切片进行比较,以帮助大家更好地理解它们. 1. 长度不同 一个主要的区别是长度.在G ...
- Spring源码之XML文件中Bean标签的解析2
读取XML文件,创建默认bean标签对象的核心代码 在DefaultBeanDefinitionDocumentReader类中的如下方法中: protected void processBeanDe ...
- 搭建mongo的replica set
搭建mongo的replica set 前言 安装 构建副本集 加入认证 备份数据 备份数据到本地 数据恢复 搭建mongo的replica set 前言 准备三台机器,相互可以访问的.处理思路,先构 ...
- 深入浅出Java多线程(三):线程与线程组
「引言」 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第三篇内容:线程与线程组.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在现代软件开发中,多线程编程已成 ...
- gitee 命令合集(从远程仓库拉取项目到推送项目到远程仓库)
1.配置用户的信息 git config --global user.name '你的用户名' git config --global user.email '你的邮箱' 2.初始化 Git 仓库,生 ...
- Load-balanced-online-OJ-system 负载均衡的OJ系统项目
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 本项目Github地址 - ...
- TortoiseSVN 官网打不开,去哪下最新的软件和中文包?
官网:https://tortoisesvn.net 能打开最好,但通常打不开,打不开时候去这个网站下: https://sourceforge.net/projects/tortoisesvn/ 这 ...
- ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记
任务16:oauth2 + oidc 实现 client部分 实现 client 之前启动一下上一节的 server,启动之前需要清除一些代码 注释 Program 的 MigrateDbContex ...
- Linux-数据集 TPC-H、TPC-DS的导入和使用(MySQL)
一. TPC-H 数据集 1.数据集下载 TPC-H数据集: https://github.com/gregrahn/tpch-kit 可采用gcc下载或者直接下载zip包,然后解压即可. 具体使用方 ...