Файл команды 'nagios.cmd#015' не существует, если пассивная проверка отправляется демону NSCA
Вступление
Поскольку /usr/local/nagios/etc/nsca.cfg заменяется конфигурацией по умолчанию, если opsview был перезапущен, ссылка на этот файл, находящийся в /etc/init.d/opsview, была изменена на /usr/local/nagios/etc/nsca_puppet.cfg, и последний развертывается с использованием шаблона Puppet ERB.
цель
Целью является отправка пассивных проверок с помощью nsca в Opsview.
Гипотеза была такой:
echo -e "HOST\tService\t0\tRemote File does not exist" | \
sudo /usr/local/nagios/bin/send_nsca -H host -c \
/usr/local/nagios/etc/send_nsca.cfg
обновит (пассивную) проверку, находящуюся в Opsview.
Результат
Хвост / var / log / messages указывает на следующее:
Jan 24 14:27:37 host nsca[X]:
Handling the connection for <ip>...
Jan 24 14:27:37 host nsca[X]:
Command file '/usr/local/nagios/var/rw/nagios.cmd#015'
does not exist, attempting to use alternate dump file
'/dev/null' for output
Jan 24 14:27:37 host nsca[X]:
SERVICE CHECK -> Host Name: 'HOST', Service Description:
'Service', Return Code: '0', Output: 'Remote File does
not exist' client <ip>
Jan 24 14:27:37 host nsca[X]: End of connection for <ip>...
Попытки решить проблему
1) Возможно, команда nsca должна быть выполнена от имени пользователя nagios
sudo -u nagios /usr/local/nagios/bin/send_nsca
Не решает проблему
2) ncsa работает?
да
user@host:~$ ps -ef | grep nsca
nagios PID 1 0 13:38 ? 00:00:00
/usr/local/nagios/bin/nsca -c
/usr/local/nagios/etc/nsca.cfg --single
3) это работает, чтобы отправить команды ncsa с локального хоста
Нет, тоже не работает
4) Неправильные разрешения nagios.cmd?
Кажется, все в порядке
user@host:~$ ls -ltr /usr/local/nagios/var/rw/
total 4
-rw-rw-r--. 1 nagios nagios 1321 Jan 23 22:13 config_output.last_okay
srw-rw----. 1 nagios nagcmd 0 Jan 24 13:38 nagios.qh
prw-rw----. 1 nagios nagcmd 0 Jan 24 13:38 nagios.cmd
srw-rw----. 1 nagios nagcmd 0 Jan 24 13:38 opsviewd.cmd
5) Работает ли отправка других проверок, кроме пассивных, в Opsview с помощью nsca
Проблема возникает для всех видов проверок
6) nagios.cmd#015 does not exist
...? nagios.cmd был настроен? Или нет?
Да это правильно
7) связаны ли ошибки с этой версией NSCA?
user@host:~$ sudo /usr/local/nagios/bin/nsca --version
NSCA - Nagios Service Check Acceptor
Copyright (c) 2000-2007 Ethan Galstad (www.nagios.org)
Version: 2.7.2
Last Modified: 07-03-2007
License: GPL v2
Encryption Routines: AVAILABLE
Кажется, все в порядке, так как в интернете проблем не обнаружено.
8) Кому разрешено писать на nagios.cmd?
Пользователь не имеет права писать:
user@host:~$ echo hello >> /usr/local/nagios/var/rw/nagios.cmd
-bash: /usr/local/nagios/var/rw/nagios.cmd: Permission denied
в то время как нагиос это:
user@host:~$ sudo su - nagios
nagios@host:~$ echo hello >> /usr/local/nagios/var/rw/nagios.cmd
nagios@host:~$
/usr/local/nagios/etc/nsca.cfg
command_file=/usr/local/nagios/var/rw/nagios.cmd
Вопросы
Можно задать несколько вопросов, но на данный момент предполагается, что проверки не могут быть обработаны, поскольку они не записаны в nagios.cmd.
- Где
#015
родом из?
2 ответа
Согласно этому Q&A #015
в системном журнале соответствует \r
,
Проблема была вызвана тем, что CR были добавлены с помощью шаблонов Puppet ERB.
Выполнение следующей команды:
sudo sed -i 's/\r//' /usr/local/nagios/etc/nsca.cfg
и перезапуск opsview решил проблему.
Чтобы решить проблему с ошибками в шаблонах CR в Puppet, используйте content => regsubst(template("opsview/nsca.cfg.erb"), '\r', '', 'G'),
,
Вы не упоминаете о запуске сервера nsca. Это самая важная часть.
Send_nsca нужны данные. Здесь ваш тест недействителен:
1) Perhaps the nsca command should be issued as the nagios user
sudo -u nagios / usr / local / nagios / bin / send_nsca
Скорее, вам нужно сначала отобразить и передать данные в send_nsca. Ваш демон nsca на стороне сервера - это то, что должно работать от имени пользователя / группы nagios / nagcmd.
Обратитесь к следующему руководству для получения более подробной информации о том, как настроить nsca: