如何解析MySQL prometheus邮件报警配置

分类:编程技术 时间:2024-02-20 15:44 浏览:0 评论:0
0
本文介绍prometheus如何配置MySQL邮件报警。内容非常详细。有兴趣的朋友可以参考一下。希望对大家有所帮助。


这里介绍一下prometheus的邮件报警配置。

alertmanager下载

Prometheus报警配置需要alertmanager组件,可以到prometheus官网下载。

https://prometheus.io/download/

由于使用最新版本的alertmanager组件配置电子邮件通信时出现一些问题,我们选择在 github 上进行配置 下载alertmanager 0.14版本。

https://github.com/prometheus/alertmanager

附上具体下载地址:

https:// github。 com/prometheus/alertmanager/releases/download/v0.14.0/alertmanager-0.14.0.linux-amd64.tar.gz

alertmanager安装配置

解压并安装下载的alertmanager包。

tar -xf Alertmanager-0.14.0.linux-amd64.tar.gzmv Alertmanager-0.14.0.linux-amd64 /data/alertmanager

编辑alertmanager配置文件并添加电子邮件信息。

# cd /data/alertmanager# cat alertmanager.ymlglobal: smtp_smarthost: smtp.exmail.xxx.com:465 # 发件人的电子邮件 smtp 地址 smtp_auth_username: xxxx@xxx.com # 发件人的电子邮件帐户 smtp_from: xxx@ xxx.com # 发送者邮箱账号 smtp_auth_password: xxxxxx # 发送者邮箱密码resolve_timeout: 5m smtp_require_tls: falseroute: # group_by: ['alertname'] # 报警分组依据 group_wait: 10s # 开始是第一次发送需要等待多长时间一组警报的通知 group_interval: 10s # 发送新警报之前的等待时间 Repeat_interval: 1m # 发送重复警报的频率为电子邮件配置 receive: 'email'receivers:- name: email email_configs: - send_resolved: true to: xxx @xxx.com # 收件人邮箱帐号

开始警报管理器。

# cd /data/alertmanager./alertmanager --config.file=alertmanager.yml &

alertmanager默认端口为9093。

prometheus配置

编辑prometheus目录下的报警模板alert_rules.yml,添加一些自定义报警项。

# cd /data/prometheus# cat alert_rules.ymlgroups:- name: MySQL-rules rules: -alert: MySQL Status # 警报名称 expr: up == 0 for: 5s # 报警后多长时间满足条件才会发送警报 注释:#分析项,警报信息摘要详细解释:“{{$labels.instance}}: MySQL has stop!!!” value: "{{$value}}"alertname: "MySQL 数据库已停止运行" description: "检测 MySQL 数据库的运行状态" message: 当前数据库实例 {{$labels.instance}} 已停止运行,请及时处理 -alert: MySQL Slave IO Thread Status # 警报名称 expr: mysql_slave_status_slave_io_running == 0 for: 5s # 满足报警条件需要多长时间?会发送警报 annotations: # 分析项,警报信息详细解释摘要: "{{$labels.instance}}: MySQL Slave IO 线程已停止!!!” value: "{{$value}}"alertname: "MySQL 主从 IO 线程已停止运行" description: "检测 MySQL 主从 IO 线程的运行状态" message: 当前数据库实例 {{$labels .instance}} IO线程停止运行,请及时处理 -alert: MySQL Slave SQL Thread Status # 报警名称 expr: mysql_slave_status_slave_sql_running == 0 for: 5s # 需要多长时间才能满足报警条件会发送报警 注释: # 分析项,报警信息详细解释 摘要:“{{$labels.instance}}: MySQL Slave SQL Thread has stop!!!” value: "{{$value}}"alertname: "MySQL主从SQL线程停止运行" description: "检测MySQL主从的运行状态ve SQL thread” message: 当前数据库实例 {{$labels.instance }} SQL 线程已停止运行,请及时处理 -alert: MySQL Slave Delay Status # 警报名称 expr: mysql_slave_status_sql_delay == 30 for: 5s # 如何处理满足报警条件后很久才会发送报警 注释:# 分析项、详细信息 解释报警信息摘要:“{{$labels.instance}}: MySQL Slave Delay has more than 30s!!!” value: “ {{$value}}"alertname:"MySQL主从延迟过大"description:"检测MySQL主从延迟状态"message:当前数据库实例的主从延迟状态{{$labels.instance} } 已超过30s,请及时处理

编辑prometheus目录下的prometheus配置文件,在prometheus.yml中添加监控配置信息。

# cd /data/prometheus# cat prometheus.yml# my global configglobal: scrape_interval: 15s # 设置抓取间隔为每 15 秒,默认为 every1分钟。 evaluation_interval: 15s # 每 15 秒评估一次规则。默认为每 1 分钟一次。 # scrape_timeout 设置为全局默认值(10 秒)。 # Alertmanager 配置erting:alertmanagers: - static_configs: - Targets: - 172.18.0.24:9093 # 对应ger节点的启动alteranaPort 9093 # 加载一次规则,根据全局'evaluation_interval'定期评估规则.rule_files: - "alert_rules.yml " # 对应于之前编辑的警报模板alert_rules.yml 文件 # 只包含一个要抓取的端点的抓取配置 :scrape_configs: - file_sd_configs: - files: - mysql.yml job_name: MySQLmetrics_path: /metrics relabel_configs: - source_labels: [__address__ ] regex: (.*) target_label: __ address__ replacement: $1

编辑完成后,重新加载配置更改。

kill -HUP [prometheus PID]

验证邮件报警

登录prometheus网页查看报警信息离子。

在浏览器中输入Prometheus_IP:9090即可查看各个报警项的状态。

停止主从线程,模拟触发报警。

Slave SQL线程停止后,报警项颜色变为黄色。持续时间超过定义的持续时间后,颜色变为红色并发送电子邮件。

收到警报电子邮件。

这是如何在prometheus上配置MySQL电子邮件警报。希望以上内容能够对大家有所帮助。可以学到更多的知识。如果您觉得文章不错,可以分享出去,让更多的人看到。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何解析MySQL prometheus邮件报警配置

用户评论