Prometheus学习笔记(三)Alertmanager报警模块集成钉钉/企业微信机器人
文章目录
- 一、简介
- 二、安装Alertmanager
- 三、报警规则
- 四、通知规则
- 4.1 钉钉告警
- 4.2 企业微信告警
一、简介
Alertmanager
是Prometheus
的一个报警通知组件,需要结合Prometheus
使用。Prometheus
将监测到的异常事件发送给Alertmanager
,Alertmanager
发送异常事件的通知(邮件、webhook等)。
Prometheus安装文档
二、安装Alertmanager
Alertmanager下载地址
# 解压安装包
tar -zxvf alertmanager-0.21.0.linux-amd64.tar.gz
# 文件列表
./
├── alertmanager # alertmanager的启动程序
├── alertmanager.yml # alertmanager的配置文件
├── amtool
├── LICENSE
└── NOTICE
三、报警规则
修改prometheus
的配置文件prometheus.yml
# Alertmanager configuration
# 改为alertmanager的地址
alerting:alertmanagers:- static_configs:- targets:- 192.168.1.23:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
# 指定规则文件
rule_files:- rules/*.yml
在rules
目录中添加.yml
结尾的规则文件,prometheus
会根据这些规则配置文件进行监控报警。
模版:
# 一个配置文件里包含多个组
groups:
- name: example # 组名# 触发规则列表rules:- alert: HighErrorRate # 警告名expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5 # 触发规则for: 10m # 规则触发持续多长时间发送告警# 告警附加标签labels:severity: page# 告警附加注释annotations:summary: High request latency
- node_alived.yml
groups:
- name: 实例存活告警规则rules:- alert: 实例存活告警expr: up == 0for: 1mlabels:user: prometheusseverity: warningannotations:summary: "主机宕机 !!!"description: "该实例主机已经宕机超过一分钟了。"
- memory_over.yml
groups:
- name: 内存报警规则rules:- alert: 内存使用率告警expr: (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes))) * 100 > 50for: 1mlabels:severity: warningannotations:summary: "服务器可用内存不足。"description: "内存使用率已超过50%(当前值:{{ $value }}%)"
- cpu_over.yml
groups:
- name: CPU报警规则rules:- alert: CPU使用率告警expr: 100 - (avg by (instance)(irate(node_cpu_seconds_total{mode="idle"}[1m]) )) * 100 > 50for: 1mlabels:severity: warningannotations:summary: "CPU使用率正在飙升。"description: "CPU使用率超过50%(当前值:{{ $value }}%)"
- disk_over.yml
groups:
- name: 磁盘使用率报警规则rules:- alert: 磁盘使用率告警expr: 100 - node_filesystem_free_bytes{fstype=~"xfs|ext4"} / node_filesystem_size_bytes{fstype=~"xfs|ext4"} * 100 > 80for: 20mlabels:severity: warningannotations:summary: "硬盘分区使用率过高"description: "分区使用大于80%(当前值:{{ $value }}%)"
热加载配置
curl -XPOST 127.0.0.1:9090/-/reload
登陆prometheus
的UI界面,查看Alerts
规则
- Inactive:没有触发阈值
- Pending:已触发阈值但未满足告警持续时间
- Firing:已触发阈值且满足告警持续时间
四、通知规则
4.1 钉钉告警
docker
安装钉钉报警插件,启用一个名为:webhook1
的钉钉机器人。
docker run -d \
--name dingtalk \
--restart always \
-p 8060:8060 \
timonwong/prometheus-webhook-dingtalk:master \
--ding.profile="webhook1=https://oapi.dingtalk.com/robot/send?access_token=xxxx(自己的钉钉机器人token)"
设置alertmanager.yml
的route
与receivers
。
route
属性用来设置报警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。
global:resolve_timeout: 5m
route:group_by: ['alertname']group_wait: 10sgroup_interval: 10srepeat_interval: 1hreceiver: 'web.hook'
receivers:
- name: 'web.hook'webhook_configs:- send_resolved: trueurl: 'http://192.168.1.23:8060/dingtalk/webhook1/send'
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']
启动alertmanager
测试
4.2 企业微信告警
参考:https://my.oschina.net/guyongquan/blog/3128025
docker run -d --name wechat \
--restart always -p 8080:80 \
guyongquan/webhook-adapter \
--adapter=/app/prometheusalert/wx.js=/wx=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx(自己的微信机器人key)
global:resolve_timeout: 5m
route:group_by: ['alertname']group_wait: 10sgroup_interval: 10srepeat_interval: 1hreceiver: 'web.hook'
receivers:
- name: 'web.hook'webhook_configs:- send_resolved: true- url: 'http://192.168.1.23:8080/adapter/wx'
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']
Prometheus学习笔记(三)Alertmanager报警模块集成钉钉/企业微信机器人相关推荐
- 持续集成之群聊机器人消息推送:钉钉 vs 企业微信
企业微信和钉钉都有面向群的消息推送机器人,两者的使用非常相近,也有一些细节上的特性的区别,这篇文章将结合前面的使用示例进行总结. 使用方式 不同点 企业微信:先创建群,然后在群中添加机器人,可添加多个 ...
- K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程
K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...
- 小猫爪:S32K3学习笔记19-S32K3之如何集成SPD进自己的工程
小猫爪:S32K3学习笔记19-S32K3之如何集成SPD进自己的工程 1 前言 2 EB的配置 3 S32DS的配置 4 代码的集成 END 1 前言 前面已经将S32K3的与功能安全相关的硬件 ...
- J2EE学习笔记三:EJB基础概念和知识 收藏
J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- Ethernet/IP 学习笔记三
Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...
- 吴恩达《机器学习》学习笔记三——多变量线性回归
吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...
- Python基础学习笔记三
Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...
- Mr.J-- jQuery学习笔记(三十二)--jQuery属性操作源码封装
扫码看专栏 jQuery的优点 jquery是JavaScript库,能够极大地简化JavaScript编程,能够更方便的处理DOM操作和进行Ajax交互 1.轻量级 JQuery非常轻巧 2.强大的 ...
最新文章
- java 根据ip获取mac地址_利用java如何根据IP获取mac地址
- 曲线图实现,可滚动曲线图,自定义数据
- iPhone销售额下滑12%,但AirPods和手表救了苹果
- DedeCms织梦发布文章时输入Tag标签逗号自动变成英文标点的方法
- 自定义模板类(循环队列)
- DG备库磁盘空间满导致无法创建归档
- Ucenter社区服务搭建
- idea配置tomcat里你不知道的小秘密
- [蓝桥杯][2013年第四届真题]大臣的旅费(树的直径)
- tina中信号带宽_如何评测示波器带宽
- dva源码解析(一)
- 概率论与数据统计在分类预测中的原理介绍(信息增益、交叉熵等)
- 【线性系统理论】0.线性系统基本概念(1)
- 微信小程序打开手机的手电筒
- 使用requests爬取电影天堂数据,用lxml和Xpath
- 邮箱手动修改服务器配置,邮箱登录手动修改服务器配置
- 解决office一些文档不能显示在win7任务栏最近列表中的方法
- Hibernate查询Query By Criterial
- C#中命名参数和可选参数
- 使用Taro小程序框架开发一个学习、刷题、论坛、聊天交流的微信小程序
热门文章
- java春招面试冲刺系列:redis基础知识详细解析
- lkwa-blind-rce盲打rce
- 公路: 工程质量评定(JTG F80/1-2004)工程划分
- 智慧楼宇实现多场景下的精细化管理
- Auto.js Pro安卓免ROOT引流脚本开发系列教程07微信运动点赞(4)
- Lumentum22045498激光器
- 安卓推送平台选择及接入简介
- Vue axios基础
- 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~20开始游戏-对话处理
- 分析wav音频结构实现音频截取、音频二倍速播放、倒播和音频合并(C#实现)