Plugin Icinga NRPE
Nagios Remote Plugin Executor (NRPE) jest modułem umożliwiającym uruchomienie pluginów Nadios/Icinga na zdalnych maszynach i edycje ich wyników na lokalnym komputerze. NRPE może zostać zastosowany w przypadku gdy SNMP nie może, lub nie będzie wykorzystywany.[1] Alternatywą NRPE jest "check_by_ssh", który w celu monitorowania zdalnych celi tworzy połączenie SSH.[2] Jeżeli check_nrpe ma również korzystać z szyfrowanego połączenia zalecane jest korzystanie z SSL. Ten artykuł pokazuje konfiguracje klienta Nagios/Icinga i Icinga Server w Debianie Squeeze, która umożliwia uruchomienie pluginów na kliencie za pośrednictwem "check_nrpe".
Klient Nagios/Icinga
Klient Nagios / Icinga reprezentuje zdalny komputer, który ma być monitorowany przez NRPE. Dlatego na początku instalowany jest serwer NRPE:
sudo apt-get install nagios-nrpe-server
Aby serwer Icinga mógł się połączyć z daemonem musi zostać podany w pliku konfiguracyjnym jego adres IP (w tym przypadku 10.0.0.3):[3]
sudo vi /etc/nagios/nrpe.cfg ... allowed_hosts=127.0.0.1,10.0.0.3 ...
Na koniec określany jest dostęp daemona nrpe do pluginów nagios. Po instalacji (np. poprzez pakiet "nagios-plugins") powinny znajdować się one w "/usr/lib/nagios/plugins/". Aby daemon nrpe mógł poprawnie zinterpretować komendę "check_load" określone zostaje w pliku konfiguracyjnym, do którego piku plugina on się odwołuje. Niektóre polecenia dostępne są już w obecnym "nrpe.cfg", nowe mogą zostać podane np. w pliku "nrpe_local.cfg".
:~# cat nrpe.cfg |grep check_load command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
Po dokonaniu zmian w konfiguracji musi zostać przeprowadzony restart daemona:
sudo /etc/init.d/nagios-nrpe-server restart
Icinga Server
W serwerze warunkiem jest już zainstalowana Icinga (vide Instalacja Icinga 1.6.1 pod Debianem 6.0 Squeeze). Dodatkowo instalowany jest pakiet "nagios-nrpe-plugin". Aby zapobiec równoczesnej instalacji pakietów Nagios podana zostaje opcja "--no-install-recommends":
apt-get --no-install-recommends install nagios-nrpe-plugin
Pierwszy test sprawdza czy daemon nrpe jest dostępny po stronie klienta i przyjmuje polecenia. Następująca komenda zwraca przy poprawnej konfiguracji wersje instalacji nrpe:
:~# /usr/lib/nagios/plugins/check_nrpe -H 10.0.0.1 NRPE v2.12
Ten sposób może służyć do zapewnienia, ze monitorowany host jest dostępny, reaguje na zapytania nrpe i je realizuje. W kolejnym kroku definiowane są komendy Icinga, które są realizowane przez nrpe. W tym celu na początku zostaje utworzona komenda, która przekazuje check_nrpe dostępne parametry:[4]
:~# vi /usr/local/icinga/etc/objects/commands.cfg: ############################################################################### # NRPE CHECK COMMAND # # Command to use NRPE to check remote host systems ############################################################################### define command{ command_name check_nrpe command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
W nowej konfiguracji hosta zostaje wykorzystana właśnie zdefiniowana komenda "check_nrpe":
:~# vi /usr/local/icinga/etc/objects/nrpe-client.cfg define host{ use linux-server host_name NrpeClient alias NrpeClient address 10.0.0.1 } define service{ use generic-service host_name NrpeClient service_description CPU LOAD check_command check_nrpe!check_load }
Nasz serwis "CPU LOAD" wykorzystuje polecenie check_nrpe i przekazuje do niego parametr "check_load". Ten parametr określa skrypt, który jest wykonywany na monitorowanym hoście (Nrpe-Client. Daemon nrpe przyjmuje zapytanie i zwraca wynik skryptu do serwera Icinga. Aby Icinga załadował nową konfigurację hosta, zostaje dodana w konfiguracji Icinga ścieżka pliku:
:~# vi /usr/local/icinga/etc/icinga.cfg cfg_file=/usr/local/icinga/etc/objects/nrpe-client.cfg
Następujący szkic pokazuje przebieg procesów:
Odnośniki
- ↑ Icinga NRPE (docs.icinga.org)
- ↑ check_by_ssh Plugin (nagios.wiki.de)
- ↑ Setting up NRPE with Icinga (wiki.icinga.org)
- ↑ Icinga NRPE Documentation (docs.icinga.org)