2

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

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

让我们想象一下数据库有一个这样的表:IP、HOSTNAME、STATUS、CPU_TEMP、HDD_TEMP

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

无法通过nagios daemon 连接客户端,只能从这个数据库中获取数据。

谢谢!!!问候

4

2 回答 2

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 可能有一两个错误,但您应该明白这一点。如果你想变得花哨,你可以对警告级别做更多的 if 语句并返回 1。

于 2011-03-22T08:33:44.273 回答
0

您需要制作一个连接到数据库的插件,查询给定的主机名或 IP,并检查状态是否在参数范围内。

于 2011-03-07T19:43:34.020 回答