如何使用 netcat 测试 nagios send_nsca

如何使用 netcat 测试 nagios send_nsca

我正在尝试编写一个send_nsca使用单元测试nc但失败了。

我想开始nc监听 nsca 端口,然后用来send_ncsa向该端口发送消息。

在一个终端中我正在运行:

nc -l 5667 -v

另一方面:

echo -e "foo.example.com\ttest\t0\t0" | ./send_nsca -H localhost -p 5667 -c send_nsca.cfg

我的send_nsca.cfg文件仅包含:encryption_method=0

在监听终端我得到:

Connection from 10.1.30.23 port 5667 [tcp/*] accepted

但没有别的。send_nsca我得到了:

Error: Timeout after 10 seconds

有任何想法吗?

编辑:

我重新编译了源代码并启用了 DEBUG 输出:

Connected okay...
Error: Timeout after 10 seconds
Cleaned up encryption routines

从代码中我看到我缺少包含 IV 和时间戳的初始化包:

#ifdef DEBUG
    printf("Connected okay...\n");
#endif

/* read the initialization packet containing the IV and timestamp */
result=read_init_packet(sd);
if(result!=OK){
    printf("Error: Could not read init packet from server\n");
    close(sd);
    do_exit(STATE_CRITICAL);
        }

#ifdef DEBUG
    printf("Got init packet from server\n");
#endif

有没有其他方法可以在没有完整安装 nagios 的情况下测试 send_nsca?

答案1

您不需要“完整安装 nagios”来测试 send_nsca...

NSCA 是一个附加组件,不是 Nagios 核心本身的一部分。例如,它在 Debian/Ubuntu 和 CentOS(epel 或 repoforge)中被打包为单独的组件。

NSCA 作为守护进程或通过 inetd/xinetd 运行。请参阅NSCA 设置文档了解有关如何运行它的更多信息。

此外,还有几种 NSCA 的替代品可供选择;自然资源保护计划NSCA您可能对测试感兴趣。

相关内容