Назад | Перейти на главную страницу

Как протестировать nagios send_nsca с помощью netcat

Я пытаюсь написать модульный тест 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

Есть ли другой способ протестировать send_nsca без полноценной установки nagios?

Для тестирования send_nsca вам не нужна "полноценная установка nagios" ...

NSCA - это надстройка, которая не является частью самого ядра Nagios. Он упакован как отдельный компонент, например, в Debian / Ubuntu и CentOS (epel или repoforge).

NSCA работает как демон или через inetd / xinetd. Увидеть Документы по настройке NSCA для получения дополнительной информации о том, как его запустить.

Кроме того, есть несколько доступных замен для NSCA; NRDP и NSCA-ng может быть вам интересен для тестирования.