【问题标题】:simulate nagios notifications模拟 nagios 通知
【发布时间】:2014-04-04 02:19:39
【问题描述】:

我测试通知和升级链的常规方法是通过引发故障来模拟故障,例如阻塞端口。

但这完全不能令人满意。我不希望停机时间记录在没有记录的 nagios 中。我也不想等。

有谁知道在不导致中断的情况下测试通知链的方法?例如这样的:

$ ./check_notifications_chain <service|host> <time down>
at <x> minutes notification email sent to group <people>
at <2x> minutes notification email sent to group <people>
at <3x> minutes escalated to group <management>
at <200x> rm -rf; shutdown -h now executed.

扩展这个范例,我可能会让通知链本身成为一个 nagios 检查,但我会在我的大脑爆炸之前停下来。

有人吗?

【问题讨论】:

    标签: testing notifications nagios simulate


    【解决方案1】:

    如果您只想验证电子邮件警报是否正常工作,您可以创建一个简单的测试服务,每天生成一次警告。

    test_alert.sh:

    #!/bin/bash
    
    date=`date -u +%H%M`
    
    echo $date
    echo "Nagios test script. Intentionally generates a warning daily."
    
    if [[ "$date" -ge "1900" && "$date" -le "1920" ]] ; then
      exit 1
    else
      exit 0
    fi
    

    commands.cfg:

    define command{
      command_name  test_alert
      command_line  /bin/bash /usr/local/scripts/test_alert.sh
    }
    

    services.cfg:

    define service {
      host                  localhost
      service_description   Test Alert
      check_command         test_alert
      use                   generic-service
    }
    

    【讨论】:

    • 这个怎么称呼?我认为它必须与服务器相关联,否则它不会被调用。显然我在这里遗漏了一些东西。
    • 服务器是什么意思?在 Nagios 中,您可以定义主机、服务和命令。这对于一封测试电子邮件来说已经足够了。
    【解决方案2】:

    这是一篇旧帖子,但也许我的解决方案可以帮助某人。

    我使用 Nagios 插件包中的插件“check_dummy”。 正如它所说,它很愚蠢。

    看看它是如何工作的一些例子:

    Usage:
     check_dummy <integer state> [optional text]
    $ ./check_dummy 0
    OK
    $ ./check_dummy 2
    CRITICAL
    $ ./check_dummy 3 salut
    UNKNOWN: salut
    $ ./check_dummy 1 azerty
    WARNING: azerty
    $ echo $?
    1
    

    我创建了一个包含整数状态和可选文本的文件: 回声 0 好的 | sudo tee /usr/local/nagios/libexec/dummy.txt sudo chown nagios:nagios /usr/local/nagios/libexec/dummy.txt

    使用命令:

    # Dummy check (notifications tests)
    define command {
        command_name    my_check_dummy
        command_line    $USER1$/check_dummy $(cat /usr/local/nagios/libexec/dummy.txt)
    }
    

    与服务描述相关:

    define service {
        use                             generic-service
        host_name                       localhost
        service_description             Dummy check
        check_period                    24x7
        check_interval                  1
        max_check_attempts              1
        retry_interval                  1
        notifications_enabled           1
        notification_options            w,u,c,r
        notification_interval           0
        notification_period             24x7
        check_command                   my_check_dummy
    }
    

    所以我只是改变文件“dummy.txt”的内容来改变服务状态:

    echo "2 Oups" | sudo tee /usr/local/nagios/libexec/dummy.txt
    echo "1 AHHHH" | sudo tee /usr/local/nagios/libexec/dummy.txt
    echo "0 Parfait !" | sudo tee /usr/local/nagios/libexec/dummy.txt
    

    这让我可以调试我的通知程序。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多