Nagios
Z wiki linux-user
m |
|||
| Linia 40: | Linia 40: | ||
* nagios-plugins-setuid | * nagios-plugins-setuid | ||
w moim przypadku Nagios jest w wersji '''3.2.3-3.el6'''. | w moim przypadku Nagios jest w wersji '''3.2.3-3.el6'''. | ||
| + | Jeżeli wszystko poszło bez żadnych błędów to powinniśmy mieć już zainstalowanego nagiosa. Usługę można włączać/wyłączać/restartować za pomocą polecenia | ||
| + | service nagios restart | ||
| + | lub | ||
| + | service nagios start | ||
| + | lub | ||
| + | service nagios stop | ||
| + | warto również dodać nagiosa do listy uruchamianych usług podczas uruchamiania systemu | ||
| + | chkconfig nagios on | ||
| + | warto również to samo zrobić z serwerem apach | ||
| + | chkconfig httpd on | ||
| + | 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 | ||
| + | |||
| + | === 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> | ||
