Nagios 统计特定目录中的文件数量

Nagios 统计特定目录中的文件数量

我正在尝试监控服务器上的目录,其中的文件数量每天都会发生变化。此服务器本身在 Nagios3 上监控得很好。但是,如果我想计算目录中的文件数量,例如d:\david\,所有文件都是 XML 文件。

Nagios 能做到这一点吗?如果能,我该怎么做?我对 Nagios 还不熟悉,还在摸索中。

答案1

您可以使用nrpe守护程序(在 nagios 服务器上)在远程主机上启动命令。services.cfg您可以在 Nagios 中添加一个如下所示的节(将admins联系人组更改为系统上的真实联系人组.. 或保留注释?):

define service {
    service_description       count files in directory d:\david\
    check_command             count_david_files!
    host_name                 my.windows.host
    check_period              24x7
    notification_period       24x7
    # contact_groups            +admins
    event_handler_enabled     0
    use                       generic-service
}

然后,my.windows.host您必须找到该nrpe.cfg文件并添加类似这样的行(注意:这是来自 Linux 客户端,但 Windows 的配置非常相似)

command[count_david_files]=/usr/local/nagios/myplugins/check_david_files

该文件check_david_files需要是某种可执行文件(批处理文件显然有效) 打印“OK”、“WARNING”、“CRITICAL”或“UNKNOWN”,然后以相应的退出代码退出:

 OK (0), WARNING (1), CRITCAL (2) and UNKNOWN (3).

这些退出命令会触发 nagios 中的警报状态,向服务器发出信号,告知服务器出现了问题。您可以在此批处理文件中执行以下操作:

@echo "OK: Files less than 10"
@exit 0

或者警告:

@echo "WARNING: Files > than 10!"
@exit 1

首先,您可能只想使用这两行来测试您的设置。祝你好运。

答案2

您需要用您了解或喜欢的任何语言编写一个脚本来计算目录中的文件数量。在此脚本中,您可以根据是否要将当前状态视为 Nagios 术语中的 OK、WARNING 或 CRITICAL 来返回特定的退出状态。

然后你可以使用一些工具,例如NS客户端++或者温普从 nagios 调用你的脚本。

相关内容