环境准备
1、zabbix部署完成
2、登录zabbix前端
3、zabbix添加Mysql主机并监控
配置流程
1、点击主机选项卡,进入主机界面
2、点击Mysql主机进入该主机配置界面
3、点击模板选项
4、选择链接模板并更新,可完全克隆一份模板以便修改
5、点击主机选项卡,进入主机界面查看是否有链接模板
6、点击链接模板进入该模板界面,发现界面中的“描述”信息包含了监控Mysql的要求
全文如下:
Requirements for template operation:
1.Install Zabbix agent and MySQL client.
2.Copy Template_DB_MySQL.conf into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don’t forget restart zabbix-agent.
3.Create MySQL user for monitoring. For example:
CREATE USER ‘zbx_monitor’@’%’ IDENTIFIED BY ‘’;
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON . TO ‘zbx_monitor’@’%’;
For more information read the MYSQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html , please.
4.Create .my.cnf in home directory of Zabbix agent for Linux (/var/lib/zabbix by default ) or my.cnf in c:\ for Windows. For example:
[client]
user=zbx_monitor
password=
7、查看监控项,发现监控并未生效,并提示key无效
根据上文“描述”可知,这是因为zabbix默认自带的key中没包含Template DB MySQL中所用到的key
从官方资源中可找到所需的key
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent/template_db_mysql.conf
在被监控端的/etc/zabbix_agentd.d/中创建key文件,如
vim /etc/zabbix_agentd.d/Template_DB_MySQL.conf
把key写入
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=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"
在agent配置文件把key文件include进来
vim /etc/zabbix/zabbix_agentd.conf
重启服务
systemctl restart zabbix-agent
8、查看监控项,若显示无法找到命令,则把key文件中的key的命令修改为带绝对路径
如:
UserParameter=mysql.slave_status[*], /usr/bin/mysql -h”$1″ -P”$2″ -sNX -e “show slave status”
9、查看监控项,发现监控项仍未生效,但并非key无效,而是无法登录mysql
根据“描述”可知,在被监控端数据库中需要创建用户来提供zabbix登录mysql
1.可直接创建一个’zabbix’@’localhost’用户,再在/etc/my.cnf添加
[client]
password=xxx #‘zabbix’@’localhost’用户的密码
重启mysql
查看监控项,即发现监控项生效了
这是因为zabbix在没有/var/lib/zabbix/.my.cnf的情况下,会默认以’zabbix’@’localhost’用户登录mysql,读取/etc/my.cnf取得密码
2.也可创建其他用户,如创建’david’@’192.168.71.%’用户
则需创建/var/lib/zabbix目录
mkdir /var/lib/zabbix
在/var/lib/zabbix/目录中创建.my.cnf配置文件
vim /var/lib/zabbix/.my.cnf
[client]
user=david
password=123123
保存,重启zabbix-agent
查看监控项,发现监控项仍未生效,仍显示
这是因为zabbix的默认参数{$MYSQL.HOST}为localhost,所以会以’david’@’localhost’用户登录mysql,但是在并未创建该用户的情况下则无法登录
这种情况可在“测试”中局部修改参数
即可更新使用,该监控项生效
也可修改模板的默认参数
进入主机界面,点击链接模板
进入模板配置,点击宏选项
修改相关参数即可
保存更新,相关监控项生效
本文地址:https://blog.csdn.net/THREETOONE/article/details/110481142