Я пытаюсь отслеживать каталог на сервере, в котором количество файлов может меняться день ото дня. Сам этот сервер нормально контролируется на Nagios3. Однако, если я хочу подсчитать количество файлов в каталоге, например d:\david\
, которые все являются файлами XML.
Могут ли нагиос сделать это, и если да, то как мне это сделать? Я новичок в Nagios и все еще нахожусь с ним на ногах.
Вам нужно написать сценарий на любом языке, который вы знаете / предпочитаете, чтобы подсчитать количество файлов в вашем каталоге. В этом скрипте вы можете вернуть определенный статус выхода в зависимости от того, хотите ли вы рассматривать текущее состояние как OK, WARNING или CRITICAL в терминах nagios.
Затем вы можете использовать такой инструмент, как NSClient ++ или Winrpe для вызова вашего скрипта из nagios.
Вы можете использовать nrpe
демон (на сервере nagios), чтобы инициировать команду на удаленном хосте. В твоем нагиосе services.cfg
вы можете добавить строфу, которая выглядит так (измените 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 (0), WARNING (1), CRITCAL (2) and UNKNOWN (3).
Именно эти выходы вызывают состояние предупреждения в nagios, чтобы сообщить серверу, что что-то не так. Именно в этом командном файле вы можете сделать что-то вроде:
@echo "OK: Files less than 10"
@exit 0
или для предупреждения:
@echo "WARNING: Files > than 10!"
@exit 1
Для начала вы можете использовать только эти две строки для тестирования вашей установки. Удачи.