这篇文章给大家介绍prometheus如何配置MySQL邮件报警,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。


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

alertmanager下载

prometheus报警配置需要用到alertmanager组件,这个组件可以到prometheus官网上进行下载。

https://prometheus.io/download/

由于最新版本的alertmanager组件配置邮箱通讯存在一些问题,我们这里选择在github上下载0.14版本的alertmanager。

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-xfalertmanager-0.14.0.linux-amd64.tar.gzmvalertmanager-0.14.0.linux-amd64/data/alertmanager

编辑alertmanager的配置文件,添加邮箱信息。

#cd/data/alertmanager#catalertmanager.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:5msmtp_require_tls:falseroute:#group_by:['alertname']#报警分组依据group_wait:10s#最初即第一次等待多久时间发送一组警报的通知group_interval:10s#在发送新警报前的等待时间repeat_interval:1m#发送重复警报的周期对于email配置中多频繁receiver:'email'receivers:-name:emailemail_configs:-send_resolved:trueto:xxx@xxx.com#收件人邮箱账号

启动alertmanager。

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

alertmanager的默认端口为9093。

prometheus配置

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

#cd/data/prometheus#catalert_rules.ymlgroups:-name:MySQL-rulesrules:-alert:MySQLStatus#告警名称expr:up==0for:5s#满足告警条件持续时间多久后,才会发送告警annotations:#解析项,详细解释告警信息summary:"{{$labels.instance}}:MySQLhasstop!!!"value:"{{$value}}"alertname:"MySQL数据库停止运行"description:"检测MySQL数据库运行状态"message:当前数据库实例{{$labels.instance}}已经停止运行,请及时处理-alert:MySQLSlaveIOThreadStatus#告警名称expr:mysql_slave_status_slave_io_running==0for:5s#满足告警条件持续时间多久后,才会发送告警annotations:#解析项,详细解释告警信息summary:"{{$labels.instance}}:MySQLSlaveIOThreadhasstop!!!"value:"{{$value}}"alertname:"MySQL主从IO线程停止运行"description:"检测MySQL主从IO线程运行状态"message:当前数据库实例{{$labels.instance}}IO线程已经停止运行,请及时处理-alert:MySQLSlaveSQLThreadStatus#告警名称expr:mysql_slave_status_slave_sql_running==0for:5s#满足告警条件持续时间多久后,才会发送告警annotations:#解析项,详细解释告警信息summary:"{{$labels.instance}}:MySQLSlaveSQLThreadhasstop!!!"value:"{{$value}}"alertname:"MySQL主从SQL线程停止运行"description:"检测MySQL主从SQL线程运行状态"message:当前数据库实例{{$labels.instance}}SQL线程已经停止运行,请及时处理-alert:MySQLSlaveDelayStatus#告警名称expr:mysql_slave_status_sql_delay==30for:5s#满足告警条件持续时间多久后,才会发送告警annotations:#解析项,详细解释告警信息summary:"{{$labels.instance}}:MySQLSlaveDelayhasmorethan30s!!!"value:"{{$value}}"alertname:"MySQL主从延时过大"description:"检测MySQL主从延时状态"message:当前数据库实例{{$labels.instance}}主从延时状态已经超过30s,请及时处理

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

#cd/data/prometheus#catprometheus.yml#myglobalconfigglobal:scrape_interval:15s#Setthescrapeintervaltoevery15seconds.Defaultisevery1minute.evaluation_interval:15s#Evaluaterulesevery15seconds.Thedefaultisevery1minute.#scrape_timeoutissettotheglobaldefault(10s).#Alertmanagerconfigurationalerting:alertmanagers:-static_configs:-targets:-172.18.0.24:9093#对应启动的altermanager节点的9093端口#Loadrulesonceandperiodicallyevaluatethemaccordingtotheglobal'evaluation_interval'.rule_files:-"alert_rules.yml"#对应前面编辑的报警模版alert_rules.yml文件#Ascrapeconfigurationcontainingexactlyoneendpointtoscrape:scrape_configs:-file_sd_configs:-files:-mysql.ymljob_name:MySQLmetrics_path:/metricsrelabel_configs:-source_labels:[__address__]regex:(.*)target_label:__address__replacement:$1

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

kill-HUP[prometheusPID]

验证邮件报警

登陆prometheus的web页面,查看报警信息。

浏览器输入Prometheus_IP:9090 ,可以看到各个报警项的状态。

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

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

收到报警邮件。

关于prometheus如何配置MySQL邮件报警就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。