我正在尝试为Nagios中的特定服务发送不同类型的通知,即当用户帐户被AD锁定时。我不需要与通常的电子邮件相关的所有多余信息(例如,服务所属的主机,IP地址,服务状态等),因为我需要的所有信息都是在Windows {{1}中发送的SNMP陷阱中给出的。 }}。但是,我不能只更改notify-service-by-email命令,因为我需要为所有其他服务使用完整输出。
我需要找到一种方法:
发送针对此服务定制的电子邮件通知
$SERVICEOUTPUT
在Nagios命令的command_line部分中执行if语句:
define command{
command_name notify-service-by-email
command_line $~LongOutputCommand~$
}
define command{
command_name notify-lockouts-by-email
command_line $-ShortOutputCommand~$
}
define service{
service_description Account Lockouts
service_notification notify-lockouts-by-email
...
}
我不相信Nagios可能会因为它的编程方式而采取第一种方式,但无论我如何尝试第二种方式它都不会将其作为正确的命令处理(“如果不被识别”等等。)
答案 0 :(得分:1)
你不能放一个"脚本" command_line定义上的语法。将command_line视为在操作中调用脚本的处理程序:逻辑和if语句是"逻辑",必须在您调用的脚本中移动。在脚本中只需使用$ 1上的if语句(传递给脚本的第一个参数的位置变量),然后处理$ 1的值。因此,如果$ 1(在我们的情况下,如果你将$ SERVICEDESC传递给脚本作为第一个参数,在脚本中它被引用为$ 1)等于...