jeden obraz wart tysiaca słów, czyli grafika dla sysadmin’a
Serwer, który pracuje pod pewnym obciążeniem to stado demonów, odpowiadających na pytania, przetwarzających dane. Chociaż większość z nich loguje swoją działalność to wyłuskiwanie z tych źródeł danych informacji jedynie poprzez przyjrzenie się jest często niemożliwe. Szczególnie, jeśli chcielibyśmy uzyskać dane syntetyczne obrazujące pewne procesy zachodzące na serwerze lub jesteśmy po prostu ciekawi co tak naprawdę dzieje się na naszej maszynie.
W zasadzie do monitoringu bieżącego jest kilka narzędzi - przede wszystkim (a)top pokazujący obciążenie maszyny: pamięci, procesora oraz zbliżone do niego narzędzia dedykowane dla aplikacji, jak np. apachetop dla apache, mytop dla mysql, ntop dla sieci. Ponadto lsof jest przydatnym narzędziem, które dzięki szeregowi przełączników potrafi pokazać bieżącą aktywność w zakresie dysku, pamięci czy też połączeń sieciowych.
Jednak do prezentacji danych zagregowanych czy też spojrzenia na stan bieżący maszyny w sposób bardziej przyjazny dla oka, przydaje się instalacja dodatkowych narzędzi:
- amavis-stats pokazuje jakie wirusy atakowały nas najczęściej i w jakich przedziałach czasowych
- mailgraph oraz zbliżone narzędzie queuegraph wraz z dodatkowym oprogramowaniem typu couriergraph pozwala na przyjrzenie się co tak naprawdę dzieje się z pocztą przychodząca i wychodzącą z naszego serwera. Pozwala na szybkie spojrzenie ile wiadomości sie odbiło, ile weszło, jaki jest odsetek spamu i wirusów w stosunku do całego ruchu
- bindgraph pokazuje zapytania generowane przez umieszczone w sieci hosty. Skrypt w wersji podstawowej nie jest może specjalnie ciekawy, ale możliwość jego modyfikacji pozwala na uzyskanie innych danych, takich jak chociażby: które systemy generują ruch oraz o jakie domeny są najczęście zadawane pytania. Warto wspomnieć, że aby oprogramowanie działało poprawnie potrzebne jest dodanie wpisów do konfiguracji Bind9, sekcji logging, włączających logowanie zapytań:
channel “querylog” { file “/var/log/bind9-query.log”; print-time yes; };
category queries { querylog; }; - mrtg którego przedstawiać nie trzeba, a które pokazuje dane o wykorzystaniu interfejsów sieciowych oraz smokeping który pozwala, dzięki użyciu fping albo echoping, na monitorowanie zarówno hostów w sieci wewnętrznej jak i sprawdzaniu stanu połączenia ze światem. Obydwa te pakiety warto skonfigurować aby dostować je do swoich potrzeb. Ponieważ mają one bardzo rozbudowane manuale i pliki konfiguracyjne zachęcam do spojrzenia do dokumentacji
- nie można w tym miejscu nie wspomnieć o modułach apache mod_status oraz mod_info które pozwalają na monitorowanie silnika serwującego nam wcześniej wskazane informacje. Domyślnie, choć moduły sa skompilowane, ze względów bezpieczeństwa(?) są nieaktywne. Chcąc je włączyć wystarczy usunąć komentarz z pliku httpd.conf z sekcji
location /server-status
oraz
location /server-info.
Wspomniane przez mnie narzędzia monitorujące mają jednak pewna wadę - uruchomienie ich powoduje duży wzrost ilości zapisu/odczytu spowodowanych zapisem danych dla RRDtool, które generuje wszystkie te wykresy, co warto wziąść pod uwagę w wypadku planowania ich użycia na obciążonym serwerze.
Udanej zabawy!