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. ...
随机推荐
- 佳能F-789SGA升级与超频——互联网Tips存档
佳能F-789SGA简介 佳能F-789SGA是一款性价比极高的科学函数计算器,功能与卡西欧fx-991ES近似,稍强于991ES,弱于991CNX. 来自電卓院亜紀良的评价 来自杨高峰的对比总结 来 ...
- 使用三方jar中的@RestControllerAdvice不起作用
背景 公司封装了自己的基础核心包core-base,里边包含了Validation的异常捕获处理类:同时开发项目有全局异常捕获处理类,经测试发现,core-base里边的不起作用 可能原因: 未扫描外 ...
- errgroup的常见误用
errgroup想必稍有经验的golang程序员都应该听说过,实际项目中用过的也应该不在少数.它和sync.WaitGroup类似,都可以发起执行并等待一组协程直到所有协程运行结束.除此之外errgr ...
- .NET 6 使用 System.Drawing.Common 出现 The type initializer for ‘Gdip’ threw an exception 异常的解决办法
出现问题的原因 在Linux环境部署.NET Core程序时,如果要到System.Drawing.Common引用会出现该问题,目前大量的第三方组件使用该Windows专用库,尤其是涉及图片处理.W ...
- NLP国内外大模型汇总列表[文心一言、智谱、百川、星火、通义千问、盘古等等]
NLP国内外大模型汇总列表[文心一言.智谱.百川.星火.通义千问.盘古等等] 中国大模型列表大全,全面收集有明确来源的大模型情况,包括机构.来源信息和分类等,随时更新. Awesome family ...
- Linux 多种方式实现文件共享
文件共享服务在Linux系统上有多种方式,最常用的有Samba,vsftp,iSCSI,NFS这四种方式,如下将分别配置四种不同的文件共享服务. VSFTP 文件传输 FTP是文件传输协议.用于Int ...
- React的组件通信与状态管理
目录 1. 组件通讯-概念 1.组件的特点 2.知道组件通讯意义 总结: 2. 组件通讯-props 基本使用 1.传递数据和接收数据的过程 2.函数组件使用 props 3.类组件使用 props ...
- 使用easyexcel导入62个字段,十万加行数的excel
使用easyexcel导入62个字段,十万加行数的excel 1️⃣ 准备工作 1. 版本对应 在easyexcel官网的常见问题栏中往下滑找到 2. 下载jar包 maven项目不想多说,在pom. ...
- XD刷机中执行reclaimdisks.sh的作用
之前刷机提到在使用OEDA进行一键部署前,需先在所有DB节点上运行reclaimdisks.sh,也提到观察会释放pvs/vgs/lvs相对应的剩余空间. 本文以一套X8环境为例,来看下具体的表现,以 ...
- 针对SpringBoot服务端返回的空对象和空数组问题
返回的Json会自动过滤掉空指针的对象,但是若遇到非空指针的没有任何内容的对象,举例如下: public class Person { private String name; private Int ...