Prometheus + Grafana 的组合在微服务项目中可以完成许多DevOps任务,它们共同提供了强大的监控和可视化功能。我们陆续介绍Prometheus + Grafana 的相关用法。
前面我们介绍了:
Prometheus+Grafana保姆笔记(1)------Prometheus+Grafana的安装
Prometheus+Grafana保姆笔记(2)------监控Spring Boot微服务程序
本期我们介绍监控Prometheus + Grafana搭配mysqld_exporter来监控MySQL.
一、下载mysqld_exporter
-
访问Prometheus官网 :
前往Prometheus官网或Prometheus的GitHub页面,找到
mysqld_exporter
的下载链接。通常,你可以在GitHub的mysqld_exporter仓库中找到适用于你系统的发布版本。 -
下载Windows/Linux版本 :
下载对应系统的mysqld_exporter压缩包,如Linux下mysqld_exporter-0.15.1.linux-amd64.tar.gz,给个wget的代码。而Windows下mysqld_exporter-0.15.1.windows-amd64.zip。
cd /opt wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
二、解压mysqld_exporter
解压文件 :
不管是Windows还是Linux,解压后都只有3个文件,只有个mysqld_exporter有用,其余2个文本看看的。
tar zxf mysqld_exporter-0.15.1.linux-amd64.tar.gz
mv mysqld_exporter-0.15.1.linux-amd64/mysqld_exporter /usr/local/bin/
三、配置MySQL权限
在MySQL中创建一个专门用于监控的用户,并赋予必要的权限。登录到MySQL服务器,执行以下SQL命令:
sql
CREATE USER 'mysql_monitor'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION CLIENT, PROCESS, SELECT ON *.* TO 'mysql_monitor'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意:出于安全考虑,不要在生产环境中使用'%'
作为主机名,而应指定具体的IP地址或主机名
四、配置mysqld_exporter
-
创建配置文件 :
在
mysqld_exporter
的目录中创建一个名为my.cnf
的文件(或.my.cnf
,具体取决于你的操作系统和配置习惯)。这个文件用于配置mysqld_exporter
如何连接到MySQL数据库。 -
编辑my.cnf文件 :
在
my.cnf
文件中添加以下内容(请根据实际情况修改用户名、密码、主机和端口):[client]
user=mysql_monitor
password=your_password
host=127.0.0.1
port=3306
请根据你的实际情况修改上述配置。这个文件是windows和linux环境通用的格式,没有来去。
五、启动mysqld_exporter
Linux
可以使用以下命令启动mysqld_exporter
,并通过--web.listen-address
和--config.my-cnf
参数指定监听地址和配置文件路径:
nohup /usr/local/bin/mysqld_exporter --web.listen-address=:9104 --config.my-cnf=/path/to/.my.cnf &
请将/path/to/.my.cnf
替换为你的配置文件实际路径。
也可以去vi /etc/systemd/system/mysqld_exporter.service注册成一个服务:
[Unit]
Description=mysqld_exporter
After=network.target
[Service]
#注意my.cnf前面的.取决于你创建的时候有没有这个.
ExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf=/path/to/your/.my.cnf
Restart=always
[Install]
WantedBy=multi-user.target
然后我们就又可以进入习惯的服务操作啦
sudo systemctl start mysqld_exporter
sudo systemctl enable mysqld_exporter
sudo systemctl status mysqld_exporter
Windows
使用命令行工具启动mysqld_exporter。如果您使用的是二进制文件,则可能需要指定配置文件的路径,例如:
./mysqld_exporter --config.my-cnf=/path/to/your/.my.cnf
验证
你可以通过访问http://<mysqld_exporter_host>:9104/metrics
来验证mysqld_exporter
是否正在运行并暴露指标。
记得先开9104的防火墙哈
#防火墙打开和重载
firewall-cmd --add-port=9104/tcp --permanent
firewall-cmd --reload
六、配置Prometheus
最后,你需要在Prometheus的配置文件(如prometheus.yml
)中添加一个作业(job),以便Prometheus能够抓取mysqld_exporter
暴露的指标。例如:
scrape_configs:
- job_name: 'mysql'
static_configs:
- targets: ['localhost:9104']
重启Prometheus
七、添加Grafana仪表
添加仪表昨日提过了,可以去官网模板 https://grafana.com/grafana/dashboards查看适合自己的模板,都非常不错。里面甚至有各大云平台的Mysql的监控仪表盘。具体怎么导入上一篇介绍过了。
好了,本期先这样,下期我们试试监控服务器本身。