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