我已将 xinetd 配置为在端口 5667 上建立连接时启动 NSCA。我可以通过命令行以 root 身份启动 xinetd 并且一切正常:
/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
我可以向自己发送一条测试 NSCA 消息,并且 /var/log/messages 显示 NSCA 守护进程正在启动、写入 nagios.cmd 管道等。
但是,当由 运行时systemctl start xinetd,我的测试消息失败,并显示“在收到初始化数据包之前服务器已关闭连接”ps -ef | grep xinetd无论以哪种方式运行,xinetd 服务看起来都是一样的。我不认为它是用户或权限问题,因为它应该以 root 身份运行。
没有太多运气让 NSCA 或 XINETD 记录任何相关信息,说明为什么它试图启动 NSCA 守护程序但立即退出......
请参阅下面的有关 xinetd 的 nsca 文件
service nsca
{
flags = REUSE
socket_type = stream
wait = no
user = root
group = root
server = /usr/sbin/nsca
server_args = -c /usr/local/nagios/etc/nsca.cfg --inetd
log_on_failure += USERID
disable = no
only_from = <list of allowed hosts>
instances = UNLIMITED
per_source = UNLIMITED
cps = 5000 0
}