Prometheus+alertmanager实现告警的简单验证
Prometheus+alertmanager实现告警的简单验证
背景
学习源自: http://www.mydlq.club/article/126/
上午没搞定, 中午睡不着,继续学习处理.
发现最恶心的有点事 alertmanager的 --cluster.listen-address --web.listen-address 两个参数
很多资料里面只写了第一个参数, 没写第二个参数. 导致我端口冲突(测试kafka私用)
无法正常使用, 浪费了至少 1h 的时间. 还是需要多查看 -h 以及一些帮助文档的.
服务启动设置.
cd /prometheus/xxxx
nohup ./prometheus --config.file=prometheus.yml --storage.tsdb.retention.time=168h --web.listen-address=:19090 --web.enable-lifecycle >/dev/null 2>&1 &
nohup ./alertmanager --web.listen-address=":19093" --cluster.listen-address="0.0.0.0:19094" --config.file=alertmanager.yml --storage.path="/prometheus/alertdata/" --data.retention=120h >/dev/null 2>&1 &
Alertmanager 预警邮件模板
vim mail.temp
{{ define "email.to" }}380235180@qq.com{{ end }}
{{ define "email.title" }}来自济南小老虎的报警{{ end }}
{{ define "email.to.html" }}
{{ range .Alerts }}
<p>==========<strong>告警通知</strong>==========</p>
<strong>告警程序:</strong> prometheus_alert<br>
<strong>告警级别:</strong> {{ .Labels.severity }}<br>
<strong>告警类型:</strong> {{ .Labels.alertname }}<br>
<strong>告警实例:</strong> {{ .Labels.instance }}<br>
<strong>告警信息:</strong> {{ .Annotations.summary }}<br>
<strong>告警描述:</strong> {{ .Annotations.description }}<br>
<strong>当前状态:</strong> {{ .Status }}<br>
<strong>触发时间:</strong> {{ .StartsAt.Format "2023-01-01 15:04:05" }}<br>
<strong>监控界面地址:</strong> <a href="{{ .GeneratorURL }}">点击跳转</a><br>
{{ end }}
{{ end }}
Alertmanager 预警自己的配置文件
vim alertmanager.yml
# 全局配置
global:
## 在没有报警的情况下声明为已解决的时间
resolve_timeout: 5m
## ===配置邮箱===
## 配置邮箱 SMTP 服务器地址和端口;
smtp_smarthost: 'smtp.qq.com:25'
## 配置发件人邮箱
smtp_from: '380235180@qq.com'
## 配置发件人邮箱账户
smtp_auth_username: '380235180@qq.com'
## 配置发件人邮箱密码 (这里指的是邮箱授权码,不是登录密码)
smtp_auth_password: 'xxxxxxxx'
## 配置是否使用 TLS 加密
smtp_require_tls: false
# 自定义邮件通知模板,注意当前目录下可以这样设置.
templates:
- '*.temp'
# 告警路由配置
route:
## 配置用于分组的标签
group_by: ['alertname', 'cluster']
## 配置同一组告警等待时间。
## 用于配置接收到某组中的告警信息后,并不会立即发出告警信息,
## 而是等待指定时间,如果有相同组的告警信息,则一起发送告警
group_wait: 30s
## 两组告警的间隔时间
group_interval: 10m
## 重复告警的间隔时间,减少相同邮件的发送频率。
## 如果一个报警信息已经发送成功了,等待 repeat_interval 时间来重新发送他们
## 但是如果告警在 resolve_timeout 时间内没有重复发送,表示问题已经解决,则
## 到 repeat_interval 时间后就不会重新发送
repeat_interval: 30m
## 配置默认接收者,如果一个报警没有被一个 route 匹配,则发送给默认的接收器
receiver: 'email'
## 配置指定组的消息由对应哪个接收者进行处理
routes:
- receiver: 'email'
group_wait: 30s
### 配置匹配标签,只有匹配的标签才会使用当前配置中指定的接收者进行处理
match:
alertname: email-test
# 告警接收者配置(大部分参数值都是引入模板中定义的变量)
receivers:
- name: 'email'
email_configs:
## 设置接收告警的邮箱,这里既可以直接写接收者邮箱,也可以引入模板中定义的变量
- to: '{{ template "email.to" }}'
## 设置邮箱标题
headers: { Subject: '{{ template "email.title" }}【告警状态: {{ .Status }}】' }
## 设置邮箱内容
html: '{{ template "email.to.html" .}}'
## 是否通知已解决的告警
send_resolved: true
prometheus的设置
修改配置文件
vim prometheus.yml
############ 添加配置 AlertManager 服务器地址 ###################
alerting:
alertmanagers:
- static_configs:
- targets: ['127.0.0.1:19093']
############ 指定告警规则文件路径位置 ###################
rule_files:
- "*-rule.yml"
prometheus 设置告警规则
vim email-rule.yml
## 告警规则配置如下,其中告警条件 up > -1 是必然满足的,
## 必定会触发 Prometheus 告警状态为 Firing。
groups:
- name: Instances
rules:
- alert: InstanceDown
expr: up > -1
for: 1m
labels:
severity: page
## 配置用于分组的标签
alertname: email-test
annotations:
description: '{{ $labels.instance }} 实例的 {{ $labels.job }} 任务宕机已经超过 1 分钟.'
summary: '实例 {{ $labels.instance }} 宕机'
动态刷新
curl -XPOST http://127.0.0.1:19093/-/reload
curl -XPOST http://127.0.0.1:19090/-/reload
说明
网上资料挺多的, 可以简单实现 .但是很多写法还是不熟悉, 需要再次验证.
Prometheus+alertmanager实现告警的简单验证的更多相关文章
- [k8s]prometheus+alertmanager二进制安装实现简单邮件告警
本次任务是用alertmanaer发一个报警邮件 本次环境采用二进制普罗组件 本次准备监控一个节点的内存,当使用率大于2%时候(测试),发邮件报警. k8s集群使用普罗官方文档 环境准备 下载二进制h ...
- Prometheus+alertmanager告警配置-2
prometheus 告警 prometheus 通过alertmanager进行告警 实现监控告警的步骤: 在prometheus中定义告警规则rule_files alertmanager配置告警 ...
- Prometheus + Alertmanager 实现企微告警
上一篇:二进制安装Prometheus 下面准备在监控的流程中呈现到告警到企微 查看企业ID,用于后续配置文件 四.安装Alertmanager1.准备安装的包 --选择上面链接给的Linux的ta ...
- Prometheus&Alertmanager告警推送
前言 尽管可以通过可视化数据监控系统运行状态,但我们无法时刻关注系统运行,因此需要一些实时运行的工具能够辅助监控系统运行,当系统出现运行问题时,能够通知我们,以此确保系统稳定性,告警便是作为度量指标监 ...
- Docker+Prometheus+Alertmanager+Webhook钉钉告警
Docker+Prometheus+Alertmanager+Webhook钉钉告警 1.环境部署 1.1 二进制部署 1.2 docker部署 1.2.1 webhook 1.2.2 alertma ...
- Prometheus alertmanager邮件发送+grafana告警展示
前言 前面一篇博客,我已经介绍了prometheus如何监控mysql. 这一篇我来介绍如何通过alertmanger进行告警邮件发送(微信或钉钉类似,因为需要企业帐户,我就不试了),以及如何通过gr ...
- jmx_prometheus_javaagent+prometheus+alertmanager+grafana完成容器化java监控告警(二)
一.拓扑图 二.收集数据 2.1前期准备 创建共享目录,即为了各节点都创建该目录,有两个文件,做数据共享 /home/target/prom-jvm-demo 1.下载文件 jmx_prometheu ...
- prometheus+grafana+Alertmanager邮箱告警
环境 系统:CentOS 7 软件:alertmanager-0.18.0.linux-amd64.tar.gz 安装 下载二进制包 地址:https://prometheus.io/download ...
- Docker系列——Grafana+Prometheus+Node-exporter服务器告警中心(二)
在前一篇博文中介绍,服务器监控已经部署成功.如果每天都需要人去盯着服务情况,那也不太现实.既然监控平台已经部署好了,是不是可以自动触发报警呢? 在上一篇Prometheus架构中有讲到,核心组件之一: ...
- kubernetes(k8s) Prometheus+grafana监控告警安装部署
主机数据收集 主机数据的采集是集群监控的基础:外部模块收集各个主机采集到的数据分析就能对整个集群完成监控和告警等功能.一般主机数据采集和对外提供数据使用cAdvisor 和node-exporter等 ...
随机推荐
- Tpon 1.0 一键查询网站存在过的路径
Tpon 1.0 寻找网站存在过的路径 该工具能够让你发现意料之外的路径 工具描述 编写该工具旨在寻找网站存在过的网站路径,这个地址可能是机器爬下来的也可能是某些人访问过的,在表面你可能看不到它的入口 ...
- 开源:Taurus.DTC 微服务分布式事务框架,支持 .Net 和 .Net Core 双系列版本
前言: 在经过1年多的深思,十几年的框架编写技术沉淀下,花了近一个月的时间,终于又为 .Net 及 .Net Core 的微服务系列框架贡献当中的一个重要组件. 1.开源地址: https://git ...
- 文心一言 VS 讯飞星火 VS chatgpt (25)-- 算法导论4.2 7题
七.设计算法,仅使用三次实数乘法即可完成复数 a+bi和c+di 相乘.算法需接收a.b.c和d 为输入,分别生成实部 ac-bd 和虚部ad+bc. 文心一言: 可以使用如下算法来计算复数 a+bi ...
- 分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
前文再续,Go lang和Python一样,基础数据类型有着很多分类,分门别类,一应俱全.它们对应着不同的使用场景,分别是:整形.浮点.字符.字符串.布尔等等.常用的基本数据类型经常会参与日常业务逻辑 ...
- 云图说|华为云CodeArts Build,云端化的编译构建平台
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 本文分享自华为云社区&l ...
- 身未动心已远,AI带你流浪地球
摘要:我们提供了一键运行的notebook AI作画 Dreambooth 生成自定义主体,可以在ModelArts平台上调试开发自己的文生图模型. 本文分享自华为云社区<DreamBooth+ ...
- 如何实现数据流畅转换?火山引擎ByteHouse推出ELT能力
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在数据分析场景中,企业使用的数据通常具备来源多样化的特点,如支付交易记录.用户行为等,且数据格式各异,有的为行 ...
- C# 使用SqlDataAdapter和DataSet来访问数据库
使用SqlDataAdapter和DataSet来访问数据库 报:已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭 解决方法,使用 using 包住 connectio ...
- C++11实用特性1
1 原始字面量 有时候在输出一个路径字符串时,编译器会将其中的部分内容识别成转义字符进行输出,可以用R "xxx(原始字符串)xxx"其中()两边的字符串可以省略.原始字面量R可以 ...
- Java 时间戳和时间相互转换 日期时间和字符串相互转换 日期时间相减差值 日期时间增加指定天数
Java 时间戳和时间相互转换 日期时间和字符串相互转换 日期时间相减差值 日期时间增加指定天数 代码: package com.sux.demo; import java.text.ParseExc ...