Nagios
Z wiki linux-user
m |
|||
Linia 59: | Linia 59: | ||
service httpd start | service httpd start | ||
Kolejnym krokiem jest nadanie użytkownika i hasła do przeglądania web-gui nagiosa wydając polecenie | Kolejnym krokiem jest nadanie użytkownika i hasła do przeglądania web-gui nagiosa wydając polecenie | ||
− | htpasswd -c /etc/nagios/htpasswd.users | + | htpasswd -c /etc/nagios/htpasswd.users nagios |
i możemy zalogować się do web-gui nagiosa za pomocą przeglądarki internetowej na adres<br /> | i możemy zalogować się do web-gui nagiosa za pomocą przeglądarki internetowej na adres<br /> | ||
http://adres-ip-serwera-nagios/nagios<br /> | http://adres-ip-serwera-nagios/nagios<br /> | ||
Linia 65: | Linia 65: | ||
==== Pliki konfiguracyjne serwera nagios ==== | ==== Pliki konfiguracyjne serwera nagios ==== | ||
− | Głównym plikiem konfiguracyjnym nagiosa jest plik /etc/nagios/nagios.cfg | + | 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 ===== | ===== /etc/nagios/nagios.cfg ===== | ||
w tym pliku znajduje się wiele ciekawych opcji a jedną z najważniejszych dla nas jest | w tym pliku znajduje się wiele ciekawych opcji a jedną z najważniejszych dla nas jest | ||
Linia 84: | Linia 84: | ||
* monitorowanie zalogowanych obecnie użytkowników do serwera | * monitorowanie zalogowanych obecnie użytkowników do serwera | ||
* monitorowanie usługi http | * monitorowanie usługi http | ||
− | poniżej wklejam | + | poniżej wklejam dopasowany do moich potrzeb plik serwer-www.cfg |
define host{ | define host{ | ||
use linux-server | use linux-server | ||
Linia 94: | Linia 94: | ||
hostgroup_name linux-servers | hostgroup_name linux-servers | ||
alias Linux Servers ; Long name of the group | alias Linux Servers ; Long name of the group | ||
− | members | + | members serwer-www |
} | } | ||
define service{ | define service{ | ||
− | use | + | use generic-service ; Name of service template to use |
host_name serwer-www | host_name serwer-www | ||
service_description PING | service_description PING | ||
Linia 103: | Linia 103: | ||
} | } | ||
define service{ | define service{ | ||
− | use | + | use generic-service ; Name of service template to use |
host_name serwer-www | host_name serwer-www | ||
service_description Partycja home | service_description Partycja home | ||
Linia 109: | Linia 109: | ||
} | } | ||
define service{ | define service{ | ||
− | use | + | use generic-service ; Name of service template to use |
host_name serwer-www | host_name serwer-www | ||
service_description Current Users | service_description Current Users | ||
Linia 115: | Linia 115: | ||
} | } | ||
define service{ | define service{ | ||
− | use | + | use generic-service ; Name of service template to use |
− | host_name | + | host_name check-www |
service_description HTTP | service_description HTTP | ||
− | check_command | + | check_command check_nrpe!check_httpd |
notifications_enabled 0 | notifications_enabled 0 | ||
} | } | ||
Linia 148: | Linia 148: | ||
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 '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! | Error: Service check command 'check_nrpe' specified in service 'Partycja home' for host 'serwer-www' not defined anywhere! | ||
− | + | .... | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Total Warnings: 0 | Total Warnings: 0 | ||
Total Errors: 2 | Total Errors: 2 | ||
***> One or more problems was encountered while running the pre-flight check... | ***> One or more problems was encountered while running the pre-flight check... | ||
− | |||
Check your configuration file(s) to ensure that they contain valid | Check your configuration file(s) to ensure that they contain valid | ||
directives and data defintions. If you are upgrading from a previous | directives and data defintions. If you are upgrading from a previous | ||
Linia 216: | Linia 188: | ||
*'''-c''' określa kiedy występuje critical | *'''-c''' określa kiedy występuje critical | ||
zakres tych opcji zostanie ustalony na klientach (stacjach monitorowanych). | 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> | <br /><google1 style="4"></google1> |