首先需要安装mysql,mysql的安装参考https://morris131.blog.csdn.net/article/details/107742395

mysqld_exporter的安装

  1. 下载mysqld_exporter,下载地址:https://github.com/prometheus/mysqld_exporter/releases

这里下载的是:https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz

  1. 上传至/usr/local目录下并解压

  2. 安装为系统服务

# 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
  1. 新增配置文件.my.cnf
# cat /usr/local/mysqld_exporter-0.13.0.linux-amd64/.my.cnf 
[client]
user=prometheus
password=Prometheus@1
  1. 启动mysqld_exporter
# systemctl start mysqld_exporter
# systemctl status mysqld_exporter
# systemctl enable mysqld_exporter
  1. 验证,浏览器输入:http://192.168.0.208:9104/
    在这里插入图片描述

  2. 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

  1. 下载alertmanager,下载地址:https://github.com/prometheus/alertmanager/releases

这里下载的是:https://github.com/prometheus/alertmanager/releases/download/v0.22.2/alertmanager-0.22.2.linux-amd64.tar.gz

  1. 上传至/usr/local目录下并解压

  2. 安装为系统服务

# 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
  1. 新增配置文件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'
  1. 启动alertmanager
# systemctl start alertmanager
# systemctl status alertmanager
# systemctl enable alertmanager
  1. 验证,浏览器输入:http://192.168.0.207:9093/

在这里插入图片描述

  1. 修改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"
  1. 编写规则文件
# 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分钟>以上"
  1. 重启prometheus

  2. 打开http://192.168.0.207:9090/alerts,能看到告警规则。

在这里插入图片描述

  1. 停止mysqld_exporter,prometheus后台能看到告警信息。

在这里插入图片描述

邮箱也收到了对应的邮件。

在这里插入图片描述

遇到的问题

  1. 一切配置正常,就是邮件发不出去,报错email.loginAuth auth: 550 User has no permission

开启smtp,然后会得到一个授权码,将这个授权码作为邮箱的登录密码即可。

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