![681992dabb99cd49e74ab28d38307c8c.png](https://img-blog.csdnimg.cn/img_convert/681992dabb99cd49e74ab28d38307c8c.png)
今天来写一篇监控MySQL数据库的的监控方案:Prometheus+Grafana监控mysql性能
1.监控方案介绍
祖传老图修一修:
![6974c83562d8a881b2b25b6ae1348eee.png](https://img-blog.csdnimg.cn/img_convert/6974c83562d8a881b2b25b6ae1348eee.png)
解释一波:①mysqld_exporter用来收集数据库的性能数据 今天主讲
②node_exporter用来收集服务器的性能数据功能和上一篇的telegraf差不多
③prometeus 其实大家应该在上一篇看到过了
![7ab8271764885d4a27a68e5829b17f97.png](https://img-blog.csdnimg.cn/img_convert/7ab8271764885d4a27a68e5829b17f97.png)
so大家应该猜也能猜到它和influxDB是个差不多的东东。。。just so so
通过http(面试必考协议,成天碰见就是讲不清QAQ)协议抓取被监控组件的状态,抓取方式就是那些exporter了
至于读法吗:普罗米修斯QAQ
2.环境搭建
1.启动服务器数据库
![38ed5f1b5730739bdc1e34a0d8cf5af8.png](https://img-blog.csdnimg.cn/img_convert/38ed5f1b5730739bdc1e34a0d8cf5af8.png)
缺少mysql.sock文件,可以从/tmp/mysql.sock copy过去一份,然后重启数据库
![835ded5d33cd9b03d805223b7be791a3.png](https://img-blog.csdnimg.cn/img_convert/835ded5d33cd9b03d805223b7be791a3.png)
数据库启动成功
设置下数据库root用户密码
![26cd50bce7e9bad16f99af961cf79d5e.png](https://img-blog.csdnimg.cn/img_convert/26cd50bce7e9bad16f99af961cf79d5e.png)
(⊙﹏⊙)修改记得更新,刚才忘记更新,密码一直不生效
更新命令
![14c2da9abc8b2ec6c82466cfae94b074.png](https://img-blog.csdnimg.cn/img_convert/14c2da9abc8b2ec6c82466cfae94b074.png)
现在要开始开一个数据库用户,为什么要开呢,因为mysqld_exporter需要这个用户权限获取数据库信息 至于为什么不能用root用户我想应该是。。。额正常都不会用root用户吧,说服自己就好,机智的一笔
![0099d7fbfdab9560421aca28c6aa2501.png](https://img-blog.csdnimg.cn/img_convert/0099d7fbfdab9560421aca28c6aa2501.png)
刷新一下,查一下mysql.user表是否添加了新增的数据库用户
![5b607ec5d2ee475c455761f8758ce28c.png](https://img-blog.csdnimg.cn/img_convert/5b607ec5d2ee475c455761f8758ce28c.png)
马赛克区域是用户名
2.安装Prometheus
三步走了
拖:
![1848e67f34b94572046205b6c159dd2b.png](https://img-blog.csdnimg.cn/img_convert/1848e67f34b94572046205b6c159dd2b.png)
解压改名:
![526c4f503495076924630ffc117f4544.png](https://img-blog.csdnimg.cn/img_convert/526c4f503495076924630ffc117f4544.png)
开端口:
prometeus.yml是启动文件,现在要修改下它的配置,开两个端口,一个端口用来收集mysql的数据,一个用来收集服务器的数据
![d83e070466420d6335f84a5356a2376f.png](https://img-blog.csdnimg.cn/img_convert/d83e070466420d6335f84a5356a2376f.png)
添加两个端口:
![c26f1b30eaf32fbb2faabd55f05b8102.png](https://img-blog.csdnimg.cn/img_convert/c26f1b30eaf32fbb2faabd55f05b8102.png)
然后和上篇文章把3000端口在防火墙永久添加白名单,这两个也需要
命令firwall-cmd --add-port=端口号/tcp --permanent
![5a98a2982c57d140611eb43d45a2bf04.png](https://img-blog.csdnimg.cn/img_convert/5a98a2982c57d140611eb43d45a2bf04.png)
添加成功!给与promethus.yml 777权限
![152d70c545630db5df70c0b592ebaa5a.png](https://img-blog.csdnimg.cn/img_convert/152d70c545630db5df70c0b592ebaa5a.png)
添加端口步骤千万搞好格式,要不然乱七八糟错,和上面的严格对齐
![cde69ec25811e242a33990b166b4c4ed.png](https://img-blog.csdnimg.cn/img_convert/cde69ec25811e242a33990b166b4c4ed.png)
我上面那个看着都和这边对齐了,但是还是报错,没办法直接复制了 - job_name: 'prometheus' 居然好了,坑死
然后启动一下,官方命令 ./prometheus --config.file=prometheus.yml &
![8556106c1fe78a0f19aa9c2128731fe1.png](https://img-blog.csdnimg.cn/img_convert/8556106c1fe78a0f19aa9c2128731fe1.png)
好了,可以用本地浏览器访问了,试下
![3f957184b56adb044348dfe0b4f1b45d.png](https://img-blog.csdnimg.cn/img_convert/3f957184b56adb044348dfe0b4f1b45d.png)
点击 Status-targets,可以看到官方自带的prometheus可以访问了(up)
linux和mysql还是不能的(down),所以要安装exporter
![95b83db135521e7c7e107dc5857a3e4d.png](https://img-blog.csdnimg.cn/img_convert/95b83db135521e7c7e107dc5857a3e4d.png)
3.安装mysqld_exporter
傻瓜操作
![da17e1df87155f810ae79d63392e3cc2.png](https://img-blog.csdnimg.cn/img_convert/da17e1df87155f810ae79d63392e3cc2.png)
连接数据库
在mysql_exporter下创建一个my.cnf文件和mysql里自己创建的用户连接
![6810e914275902bfafbb8ed477fc9d26.png](https://img-blog.csdnimg.cn/img_convert/6810e914275902bfafbb8ed477fc9d26.png)
然后启动一下
然后又搞错了,一定要是my.cnf格式啊,我写成my.conf QAQ
修改文件名启动成功 ./mysqld_exporter --config.my-cnf=my.cnf
![0a44e5ce651fe480014fefe549ba7561.png](https://img-blog.csdnimg.cn/img_convert/0a44e5ce651fe480014fefe549ba7561.png)
然后刷新一下刚才的网址
![bc63e14c82bc7b533afe0937797c0627.png](https://img-blog.csdnimg.cn/img_convert/bc63e14c82bc7b533afe0937797c0627.png)
SO现在就差最后一步了,grafana显示prometheus的数据
尴尬,prometheus自带的监控界面没有数据,不知道哪里没通,先睡觉,明天搞定
![be8108c3764b47b691f2594177c43478.png](https://img-blog.csdnimg.cn/img_convert/be8108c3764b47b691f2594177c43478.png)
分开,上次遇到的问题应该就是服务器时间和Prometheus时间没对上导致的。
下面直接用grafana监控吧。
老操作,先systemctl start grafana-server启动服务,使用ip:3000访问。
现在添加数据源,选择prometheus
![e6b1d80ce2ad1bd19a61b60743eaa24f.png](https://img-blog.csdnimg.cn/img_convert/e6b1d80ce2ad1bd19a61b60743eaa24f.png)
test下,连接成功
![71b2133c36efa9d200828db52a132587.png](https://img-blog.csdnimg.cn/img_convert/71b2133c36efa9d200828db52a132587.png)
我想死了,修改完还是不同步数据QAQ,但是明显连接成功,服务器和本地时区、时间都一样了,想不通了
打死我吧,我不在数据库里新增用户了,在my.cnf直接配置root用户,有数据了,气死了到现在不知道咋回事。
现在展示下效果图:
![d69490002240eefe99fc1cf7f12176dd.png](https://img-blog.csdnimg.cn/img_convert/d69490002240eefe99fc1cf7f12176dd.png)
然后请教了一下业内大神,可能账号权限有问题,但是我明明啥权限都给了QAQ。。。
基本搭建就这样,大家如果碰到什么困难可以留言,我周末可以协助一下,嘻嘻