我们有一个Nagios服务器,我们用它来监控我们的主机。
现在,我们有了一个旧系统,它在mysql数据库中报告某些特定主机的状态。我想知道是否有一种方法(如果有可能的话)可以编写一个插件,可以从数据库获取数据并填充Nagios监视器。
让我们想象一下数据库有一个这样的表: IP、主机名、状态、CPU_TEMP、HDD_TEMP
我想把这些数据放到Nagios监视器中。有可能吗?
没有办法通过nagios守护进程连接客户端,我只能从这个数据库获取数据。
谢谢!问候
发布于 2011-03-22 16:33:44
如果您可以直接从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 0SQL可能有一两个bug,但您应该明白这一点。如果你想获得更好的效果,你可以做更多的If语句的警告级别,并返回1。
发布于 2011-03-08 03:43:34
您需要制作一个插件,该插件将连接到数据库,查询给定的主机名或IP,并检查状态是否在参数范围内。
https://stackoverflow.com/questions/5081402
复制相似问题