用zabbix自动发现监控MYSQL的信息 一些坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gnicky/article/details/85132791

有两个解决方案
A最后实验成功的方法是:将mysqladmin的警告信息重定向到/dev/null,忽略掉告警信息。

Com_select)
result=/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2>/dev/null|grep -w "Com_select"|cut -d"|" -f3
echo $result
;;

在原有命令中加上2>/dev/null 就行了。
B还有一个方案,就是在my.cnf中配置mysqladmin的默认账号密码,这样跑命令就不需要输入用户名和密码了
[mysqladmin]
user=zabbix
password=‘123456‘
port=3306
host=localhost

总结下适合Zabbix的应该是方案二、方案一中由于运行命令是的zabbix账号,非root,会遇到
root@zabbixserver sbin]# zabbix_get -s 10.144.xx -p 10050 -k mysql.ping
sh: /dev/nul: Permission denied
因为zabbix没有设置为可交互bash。
结果只是靠这个ping 发现还是不行,因为mysql down的时候,mysqladmin连接是报错的,然后报错信息是无法分析为Numerical的。

方法三,利用mysql的监听端口来分析:
netstat -ntpl |grep 3317 |grep mysql |wc |awk ‘{print $1}’
然后zabbix_get测试到
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
0
sudo netstat -ntpl |grep 3317 |grep mysql |wc |awk ‘{print $1}’
如果启用sudo,需要主要sudoers文件的编辑

还没结束—
xxxx -p 10050 -k mysql.ping
sh: /usr/bin/sudo: Permission denied
0
有时候你感觉啥多配了,怎么还是permission denied, 这时候是selinux在作祟
[root@dev-server ~]# getenforce
Disabled
[root@dev-server ~]# /usr/sbin/sestatus -v
SELinux status: disabled

setenforce 0 先测试下,如果okay,可以关闭

猜你喜欢

转载自blog.csdn.net/gnicky/article/details/85132791
今日推荐