Nagios 插件 check_udp 可以从命令行运行,但从 Nagios 运行时会失败

Nagios 插件 check_udp 可以从命令行运行,但从 Nagios 运行时会失败

Nagios 4.1.1 Ubuntu 14.04 x64

请注意这是一台新服务器。我们的旧 Nagios 服务器具有完全相同的配置,但在 RHEL 上是版本 3,并且可以正常工作。

我有一个自定义命令来检查 OpenVPN 服务器的外部连接性:

define command{
    command_name        check_udp_openvpn
    command_line        $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ -s "$38$01$00$00$00$00$00$00$00" -e ""
}

$USER1$ 指向 /usr/local/nagios/libexec 并且对于我的所有命令声明来说都是相同的。

如果我以 ROOT 身​​份运行它:PASS

/usr/local/nagios/libexec/check_udp -H vpn.myhost.com -p 43963 -s "$38$01$00$00$00$00$00$00$00" -e ""

UDP OK - 0.003 second response time on vpn.myhost.com port 43963 [@¬è«ÿï]|time=0.003033s;;;0.000000;10.000000

如果我以 sudo - nagios 身份运行:PASS

su - nagios -c "/usr/local/nagios/libexec/check_udp -H vpn.myhost.com -p 43963 -s "$38$01$00$00$00$00$00$00$00" -e \"\""

UDP OK - 0.003 second response time on vpn.myhost.com port 43963 [@õq-Û¸]|time=0.002951s;;;0.000000;10.000000

如果作为主动检查运行:失败

因此,从命令行一切都运行正常,但是在 Nagios 控制台中却失败了!

检查 OpenVPN 是否失败

以下是在主机中声明的方式:

define host{
    host_name                    vpn.myhost.com
    alias                        vpn.myhost.com
    address                      vpn.myhost.com
    check_command                check_udp_openvpn!43963
    check_interval               5
    retry_interval               1
    max_check_attempts           5
    check_period                 24x7
    process_perf_data            0
    retain_nonstatus_information 0
#   contacts                     nobody
    contact_groups               sysadmins
#   2d_coords                    10,10
    notification_interval        30
    notification_period          24x7
    notification_options         d,u,r
    hostgroups                   web
}

编辑:

我也尝试过设置主持人定义到标准 ping 检查,并放入服务命令的定义check_upd_openvpn

主持人展示向上但服务向下。完全相同的错误“10 秒后套接字超时”——命令行使用几乎是即时的,UDP OK 返回。我被难住了。

编辑2:

我调整了调试设置,并将日志详细程度调至最高值 (2)。这并没有告诉我太多信息,但看起来 Nagios 正在按预期解释命令...

[1460412294.994325] [256.1] [pid=21652] Read raw external command '[1460412294] SCHEDULE_FORCED_SVC_CHECK;vpn.myhost.com;OpenVPN Service;1460412293'
[1460412294.994418] [2320.2] [pid=21652] Raw Command Input: $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ -s "$38$01$00$00$00$00$00$00$00" -e ""

相关内容