普罗米修斯监控mysql与邮件告警
首先需要安装mysql,mysql的安装参考https://morris131.blog.csdn.net/article/details/107742395mysqld_exporter的安装下载mysqld_exporter,下载地址:https://github.com/prometheus/mysqld_exporter/releases这里下载的是:https://github.com/
·
首先需要安装mysql,mysql的安装参考https://morris131.blog.csdn.net/article/details/107742395
mysqld_exporter的安装
- 下载mysqld_exporter,下载地址:https://github.com/prometheus/mysqld_exporter/releases
-
上传至/usr/local目录下并解压
-
安装为系统服务
# cat /etc/systemd/system/mysqld_exporter.service
[Unit]
Description=mysqld-exporter
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/mysqld_exporter-0.13.0.linux-amd64/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter-0.13.0.linux-amd64/.my.cnf
[Install]
WantedBy=multi-user.target
- 新增配置文件.my.cnf
# cat /usr/local/mysqld_exporter-0.13.0.linux-amd64/.my.cnf
[client]
user=prometheus
password=Prometheus@1
- 启动mysqld_exporter
# systemctl start mysqld_exporter
# systemctl status mysqld_exporter
# systemctl enable mysqld_exporter
-
验证,浏览器输入:http://192.168.0.208:9104/
-
grafana使用模板7362显示监控数据,http://192.168.0.207:3000/dashboard/import
最后效果如下:
配置prometheus
/usr/local/prometheus-2.27.1.linux-amd64/prometheus.yml增加如下内容:
- job_name: 'mysql'
static_configs:
- targets: ['192.168.0.208:9104']
重启prometheus。
打开http://192.168.0.207:9090/targets,发现mysql已经开始被监控了。
邮件告警
邮件告警需要安装alertmanager
- 下载alertmanager,下载地址:https://github.com/prometheus/alertmanager/releases
-
上传至/usr/local目录下并解压
-
安装为系统服务
# cat /etc/systemd/system/alertmanager.service
[Unit]
Description=Alertmanage
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/alertmanager-0.22.2.linux-amd64/alertmanager --config.file=/usr/local/alertmanager-0.22.2.linux-amd64/alertmanager.yml
[Install]
WantedBy=multi-user.target
- 新增配置文件alertmanager.yml
# cat /usr/local/alertmanager-0.22.2.linux-amd64/alertmanager.yml
global:
resolve_timeout: 5m
# smtp配置
smtp_from: "morris131@163.com"
smtp_smarthost: 'smtp.163.com:25'
smtp_auth_username: "morris131@163.com"
smtp_auth_password: "xxxxxx"
smtp_require_tls: false
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'email'
receivers:
- name: 'email'
email_configs:
- to: '1508787838@qq.com'
- 启动alertmanager
# systemctl start alertmanager
# systemctl status alertmanager
# systemctl enable alertmanager
- 验证,浏览器输入:http://192.168.0.207:9093/
- 修改prometheus.yml配置文件
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.0.207:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "rule/*.yml"
# - "second_rules.yml"
- 编写规则文件
# cat general.yml
groups:
- name: general.rules
rules:
# Alert for any instance that is unreachable for >5 minutes.
- alert: InstanceDown
expr: up == 0
for: 1m
labels:
severity: error
annotations:
summary: "Instance {{ $labels.instance }} 停止工作"
description: "{{ $labels.instance }} of job {{ $labels.job }} 已停止1分钟>以上"
-
重启prometheus
-
打开http://192.168.0.207:9090/alerts,能看到告警规则。
- 停止mysqld_exporter,prometheus后台能看到告警信息。
邮箱也收到了对应的邮件。
遇到的问题
- 一切配置正常,就是邮件发不出去,报错email.loginAuth auth: 550 User has no permission
开启smtp,然后会得到一个授权码,将这个授权码作为邮箱的登录密码即可。
更多推荐
已为社区贡献3条内容
所有评论(0)