我正在尝试编写一个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?