Statystyki obciążenia serwera Apache w czasie rzeczywistym
Napisał: Patryk Krawaczyński
03/07/2011 w Administracja Brak komentarzy. (artykuł nr 321, ilość słów: 546)
Z
e względu na cenną wydajność bardzo rzadko w serwerze Apache włącza się takie moduły jak status w dodatku z włączoną opcją ExtendedStatus
. W jaki, więc sposób sprawdzić w czasie rzeczywistym obciążenie naszego serwera dla wybranego wirtualnego hosta lub całej maszyny? Zakładając, że mamy jeszcze mały zapas związany z operacjami I/O na dysku możemy wykorzystać do tego takie narzędzia jak ApacheTop lub GoAccess.
ApacheTop monitoruje pliki dziennika generowane przez serwer Apache (w standardowym [CLF] lub łączonym [XLF/ELF] formacie) generując w czasie rzeczywistym bardziej przyjazne dla administratora informacje – tak jak robi to polecenie top
dla systemu Linux. Uruchomienie ApacheTop jest bardzo podobne do przeglądania logów w czasie rzeczywistym za pomocą polecenia tail
np. tail -f /var/log/messages – tylko w tym przypadku podajemy jeden lub więcej wirtualnych hostów obsługiwanych przez nasz serwer WWW:
apachetop -f /var/www/vhosts/nfsec/access.log
last hit: 20:25:06 atop runtime: 0 days, 00:11:55 20:25:08 All: 71679 reqs ( 101.0/sec) 459.6M ( 662.8K/sec) 6723.1B/req 2xx: 71347 (99.5%) 3xx: 332 ( 0.5%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%) R ( 30s): 2170 reqs ( 72.3/sec) 13.5M ( 462.2K/sec) 6542.9B/req 2xx: 2169 (100.0%) 3xx: 1 ( 0.0%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%) REQS REQ/S KB KB/S URL 35 1.25 79.1 2.8 */ 35 1.25 475.4 17.0 /feed/
Możemy również użyć np. opcji -H 10 lub -T 120 w celu permanentnego (top 10) lub czasowego (2 minuty) zapamiętania TOP listy odwiedzanych adresów URL. Gwiazdka * przy liście top oznacza aktualne położenie kursora. W celu sprawdzenia szczegółów wywołania wybranego adresu URL wystarczy przycisnąć prawy klawisz strzałki (lewy, jeśli chcemy powrócić do ekranu głównego). Możemy również filtrować dane na wyjściu w przypadku, gdy zbyt wiele informacji pojawia nam się na ekranie. Służy do tego klawisz f po wciśnięciu, którego pojawią nam się możliwe opcje dodania, wyczyszczenia lub wyswietlenia aktywnych filtrów. Przy używaniu tego narzędzie należy pamiętać, aby monitoring serwera nie był prowadzony ze zbyt dużymi ramami czasowymi i zbyt dużą ilością trafień (opcje H i T), ponieważ w ten sposób będziemy używać zbyt wiele zasobów procesora i pamięci wpływając niekorzystnie na całe obciążenie naszej maszyny.
Bardzo podobną funkcje oferuje nam narzędzie o nazwie GoAccess – różnica polega na tym, że GoAccess parsuje cały plik dziennika i uzupełnia go na bieżąco, a ApacheTop wykonuje to od momentu uruchomienia. W dodatku GoAccess oferuje nam możliwość prezentowania większej ilości danych, takich jak:
- Ogólną ilość żądań, wykorzystana przepustowość,
- Top odwiedzający,
- Żądane statyczne pliki (obrazki, js’y, css’y, swf’y itp.),
- Adresy i strony odsyłające,
- Systemy operacyjne, przeglądarki, roboty, hosty (+revDNS) i adresy IP,
- Kody odpowiedzi HTTP
Jego odpalenie jest analogiczne do ApacheTop:
goaccess -f /var/www/vhosts/nfsec/access.log
Więcej informacji: FAQ GoAccess, man apachetop