Nagios

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
m
 
Linia 52: Linia 52:
 
Mamy również bardzo przydatną komendę nagiosa do sprawdzania stanu plików konfiguracyjnych, szczególnie przydatna jeśli nie chce wstać nam usługa nagiosa
 
Mamy również bardzo przydatną komendę nagiosa do sprawdzania stanu plików konfiguracyjnych, szczególnie przydatna jeśli nie chce wstać nam usługa nagiosa
 
  nagios -v /etc/nagios/nagios.cfg
 
  nagios -v /etc/nagios/nagios.cfg
 +
 +
=== Konfiguracja serwera Nagios ===
 +
W tym momencie mamy zainstalowane oraz uruchomione oprogramowanie Nagios oraz [[apache]]
 +
service nagios start
 +
oraz
 +
service httpd start
 +
Kolejnym krokiem jest nadanie użytkownika i hasła do przeglądania web-gui nagiosa wydając polecenie
 +
htpasswd -c /etc/nagios/htpasswd.users nagios
 +
i możemy zalogować się do web-gui nagiosa za pomocą przeglądarki internetowej na adres<br />
 +
http://adres-ip-serwera-nagios/nagios<br />
 +
podając wcześniej skonfigurowane dane użytkownika i jego hasło.
 +
 +
==== Pliki konfiguracyjne serwera nagios ====
 +
Głównym plikiem konfiguracyjnym nagiosa jest plik /etc/nagios/nagios.cfg, natomiast logi domyślnie znajdują się w katalogu ''/var/log/nagios''.
 +
===== /etc/nagios/nagios.cfg =====
 +
w tym pliku znajduje się wiele ciekawych opcji a jedną z najważniejszych dla nas jest
 +
cfg_file=/etc/nagios/objects/localhost.cfg
 +
cfg_file=/etc/nagios/objects/serwer-www.cfg
 +
która umożliwia pokazanie nagiosowi pliku konfiguracyjnego z nowo dodanym monitoringiem dla zdalnego hosta tzw objekt.
 +
Kolejnym albo kolejnymi ważnymi plikami są tzw pliki obiektów znajdujące się w ścieżce ''/etc/nagios/objects''.
 +
===== /etc/nagios/objects/serwer-www.cfg =====
 +
Powyższy przykładowy wpis zawiera dane odnośnie monitorowanego systemu tzn adres
 +
* adres serwera
 +
* nazwa wyświetlana
 +
* określenie grupy
 +
* definicja monitorowanych usług
 +
Do plików nowych maszyn możemy przekopiować zawartość pliku ''localhost.cfg'' i tak też zrobiłem tym razem jednak później należy go dostosować do własnych potrzeb, gdyż obiekt localhost.cfg jak sama nazwa wskazuje ustawiony jest do monitorowania maszyny lokalnej a nie zdalnej. <br />
 +
Do monitorowania mojego serwera www potrzebuję jedynie takich definicji jak
 +
* monitorowanie pinga
 +
* monitorowanie dysku całego lub partycji
 +
* monitorowanie zalogowanych obecnie użytkowników do serwera
 +
* monitorowanie usługi http
 +
poniżej wklejam dopasowany do moich potrzeb plik serwer-www.cfg
 +
define host{
 +
        use                    linux-server
 +
        host_name              serwer-www
 +
        alias                  serwer-www
 +
        address                192.168.0.12
 +
        }
 +
define hostgroup{
 +
        hostgroup_name  linux-servers
 +
        alias          Linux Servers ; Long name of the group
 +
        members        serwer-www
 +
        }
 +
define service{
 +
        use                            generic-service        ; Name of service template to use
 +
        host_name                      serwer-www
 +
        service_description            PING
 +
        check_command                  check_ping!100.0,20%!500.0,60%
 +
        }
 +
define service{
 +
        use                            generic-service        ; Name of service template to use
 +
        host_name                      serwer-www
 +
        service_description            Partycja home
 +
        check_command                  check_nrpe!check_disk!20%!10%!/dev/sda6
 +
        }
 +
define service{
 +
        use                            generic-service        ; Name of service template to use
 +
        host_name                      serwer-www
 +
        service_description            Current Users
 +
        check_command                  check_nrpe!check_users!20!50
 +
        }
 +
define service{
 +
        use                            generic-service        ; Name of service template to use
 +
        host_name                      check-www
 +
        service_description            HTTP
 +
        check_command                  check_nrpe!check_httpd
 +
        notifications_enabled          0
 +
        }
 +
 +
W tym momencie próba zrestartowania usługi nagiosa będzie nieudana gdyż w pliku konfiguracyjnym serwer-www.cfg mamy podane nie istniejące definicje komend  a dokładniej chodzi o trzy definicje czyli
 +
* check_disk
 +
* check_users
 +
* check_nrpe
 +
błąd można bardzo łatwo wykryć poleceniem
 +
# nagios -v /etc/nagios/nagios.cfg
 +
