我正在尝试使用 zabbix 中的 UserParameter 检查 MySql 是否启动。
用户参数看起来像这样。
用户参数=mysql.ping,sudo mysqladmin ping | grep -c alive | wc -l
当我mysqladmin ping | grep -c alive
在服务器中执行时,它给了我正确的响应。
#mysqladmin ping | grep alive | wc -l
1
但是当我尝试以 zabbix 用户身份运行该命令时,出现以下错误:
# sudo -u zabbix sudo mysqladmin ping | grep alive | wc -l mysqladmin:连接到“localhost”的服务器失败,错误:“拒绝用户“root”@“localhost”访问(使用>密码:否)”
0
只需运行以下工作:
# sudo -u zabbix mysqladmin
..列出 mysqladmin 中的各种命令
我已将 zabbix 添加到 sudoers 列表,不需要密码。
该问题仅针对 MySql,所有其他用户参数(例如 mail、load 等)均运行正常。
答案1
您无需经历所有这些麻烦。您可以使用 UserParameter=mysql.status 配置 my.cnf 和 zabbix 代理。
以下是解决您问题的方法:
https://www.zabbix.com/forum/showthread.php?t=40870