模拟 Nagios 通知



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

但这完全不令人满意。 我不希望在没有停机时间的地方记录在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 检查,但在我的大脑爆炸之前,我会停在这里。

任何人?

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

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

命令.cfg:

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

服务.cfg:

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

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

我使用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
}

所以我只是更改文件"虚拟.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

这允许我调试我的通知程序。

希望对您有所帮助!

相关内容

  • 没有找到相关文章

最新更新