zabbix 3.4监控mysql 5.6解决Warning: Using a password on the command line interface can be insecure.
使用zabbix 3.4自带模板对mysql进行监控时,报Value "sh: mysqladmin: 未找到命令 0" of type "string" is not suitable for value type "Numeric (unsigned)"
报错原因:这里报这种错误是因为返回的结果集中有字符串提醒信息,而后台zabbix的item的是decimal所以存储不进去报错
之所会导致这种问题现象,是发现mysql5.6以上版本在使用mysqladmin时会发出警告:“Warning: Using a password on the command line interface can be insecure.” 。这样zabbix服务端获取数值的时候,会带有该字符串,导致报错。
解决办法试了很多,都没有效果,主要操作是:
修改my.conf配置文件,将mysqladmin用户名密码写入配置文件。
vim /etc/my.cnf
[mysqladmin]
user=zabbix
password=ys_ipowerlong0418
由于修改my.cnf需要重启mysql才可能生效,生产环境中不方便采用此方法
采用:将mysqladmin的警告信息重定向到/dev/null,忽略掉告警信息。
参考配置方法如下:
在/usr/local/zabbix/etc/zabbix_agentd.conf.d中的userparameter_mysql.conf中修改如下标红内容
UserParameter=mysql.ping,/usr/local/mysql/bin/mysqladmin -uzabbix -p123456 --socket=/mysql/data/Data/3307/data/mysql.sock ping 2>/dev/null | grep -c alive
注:由于本人环境中需要在/usr/local/zabbix/etc/zabbix_agentd.conf.d中的userparameter_mysql.conf中才能让自定义的监控项生效,有的环境是需要配置zabbix_agentd.conf文件中生效的,不同环境不同的配置文件不一样
在原有命令中加上2>/dev/null 就行了。
使用命令测试下:
修改之前:
[[email protected] scripts]# mysqladmin -uzabbix -p123456 --socket=/mysql/data/Data/3307/data/mysql.sock ping | grep -c alive
Warning: Using a password on the command line interface can be insecure.
1
修改之后:
[[email protected] scripts]# mysqladmin -uzabbix -p123456 --socket=/mysql/data/Data/3307/data/mysql.sock ping 2>/dev/null | grep -c alive
1
从上面操作信息来看,已经不提示那个安全提示信息,同时在zabbix中也可以看到数据正常显示了