填充NAGIOS主机从数据库中获取状态数据

时间:2011-02-22 17:10:21

标签: database plugins nagios

我们有一台Nagios服务器,我们用它来监控我们的主机。

现在我们有一个旧系统,它在mysql数据库中报告某些特定主机的状态。我想知道是否有一种方法(如果有可能的话)编写一个可以从数据库中获取数据并填充Nagios监视器的插件。

让我们的图像数据库有一个这样的表: IP,HOSTNAME,STATUS,CPU_TEMP,HDD_TEMP

我想将这些数据提取到Nagios监视器中。有可能吗?

无法通过nagios守护程序连接客户端,我只能从该数据库中获取数据。

谢谢! 问候

2 个答案:

答案 0 :(得分:1)

如果你可以直接从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可能有一两个错误,但你应该明白这个想法。如果你想获得幻想,你可以做更多的声明警告级别并返回1。

答案 1 :(得分:0)

您需要制作一个可以连接到数据库的插件,查询给定的HOSTNAME或IP,并检查STATUS是否在参数范围内。