我想检查 MySQL 数据库的数量。我创建了一个简单的测试“插件”:
位置:/var/lib64/nagios/plugins
测试:
#!/bin/bash
db=$(mysql -e 'SHOW DATABASES' | wc -l)
echo $db
它在本地机器上运行:
# ./test
71
- 然而,当从 Nagios 服务器执行时,它显示“0”
NRPE配置:
command[test]=/usr/lib64/nagios/plugins/test
Nagios 服务器:
# ./check_nrpe -H 192.168.1.10 -c "test"
0
致意
答案1
NPRE 命令通常以 的形式运行nagios
。看起来您的查询实际上是在轮询nagios
用户可以看到多少个数据库。
您的问题有几种解决方案:
- 向您的命令添加用户和密码信息(
mysql -uroot -proot -e 'SHOW DATABASES' | wc -l
); - 添加
nagios
到您的sudoers
文件中,以便他可以以 root 身份运行 mysql(nagios ALL=(ALL) NOPASSWD:/usr/bin/mysql -e 'SHOW DATABASES'
); - 将 nagios 用户添加到您的数据库,并赋予其足够的权限来查看所有数据库(mysql 文档) -受到推崇的;
答案2
顺便说一句,你应该咨询http://nagios.sourceforge.net/docs/3_0/pluginapi.html因为插件脚本中显示的输出对于 Nagios 来说非常非标准,并且会导致问题。