我们有一台Nagios服务器,我们用它来监控我们的主机。
现在我们有一个旧系统,它在mysql数据库中报告某些特定主机的状态。我想知道是否有一种方法(如果有可能的话)编写一个可以从数据库中获取数据并填充Nagios监视器的插件。
让我们的图像数据库有一个这样的表: IP,HOSTNAME,STATUS,CPU_TEMP,HDD_TEMP
我想将这些数据提取到Nagios监视器中。有可能吗?
无法通过nagios守护程序连接客户端,我只能从该数据库中获取数据。
谢谢! 问候
答案 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是否在参数范围内。