2021-05-18

Prometheus监控MySQL

Mysql-exporter+Mysql+Prometheus

可以容器安装mysqld-exporter或者宿主机操作系统直接安装也行。

我这里写的是宿主机操作系统直接安装mysqld_exporter

mysql-exporter下载地址如下所示


因为简书屏蔽URL,所以图片展示


我下载的是0.13.0版本的,这是目前最新的版本,可以用命令下载,也可以直接浏览器下载然后通过winscp发送到对应的服务器上安装

这是0.12.1 稳定

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz

这是0.13.0 不稳定

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0-rc.linux-amd64.tar.gz

下载完成后的包名

移动压缩包到指定文件夹

mkdir -p /usr/local/mysqld_exporter

mv mysqld_exporter-0.13.0-rc.0.linux-amd64.tar.gz /usr/local/mysql_exporter/

然后解压缩


接着是授权,这个最重要,记住:最小权限原则,曾经遇到很多搞技术的IT特别懒,直接给全部权限,这是很危险且不负责任的,特别是在生产环境下,一旦数据库出现什么问题,你丢的可不仅仅是饭碗。。。

create user 'exporter@localhost' identified by 'trippal';

grant process,replication client,select on *.* to 'exporter@localhost';


我这个也是测试环境

exporter@exporter主机所在的ip,因为我这边的MySQL_exporter和MySQL服务器在同一个操作系统上,所以只是localhost,千万不要图省事,直接exporter@%,这个直接就是所有IP的主机只要密码正确都可以登录上去了;

接下来的 grant 授权是重点,千万不要这样 grant all on *.* to 'exporter@%' , 这样一旦密码被破解,整个数据库就是囊中之物了,公司的数据库管理员通常情况下是不会给你这样的权限的。

接着在同目录下创建mysql.cnf文件,即客户端连接获取mysql数据,我这是在做测试实验,密码无所谓,现实情况下密码不可能这么短,


接着在prometheus.yml配置文件中加上mysql的监控项,其实正确来说应该是填写MySQL-exporter


接着创建服务

vim /usr/lib/systemd/system/mysqld_exporter.service

[Unit]

Description=mysqld_exporter

Documentation=https://prometheus.io

Wants=network-online.target

After=network.target

[Service]

Type=simple

User=root

ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/mysql.cnf

Restart=on-failure

[Install]

WantedBy=multi-user.target

接着启动mysql-exporter

 systemctl daemon-reload

systemctl start mysqld_exporter

最后查看状态

访问Ip:9104/metrics


接着在prometheus上可以查看到对应的监控条目


接着启动Grafana,然后在Grafana上导入对应的模板7362,或者自己写个json模板也行


接着一直开启服务,让Prometheus收集数据即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容