大家晚上好!
我一直在寻找解决方案,以便一次性批量确认 Nagios 中 500 多个服务通知的警报。经过长时间的努力,我偶然发现了自己构建以下脚本。请帮助分析其优缺点,或者是否有其他最佳替代方案。
#!/bin/sh
for name in $(cat list.txt)
do
domainname=$name
now=`date +%s`
command="/var/spool/nagios/cmd/nagios.cmd"
service=blacklist-check
#The show begins
/usr/bin/printf "[%lu] ACKNOWLEDGE_SVC_PROBLEM;$domainname;$service;2;1;1;mail_it;Should be de-listed in 1 week till 18 Nov, 2021.\n" $now >> $command
echo "$name ACKNOWLEDGED! "
done
echo "ALL COMPLETED"
如能尽早答复我们将不胜感激。
感谢您
问候,西
答案1
请提供您正在使用的 Nagios 版本,以及它是否是开源的还是 Nagios X1。
问候,卡马尔
答案2
该脚本将会起作用,因为它基本上与在 Web 界面上单击所有服务并逐一确认它们相同。
但是,有一件事你应该考虑。命令文件 ( nagios.cmd
) 是一个命名管道,因此,它具有有限的缓冲区,可以存储命令。根据你一次要发出的命令数量,你可能需要适当地设置external_command_buffer_slots
和/或command_check_interval
(请参阅Nagios 配置文档了解更多信息)。