我让 Icinga 监控我的网络。一切正常。
从ubuntu 12.04升级到14.04后,MySQL监控开始报问题。
我发现 nagios check_mysql 总是使用“root”用户,它以前使用的是 nagios 用户(我假设是因为 Icinga 以该用户身份运行)。
user@server0:~$ /usr/lib/nagios/plugins/check_mysql -H server1
/usr/lib/nagios/plugins/check_mysql: /usr/lib/libmysqlclient.so.18: no version information available (required by /usr/lib/nagios/plugins/check_mysql)
Access denied for user 'root'@'server0' (using password: NO)
这是我错过的一些行为改变吗?
另外,我假设缺少的库不会导致问题,因为将 -u/-p 参数传递给 check_mysql 使其成功连接。
在最新版本的 Debian/Ubuntu 中,nagios 进程(以及可能的其他守护进程)在没有设置 $HOME 的情况下运行。这就是为什么 check_mysql 求助于读取 /proc/self/loginuid 的原因,这是错误的,它应该只使用 getuid() 找出真正的用户 ID 并获取该用户的主目录。
无论如何,一个解决方案是向check_mysql提供-f optfile ,例如: