我们有一个 Nagios 服务器,我们用它来监控我们的主机。
现在我们有一个旧系统,它在 mysql 数据库中报告某些特定主机的状态。我想知道是否有一种方法(如果有可能)编写一个可以从数据库中获取数据并填充 Nagios 监视器的插件。
假设数据库中有一个这样的表: IP、HOSTNAME、STATUS、CPU_TEMP、HDD_TEMP
我想将这些数据提取到 Nagios 监视器中。可能吗?
没有办法通过nagios daemon连接客户端,我只能从这个数据库中获取数据。
谢谢!!! 问候
最佳答案
如果您可以直接从 nagios 访问数据库,我会像这样执行一些 bash 脚本:
mysql -uuser -ppass -H monitoringDb.mydomain.com -e "select HOSTNAME,STATUS,CPU_TEMP,HDD_TEMP from monitoring where STATUS != "OK" OR CPU_TEMP > '40' OR HDD_TEMP > '20'" > /tmp/check_monitoring
if [[ `wc -l /tmp/check_monitoring` > 0 ]]; # If that query returned anything, you have an issue
then echo "CRITICAL: `cat /tmp/check_monitoring`" && exit 2
fi
echo "OK: Monitoring DB Checks passed" && exit 0
SQL 可能有一两个错误,但您应该明白了。如果你想花哨的话,你可以做更多的警告级别的 if 语句并返回 1。
关于database - 填充 NAGIOS 主机从数据库中获取状态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5081402/