Nagios Core 3.2.3
 +
Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors
 +
Copyright (c) 1999-2009 Ethan Galstad
 +
Last Modified: 10-03-2010
 +
License: GPL
 +
Website: http://www.nagios.org
 +
Reading configuration data...
 +
  Read main config file okay...
 +
Processing object config file '/etc/nagios/objects/commands.cfg'...
 +
Processing object config file '/etc/nagios/objects/contacts.cfg'...
 +
Processing object config file '/etc/nagios/objects/timeperiods.cfg'...
 +
Processing object config file '/etc/nagios/objects/templates.cfg'...
 +
Processing object config file '/etc/nagios/objects/localhost.cfg'...
 +
Processing object config file '/etc/nagios/objects/serwer-www.cfg'...
 +
Warning: Duplicate definition found for service 'HTTP' on host 'localhost' (config file '/etc/nagios/objects/localhost.cfg',  starting on line 150)
 +
  Read object config files okay...
 +
Running pre-flight check on configuration data...
 +
Checking services...
 +
Error: Service check command 'check_nrpe' specified in service 'Current Users' for host 'serwer-www' not defined anywhere!
 +
Error: Service check command 'check_nrpe' specified in service 'Partycja home' for host 'serwer-www' not defined anywhere!
 +
....
 +
Total Warnings: 0
 +
Total Errors:  2
 +
***> One or more problems was encountered while running the pre-flight check...
 +
    Check your configuration file(s) to ensure that they contain valid
 +
    directives and data defintions.  If you are upgrading from a previous
 +
    version of Nagios, you should be aware that some variables/definitions
 +
    may have been removed or modified in this version.  Make sure to read
 +
    the HTML documentation regarding the config files, as well as the
 +
    'Whats New' section to find out what has changed.
 +
 +
 +
co dosyć dokładnie określa nam gdzie jest błąd. Aby usunąć powyższy błąd należy dodać do pliku ''/etc/nagios/objects/commands.cfg'' definicję nowych komend.
 +
 +
===== /etc/nagios/objects/commands.cfg =====
 +
Plik '''commands.cfg''' przechowuje komendy dla definicji usług, które mają być monitorowane. Dla przykładu dodam dwie definicje monitorowania dysku oraz użytkowników.
 +
<br />
 +
Deinicja monitorowania zdalnego dysku
 +
define command{
 +
        command_name    check_disk
 +
        command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
 +
        }
 +
zwróć uwagę na nazwę opcji ''command_name'' czyli  ''check_disk'' musi się zgadzać z nazwą użytą w pliku ''serwer-www.cfg''
 +
<br />
 +
Definicja monitorowania użytkowników
 +
define command{
 +
        command_name    check_users
 +
        command_line    $USER1$/check_users -w $ARG1$ -c $ARG2$
 +
        }
 +
Definicja check_nrpe potrzebna do zdalnego monitorowania
 +
define command{
 +
        command_name    check_nrpe
 +
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
 +
        }
 +
 +
reguła działania jest bardzo podobna
 +
opcje
 +
*'''-w''' określa kiedy występuje warning
 +
*'''-c''' określa kiedy występuje critical
 +
zakres tych opcji zostanie ustalony na klientach (stacjach monitorowanych).
 +
<br />
 +
Po wprowadzeniu tych zmian restartujemy nagiosa
 +
service nagios restart
 +
tym razem powinien uruchomić się bez problemu, a po chwili powinniśmy zobaczyć nową maszyne w panelu web-gui nagiosa.<br /><br />
 +
[[Plik:nagios1.png|800px]]
 +
<br />
 +
Jak można zauważyć mam dwa błędy krytyczne z błedem ''Connection refused by host '', można się tylko domyślać, że nie mam poprawnie skonfigurowanego klienta (hosta monitorowanego).
 +
 +
=== Konfiguracja klienta Linux - stacja monitorowana ===
 +
Moim klientem czyli maszyna, którą chcę monitorować jest Fedora 16 z zainstalowanym oprogramowaniem apache, dlatego też nazwa w nagiosie ''serwer-www''. Aby zainstalować w systemie Linux klienta dla nagiosa wydajemy polecenie
 +
yum install nrpe nagios-plugins-nrpe
 +
program nrpe robi za klienta który nasłuchuje na porcie 5666 a pakiet nagios-plugins-nrpe dostarcza nam pluginy, które możemy wykorzystać do monitorowania swoich usług.<br />
 +
Po zainstalowaniu pakietu ''nagios-plugins-nrpe'' wszystkie pluginy powinny znajdować się w ścieżce ''/usr/lib/nagios/plugins'' lub w ''/usr/local/nagios/libexec/'' w zależności od używanego systemu.<br />
 +
Na maszynie monitorowanej najważniejszym plikiem jest ''/etc/nagios/nrpe.cfg'', który jest dostępny po zainstalowaniu paczki '''nrpe'''. W tym pliku konfigurujemy między innymi takie opcje jak
 +
