在我现在的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
在本地运行命令返回OK:
$ 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)
解决方法是改变命令replace
[...]zimbra_backup-$(date +%a).tar.gz
至
[...]zimbra_backup-`date +%a`.tar.gz
看起来像nagios遇到$符号时执行一些奇怪的命令replace。