Nagios: OS X — CHECK_NRPE: Received 0 bytes from daemon.

Автор: | 10/26/2015
 

nagios_logoПри запуске проверки на OS XNRPE возвращает ошибку вида:

# /usr/lib/nagios/plugins/check_nrpe -H somehost -c check_load -a ‘-w 1,2,3 -c 10,20,30’

CHECK_NRPE: Received 0 bytes from daemon.  Check the remote server logs for error messages.

В логе /var/log/system.log — появляются записи такого вида:

==> /var/log/system.log <==
Oct 22 16:55:08 ldnmpgoba01 nrpe[640]: Error: Request contained command arguments, but argument option is not enabled!
Oct 22 16:55:08 ldnmpgoba01 nrpe[640]: Client request was invalid, bailing out…

Проблема вызвана тем, что сам NRPE устанавлвиался из готово пакета — отсюда>>>.

Ошибка «Error: Request contained command arguments!» гооворит о том, что check_nrpe был собран без поддержки обработки переданных аргументов.

Что бы исправить эту ошибку — необходимо пересобрать NRPE из исходных кодов с опцией --enable-command-args.

Загружаем:

# wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
# tar xfp nrpe-2.15.tar.gz
# cd nrpe-2.15

Конфигурируем и устанавливаем:

# ./configure --enable-command-args
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config

Редактируем файл /usr/local/nagios/etc/nrpe.cfg, и меняем:

dont_blame_nrpe=0

на:

dont_blame_nrpe=1

Создаём файл автозапуска /Library/LaunchDaemons/com.nagios.nrpe.plist с таким содержимым:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>GroupName</key>
	<string>nagios</string>
	<key>Label</key>
	<string>com.nagios.nrpe</string>
	<key>ProgramArguments</key>
	<array>
	    <string>/usr/local/nagios/bin/nrpe</string>
		<string>-c</string>
		<string>/usr/local/nagios/etc/nrpe.cfg</string>
		<string>-i</string>
	</array>
	<key>UserName</key>
	<string>nagios</string>
	<key>Sockets</key>
	<dict>
		<key>Listeners</key>
		<dict>
			<key>SockServiceName</key>
			<string>5666</string>
			<key>SockType</key>
            <string>stream</string>
		</dict>
	</dict>
	<key>inetdCompatibility</key>
	<dict>
		<key>Wait</key>
		<false/>
	</dict>
    <key>StandardErrorPath</key>
	<string>/Library/Logs/nrpe/nrpe-err.log</string>
	<key>StandardOutPath</key>
	<string>/Library/Logs/nrpe/nrpe-out.log</string>
</dict>
</plist>

Проверяем локально, что ошибки больше нет:

# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_load -a '-w 1,2,3 -c 10,20,30'

OK - load average: 0.06, 0.00, 0.00|load1=0.060;15.000;30.000;0; load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;

И проверяем с сервера Nagios:

# /usr/lib/nagios/plugins/check_nrpe -H somehost -c check_load -a '-w 1,2,3 -c 10,20,30'
OK - load average: 0.04, 0.00, 0.00|load1=0.040;15.000;30.000;0; load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;

Готово.