* '''server_port''' port na którym ma działać usługa (domyślnie 5666)
 +
* '''server_address''' adres serwera nrpe (czyli lokalny)
 +
* '''nrpe_user''', ''' nrpe_group''' użytkownika i grupę nrpe (zostawiamy domyślnie)
 +
* '''allowed_hosts''' hosty, które mają możliwość odebrania informacji od nrpe (ważna opcja musimy w tym miejscu podać IP lub nazwę DNS serwera monitorującego)
 +
* '''dont_blame_nrpe=1''' opcja domyślnie ustawiona na '''0''', musimy ją przestawić na '''1''' jeśli chcemy mieć możliwość dopuszczania argumentów w komendach z definicji
 +
* '''command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20''' właściwa komenda dla serwera odpytującego
 +
do mojego konfiga '''nrpe.cfg''' muszę dodać dwie dodatkowe reguły takie same jak podałem w plikach '''commands.cfg''' i '''serwer-www.cfg''' na serwerze nagiosa (zauważ, że nazwy '''check_disk''' oraz '''check_users''' w poszczególnych plikach muszą być takie same) czyli
 +
* check_users
 +
* check_disk
 +
===== komenda dla sprawdzenia partycji =====
 +
komenda dla sprawdzenia mojej np partycji /dev/sda6 będzie wyglądała następująco
 +
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda5
 +
gdzie
 +
* '''-w''' określa poziom dla zdarzenia ''warning'' ustawiłem na 20% wolnej przestrzeni na partycji
 +
* '''-c''' to samo co wyżej tylko dla zdarzenia ''critical'' ustawione na 10% wolnej przestrzeni
 +
* '''-p''' określa jakie urządzenie ma być monitorowane
 +
* '''/usr/local/nagios/libexec/check_disk''' ścieżka do pluginów zainstalowanych z pakietu ''nagios-plugins-nrpe''
 +
===== komenda dla sprawdzenia użytkowników =====
 +
aby sprawdzić ile osób jest zalogowanych na danej maszynie musisz dopisać następującą linijkę
 +
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
 +
gdzie
 +
* '''-w''' warning
 +
* '''-c''' critical
 +
* '''/usr/local/nagios/libexec/check_users''' ścieżka do pluginu
 +
 +
===== komenda dla sprawdzenia stanu http =====
 +
aby sprawdzić stan serwera http możesz dopisać taką regułe
 +
command[check_httpd]=/usr/local/nagios/libexec/check_http -I 192.168.0.12 -w 20 -c 60
 +
 +
Opis poszczególnych pluginów i ich możliwych opcji możecie wyszukać na stronie [http://nagiosplugins.org/ nagiosplugins.org]
 +
Po wyżej wymienionych zmianach uruchamiamy lub restartujemy program '''nrpe'''
 +
service nrpe restart
 +
i po chwili powinny być widoczne zmiany w web-gui serwera nagios<br /><br />
 +
[[Plik:nagios2.png|800px]]
 +
<br />
 +
Jak widać mam jednego ''warninga'' przy opcji ''Current Users'', ponieważ ustawiłem opcję '''-w''' na '''2''' a w danej chwili jest zalogowanych 3 userów.
 +
<br />
 +
=== Konfiguracja klienta Windows - stacja monitorowana ===
 +
Konfiguracja klienta winsows na serwerze monitorującym nie różni się niczym od konfiguracji monitorowanej stacji z systemem Linux. Dlatego tutaj opisze co należy wykonać na systemie Windows XP aby zadziałał monitoring.<br />
 +
Zaczynamy od ściągnięcia ze strony [http://www.nagios.org/download/addons www.nagios.org/download/addons] paczki z klientem dla systemu Windows. Następnie należy rozpakować ściągniętą paczkę i przejść do katalogu odpowiedniego dla swojego systemu w moim przypadku będzie to '''Win_2k_XP_Bin'''.<br />
 +
Następnie kopiujemy pliki ''pNSClient.exe'', ''pdh.dll'', ''psapi.dll'', ''counters.defs'' do katalogu np ''C://nsclient''.<br />
 +
Otwieramy wiersz poleceń systemu Windows i przechodzimy do katalogu gdzie zostały przekopiowane wyżej wymienione pliki i wpisujemy polecenie
 +
pNSClient.exe /install
 +
a następnie żeby uruchomić usługę
 +
net start client
 +
więcej szczegółów znajdziesz w pliku README ściągniętej paczki.
 +
 +
== Nagios web-gui ==
 +
W samym web-gui nagiosa aby przyśpieszyć albo wysłać z ręki zapytanie o status usługi do danego klienta klikamy na usługa (np ''HTTP'') -> następnie po lewej stronie w tabelce na opcję ''Re-schedule the next check of this service'' -> klikamy na przycisk ''Commit'' -> klikamy na ''Done''.
 +
 +
<br /><google1 style="4"></google1>

Aktualna wersja na dzień 12:39, 19 lis 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych