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 控制台中却失败了!
以下是在主机中声明的方式:
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 ""