У меня есть установка Nagios / NSCA для пользовательского скрипта perl, который запускается на nagioshost.
Я настроил его так:
echo "myhost;myservice;1;Message"|/usr/local/nagios/libexec/send_nsca -to 10 -d ';' -c /etc/send_nsca.cfg -H localhost
Работает безупречно ..
Итак, мой вопрос, есть ли способ в Nagios или NSCA подсчитывать пассивные проверки?
то есть количество раз, когда Nagios получает предупреждение о myservice
на myhost
Примечание: настраиваемый сценарий никогда не отправляет "ОК" для службы
Вы можете настроить nsca
(демон) для вывода отладки в системный журнал, установив debug = 1
в nsca.cfg. Убедитесь, что параметр отладки не появляется несколько раз с разными значениями в файле конфигурации, иначе он может быть отменен. Со мной случилось :).
nsca.cfg:
# LOG FACILITY
# The syslog facility that should be used for logging purposes.
log_facility=daemon
# DEBUGGING OPTION
# This option determines whether or not debugging
# messages are logged to the syslog facility.
# Values: 0 = debugging off, 1 = debugging on
debug=1
Пример вывода в / var / log / messages в CentOS 7:
Sep 23 10:53:14 centos nsca[4504]: Starting up daemon
Sep 23 10:53:19 centos nsca[4504]: Handling the connection...
Sep 23 10:53:19 centos nsca[4504]: Time difference in packet: 0 seconds for host myhost
Sep 23 10:53:19 centos nsca[4504]: SERVICE CHECK -> Host Name: 'myhost', Service Description: 'myservice', Return Code: '1', Output: 'Message'
Sep 23 10:53:19 centos nsca[4504]: Attempting to write to nagios command pipe
Sep 23 10:53:19 centos nsca[4504]: Command file '/var/spool/nagios/cmd/nagios.cmd' does not exist, attempting to use alternate dump file '/var/spool/nagios/cmd/nsca.dump' for output
Sep 23 10:53:19 centos nsca[4504]: End of connection...
Следующим шагом является обработка журналов для получения нужной информации / номеров. Есть много способов сделать это ...
Пример по вашему запросу: сколько раз Nagios получает оповещение о моем сервисе на myhost
grep "SERVICE CHECK -> Host Name: 'myhost', Service Description: 'myservice'" /var/log/messages | wc -l
1
Здесь вы видите обработку журнала, показывающую, что есть 1 запись, соответствующая вашим критериям.
Если вы умеете сценарий или программу, вы, вероятно, сможете написать что-то, что будет работать достаточно хорошо даже для многих клиентских хостов, отправляющих пассивные проверки, если у вас есть эти данные в ваших журналах.