针对不同服务的不同Nagios电子邮件通知

时间:2014-08-13 01:54:05

标签: nagios

我正在尝试为Nagios中的特定服务发送不同类型的通知,即当用户帐户被AD锁定时。我不需要与通常的电子邮件相关的所有多余信息(例如,服务所属的主机,IP地址,服务状态等),因为我需要的所有信息都是在Windows {{1}中发送的SNMP陷阱中给出的。 }}。但是,我不能只更改notify-service-by-email命令,因为我需要为所有其他服务使用完整输出。

我需要找到一种方法:

  1. 发送针对此服务定制的电子邮件通知

    $SERVICEOUTPUT
  2. 在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
            ...
    }
    
  3. 我不相信Nagios可能会因为它的编程方式而采取第一种方式,但无论我如何尝试第二种方式它都不会将其作为正确的命令处理(“如果不被识别”等等。)

1 个答案:

答案 0 :(得分:1)

你不能放一个"脚本" command_line定义上的语法。将command_line视为在操作中调用脚本的处理程序:逻辑和if语句是"逻辑",必须在您调用的脚本中移动。在脚本中只需使用$ 1上的if语句(传递给脚本的第一个参数的位置变量),然后处理$ 1的值。因此,如果$ 1(在我们的情况下,如果你将$ SERVICEDESC传递给脚本作为第一个参数,在脚本中它被引用为$ 1)等于...