Плагин Nagios check_multi выводит недопустимые $ LONGSERVICEOUTPUT $ и $SERVICEPERFDATA $

#plugins #monitoring #nagios #nrpe

#Плагины #мониторинг #nagios #nrpe

Вопрос:

Мы уже некоторое время используем Nagios Core 4 с плагином nagios check_multi, и он работает хорошо.

Единственная проблема заключается в том, что вывод плагина неправильно разделен на макросы Nagios, мы имеем следующее :

необработанный вывод плагина check_multi :

 MULTIPLE CHECK OK: 0 failed 7 succeeded
6 active jails --- Ok: 679 banned IP(s) n The bantime are = seconds n |banned_IP=679;5000;10000;; 
OK: postfix mailq reports queue is empty|unsent=0;50;100;0 
PING OK - Packet loss = 0%, RTA = 4.82 ms|rta=4.815000ms;3000.000000;5000.000000;0.000000 pl=0%;75;90;0 
HTTP OK: HTTP/1.1 301 Moved Permanently - 459 bytes in 0.004 second response time |time=0.003745s;4.000000;10.000000;0.000000;10.000000 size=459B;;;0 
PROCS OK: 1 process with STATE = Z | procs=1;5;10;0; 
DISK OK - free space: /var/tmp 45741 MB (94% inode=97%);| /var/tmp=2537MB;40290;45326;0;50363 
OK - load average: 0.03, 0.03, 0.00|load1=0.030;15.000;30.000;0; load5=0.030;10.000;25.000;0; load15=0.000;5.000;20.000;0;  
  

Этот вывод разделяется на следующие макросы nagios :

$SERVICEOUTPUT $ (OK)

 MULTIPLE CHECK OK: 0 failed 7 succeeded
  

$LONGSERVICEOUTPUT $ (KO)

 6 active jails --- Ok: 679 banned IP(s)
The bantime are = seconds
  

$SERVICEPERFDATA $ (KO)

 banned_IP=679;5000;10000;; OK: postfix mailq reports queue is empty|unsent=0;50;100;0 PING OK - Packet loss = 0%, RTA = 4.82 ms|rta=4.815000ms;3000.000000;5000.000000;0.000000 pl=0%;75;90;0 HTTP OK: HTTP/1.1 301 Moved Permanently - 459 bytes in 0.004 second response time |time=0.003745s;4.000000;10.000000;0.000000;10.000000 size=459B;;;0 PROCS OK: 1 process with STATE = Z | procs=1;5;10;0; DISK OK - free space: /var/tmp 45741 MB (94% inode=97%);| /var/tmp=2537MB;40290;45326;0;50363 OK - load average: 0.03, 0.03, 0.00|load1=0.030;15.000;30.000;0; load5=0.030;10.000;25.000;0; load15=0.000;5.000;20.000;0;  
  

Согласно документации, у нас должно быть следующее :

$LONGSERVICEOUTPUT $

 6 active jails --- Ok: 679 banned IP(s)
The bantime are = seconds
OK: postfix mailq reports queue is empty
PING OK - Packet loss = 0%, RTA = 4.82 ms
HTTP OK: HTTP/1.1 301 Moved Permanently - 459 bytes in 0.004 second response time 
PROCS OK: 1 process with STATE = Z 
DISK OK - free space: /var/tmp 45741 MB (94% inode=97%);
OK - load average: 0.03, 0.03, 0.00
  

$SERVICEPERFDATA $

 banned_IP=679;5000;10000;; 
unsent=0;50;100;0 
rta=4.815000ms;3000.000000;5000.000000;0.000000 pl=0%;75;90;0 
time=0.003745s;4.000000;10.000000;0.000000;10.000000 size=459B;;;0 
procs=1;5;10;0; 
/var/tmp=2537MB;40290;45326;0;50363 
load1=0.030;15.000;30.000;0; load5=0.030;10.000;25.000;0; load15=0.000;5.000;20.000;0;  
  

У кого-нибудь есть идеи о том, почему это не работает? Кажется, что в исходном выводе используется правильный формат. Должны ли мы исправить формат вывода или есть какие-либо настройки для Nagios?

Спасибо за вашу помощь 🙂

Ответ №1:

Поскольку первые две строки вывода указывают, что он идет прямо из

 TEXT OUTPUT | OPTIONAL PERFDATA
  

Для

 LONG TEXT LINE N | PERFDATA LINE 2
PERFDATA LINE ...N...
  

Для заполнения макроса LONGSERVICEOUTPUT он должен учитывать выходные данные, указанные в спецификации вывода плагина, чего он не делает.

Комментарии:

1. Здравствуйте, извините за долгое время, у меня не было времени проверить ваш ответ. На самом деле я не уверен, что понял, извините. Я пытался добавить канал в первую строку, но это не решает проблему pb. Не могли бы вы опубликовать пример вывода, который решил бы мою проблему? Большое вам спасибо и извините за мое недопонимание, английский не является моим родным языком.