前面讲到如何监控PG和MS SQL,今天带来另外一个数据库(MySQL)的教程。MySQL相比于PG和MS SQL监控难度最小,因为比较成熟,而且使用广泛,自然监控手段就没那么复杂,当然因为是基础篇,所以才说难度较低,监控的指标依照官方模板,对于初学者来说足够使用了。如果有深入的监控需求,那就需要和业务方沟通,根据监控的范围来制作自定义指标了。
正文
环境
- Zabbix版本:5.2.2
- MySQL版本:10.3.17
- 系统版本:CentOS 8.2
监控范围
Zabbix自身数据库
模板获取方式
- 通过网上资源
- 通过官方git仓库(如下图)
![ce1ebe8e7f22f926b4ba5734e194f042.png](https://i-blog.csdnimg.cn/blog_migrate/a9d5be324af0925acfa9e83b20472420.jpeg)
为了方便各位直接能粘贴,贴出相对应的语句
vi /etc/zabbix/zabbix_agentd.d/template_db_mysql.confUserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" pingUserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" versionUserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
![85c99c359fe0c1e017729828f1561526.png](https://i-blog.csdnimg.cn/blog_migrate/cfa6e78a41a72c3c6ac1dcba3ca7748f.jpeg)
效果图
自定义监控脚本启用
编辑agent配置文件,填写如下图红框中的内容(默认有)
vim /etc/zabbix/zabbix_agentd.conf
![4fde855e81ba3bb7f0b3b88eca975bc2.png](https://i-blog.csdnimg.cn/blog_migrate/6ae21c5f6ae80f4960390ccab92a8f17.jpeg)
创建数据库监控用户
下面的命令基于我自身的环境,自身环境请根据自身的环境调整。
mysql -uroot -pxiaoyu123 CREATE USER 'kasar'@'%' IDENTIFIED BY 'xiaoyu123'; GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'kasar'@'%';
![c639245a0a267e749086a77bc6c65502.png](https://i-blog.csdnimg.cn/blog_migrate/90b383273ddfd3cee95404686ff073f7.jpeg)
创建登录用户名密码文件
默认在zabbix agent家目录(/var/lib/zabbix)下,如果没有,请创建。该文件主要是用于zabbix登录mysql数据库使用的。
mkdir /var/lib/zabbixvi /var/lib/zabbix/.my.cnf[client] user='kasar' password='xiaoyu123'
![8df9123487676f6675aa90d9e15f9d39.png](https://i-blog.csdnimg.cn/blog_migrate/d9215d3be766fae20932d5c51e78c764.jpeg)
前端调用MySQL模板
4.0以上默认是有该模板的,无需要下载,如果没有也可以按照我上面讲的方法去获取,也可以私信找我要。
![b841876a04ea7818082547719f765702.png](https://i-blog.csdnimg.cn/blog_migrate/044512fd037ea95cfe2f92968650f352.jpeg)
重启zabbix agent
service zabbix-agent restart
![e541f27f225a0e4d65c2736a18486b5c.png](https://i-blog.csdnimg.cn/blog_migrate/c5f838395dc408e7f30f61eecddc93c9.jpeg)
数据显示正常
![1e0ce0e7eaa94fe91f9efbeeedaa48a5.png](https://i-blog.csdnimg.cn/blog_migrate/5dc67e958f2af7b29f43019406534724.jpeg)
出图正常
写在最后
整个过程不太难,当然要理解其中模板的调用关系还是稍微有点复杂,只有了解了Zabbix自定义监控脚本才能更深层次监控MySQL数据库,当然这个是后话了,先要从0到1,才能更好的进步,毕竟千里之行,始于足下嘛,最后大家如果在使用中遇到什么问题或者有什么疑问,欢迎留言和私信我哦。