Назад | Перейти на главную страницу

Проблемы с мониторингом возраста файлов с помощью nagios (подстановка команд в имени файла)

В моей текущей установке nagios я проверяю наличие удаленной резервной копии через NRPE. В частности, мой удаленный файл nrpe.cfg (в Ubuntu 8.x):

command[check_zimbra_backup]=/usr/lib/nagios/plugins/check_file_age -f \\
/backupdir/zimbra_backup-$(date +%a).tar.gz -w 518400 -c 86400 

Выполнение команды локально вернуло ОК:

$ sudo su -m nagios -c "/usr/lib/nagios/plugins/check_file_age -f \\
/backupdir/zimbra_backup-$(date +%a).tar.gz -w 518400 -c 86400 "
FILE_AGE OK: /backupdir/zimbra_backup-Sun.tar.gz is 47661 seconds old and 10863637475 bytes

Однако мои журналы показали КРИТИЧЕСКОЕ:

nagios: SERVICE NOTIFICATION: zimbra backups;CRITICAL;notify-service-by-email;
FILE_AGE CRITICAL: /backupdir/zimbra_backup-Sun.tar.gz is 22373 seconds old and 10863637475 bytes 

Обратите внимание, как он возвращает критическое состояние, несмотря на то, что количество секунд, о которых сообщается (22373), меньше, чем параметры предупреждения (86400 секунд, или 24 часа).

Интересно то, что запуск плагина NRPE удаленно возвращает что-то странное:

$ sudo su -m _nagios -c "/usr/local/libexec/nagios/check_nrpe -H HOST \\ 
-c check_zimbra_backup"
FILE_AGE CRITICAL: /backupdir/zimbra_backup-Sun.tar.gz is 23611 seconds old and 10863637475 bytes
ҷ?Oڷ`xڷ

Обратите внимание на последнюю строку, которая выглядит как искаженный вывод.

В check_file_age плагин - это версия v1750 (nagios-plugins 1.4.11)

Решением было изменить подстановку команд с

[...]zimbra_backup-$(date +%a).tar.gz 

к

[...]zimbra_backup-`date +%a`.tar.gz 

Похоже, что nagios выполняет некоторую странную подстановку команд, когда встречает $ подписать.