首页 > 其他分享 >Prometheus+alertmanager实现告警的简单验证

Prometheus+alertmanager实现告警的简单验证

时间:2023-07-06 22:56:04浏览次数:54  
标签:alertmanager ## 配置 -- Prometheus 邮箱 告警 email

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" }}[email protected]{{ 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: '[email protected]'
  ## 配置发件人邮箱账户
  smtp_auth_username: '[email protected]'
  ## 配置发件人邮箱密码 (这里指的是邮箱授权码,不是登录密码)
  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

说明

网上资料挺多的, 可以简单实现 .但是很多写法还是不熟悉, 需要再次验证. 

标签:alertmanager,##,配置,--,Prometheus,邮箱,告警,email
From: https://www.cnblogs.com/jinanxiaolaohu/p/17533559.html

相关文章

  • 搭建hwi和告警和日志信息监控
    搭建hwi1.通过网址https://archive.apache.org/dist/hive/hive-2.0.0/安装hive/hive-2.0.0包[hadoop@master~]$wgethttps://archive.apache.org/dist/hive/hive-2.0.0/apache-hive-2.0.0-src.tar.gz[hadoop@masteropt]$lsapache-hive-2.0.0-src.tar.gzhadoop-2.7.1.tar......
  • prometheus Histogram 统计原理
    大家好,我是蓝胖子,书接上文,我在prometheus描点原理那一篇文章里,留了一个思考题:我们通常会用到histogram_quantile去计算服务接口时间的耗时情况。histogram_quantile(0.99,rate(server_handle_seconds_bucket{}[1m]))但是rate函数会将原指标按时间求斜率,这样会影响原本分位数......
  • prometheus描点原理
    大家好,我是蓝胖子,关于prometheus的入门教程有很多,拿我之前学prometheus的经历来讲,看了很多教程,还是会对prometheus的描点以及背后的统计原理感到迷惑,所以今天我们就来分析下这部分,来揭开其神秘的面纱。我们先来看看prometheus里的数据模型是怎么样的,只有知道了数据结构,才能理解......
  • prometheus Rmote Write loss data 丢失数据
    问题现象背景介绍目前prometheus(本地存储一小时数据)收集指标victroriametrics负责存储项目地址grafana村victoria中读取指标并绘制图表remoteread现象描述指标丢失prometheus本地数据完好。判断远程写入存在问题......
  • prometheus & cloud monitoring
    prometheushttps://prometheus.io/为云监控而生 FrommetricstoinsightPoweryourmetricsandalertingwiththeleadingopen-sourcemonitoringsolution. PrometheusisaCloudNativeComputingFoundationgraduatedproject. 从openstack产生的虚拟机,到k8s......
  • 2.1 Prometheus组件
    Prometheus的基本架构: PrometheusServerPrometheusServer是Prometheus监控系统的核心组件之一,它负责采集、存储和管理指标数据,并提供查询和报警功能。以下是一些PrometheusServer的关键特性和功能:1.数据采集:PrometheusServer负责定期从各个配置的目标(如应用程序、主......
  • Prometheus-2:blackbox_exporter黑盒监控
    黑盒监控blackbox_exporter前边介绍有很多exporter可以直接将metrics暴露给Prometheus进行监控,这些称为“白盒监控”,那些exporter无法监控到的指标呢?或者未暴露Metrics给Prometheus的一些服务怎么办?这时就要用到blackbox_exporte“黑盒监控”。blackbox_exporte支持用户通过:HT......
  • yum安装mysql时出现Public key for mysql-community-common-5.7.42-1.el7.x86_64.rpm
    问题描述:yum安装mysql时出现Publickeyformysql-community-common-5.7.42-1.el7.x86_64.rpmisnotinstalled告警,如下所示:数据库:mysql5.7.42系统:rhel7.31、问题重现[root@leo-mysql-master~]#yuminstall-ymysql-community-serverLoadedplugins:langpacks,product......
  • 告警类问题 8
    1、SQL注入类告警该怎么处理?答:根据数据包回显,判断注入是否成功,如果成功可以直接上报研判,如果没有成功,但一直在尝试攻击,我们也可以上报研判,进行封禁IP。 2、SQL注入告警有什么特征?答:请求报文中有特殊的sql字符,比如,and、or、id=1、updatexml、select、union等。响应报文中有一......
  • prometheus
    prometheushttps://prometheus.io/FrommetricstoinsightPoweryourmetricsandalertingwiththeleadingopen-sourcemonitoringsolution. 架构https://juejin.cn/post/7201757033321267258PrometheusServer:用于收集和存储时间序列数据ClientLibrary:......