zabbix-release-4.4使用自带模板监控MySQL,
直接套用模板会获取不到数据,
还需要配置 zabbix客户端 和 MySQL 服务端 my.cnf 。
1、在 zabbix web 配置客户端 步骤如下图:
2、配置完之后去看MySQL主机监控项,有红色提示:
cannot convert value to numeric type…
3、创建 mysql 用户账号 zabbix 并授权,用于连接本地 MySQL
GRANT ALL ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
4、修改 MySQL 服务端 my.cnf /etc/my.cnf
vim /etc/my.cnf
添加内容如下,
#
[mysqladmin]
#
default-character-set=utf8
socket=/tmp/mysql.sock
user=zabbix
password=zabbix
#
[mysql]
#
default-character-set=utf8
socket=/tmp/mysql.sock
user=zabbix
password=zabbix
#
[client]
#
default-character-set=utf8
socket=/tmp/mysql.sock
user=zabbix
password=zabbix
socket可以通过 find / -name my*sock 查找得到。
5、检查2个关键
① MySQL环境变量设置,确保
mysql / mysqladmin 命令一般使用的是默认的相对路径 /usr/bin/
查看当前使用的是哪个路径下的mysql
which mysql
如果不是默认的相对路径 /usr/bin/mysql,而是(例如) /home/soft/mysql
那就创建软链接即可
ln -s /home/soft/mysql /usr/bin
查看 /usr/bin 是否已经在环境变量中,
echo $PATH
如果没看到有 :/usr/bin ,则需要将其添加到环境变量中,
参阅 Linux中修改环境变量及生效方法(永久、临时)环境变量查看
的方法一
② .conf配置内容,确保
/etc/zabbix/zabbix_agentd.conf
中包含
Include=/etc/zabbix/zabbix_agentd.d/
在这目录有监控 MySQL 的配置文件 userparameter_mysql.conf
(如果是编译安装的,通过 find 找到它并拷到 /etc/zabbix/zabbix_agentd.d/ )
注意:
userparameter_mysql.conf 不用作任何修改,在做好检查第①项后,这里,默认使用即可,不必在里面添加 mysql/mysq;admin绝对路径 等信息。
内容为:
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/etc/zabbix by default)
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#
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 SUM(DATA_LENGTH + INDEX_LENGTH) 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"
6、重启 MySQL 和 zabbix-agent
systemctl restart mysqld
systemctl restart zabbix-agent
或者
service mysqld restart
service zabbix-agent restart
7、等待1min,查看第2步中红色提示是否消失
持续完善中…