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

标签 database plugins nagios

我们有一个 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/

相关文章:

java - Ebean错误-模型没有增强?

css - 使用 JBoss jDocBook maven 插件自定义 CSS

javascript - Mobilefirst javascript API - 插件

python - 自动添加客户端到nagios server

sql - 最小化 MySQL 中的表数?

sql-server - 在 iOS 上通过套接字编程连接到 SQL Server

sql - 将不可空列添加到 SQL Server 中的现有表?

database - 为什么一个包含许多打开的连接的连接池对于系统来说比每次打开一个新连接的成本要低?

hadoop - Nagios 监控 hadoop 集群的脚本

linux - 纳吉奥斯 : Error: Could not stat() command file '/usr/local/nagios/var/rw/nagios.cmd' !