LNAV - Obserwuj i analizuj dzienniki Apache z terminalu Linux

LNAV - Obserwuj i analizuj dzienniki Apache z terminalu Linux

Niecałe dwa tygodnie temu WannaCry Ransomware Attack zagrał tysiące komputerów, powodując znaczne straty dla dużych firm i osób fizycznych. To, wraz z innymi powszechnymi lukami w ostatnich latach (takich jak Bug Shellshock), podkreśla znaczenie pozostania na szczycie systemów krytycznych misji.

Chociaż luki często są ukierunkowane na jeden konkretny system operacyjny lub komponent oprogramowania, zbadanie ruchu, który wchodzi i wychodzi z sieci, może być znaczącą pomocą w ochronie zasobów, za które jesteś odpowiedzialny.

Sugerowane przeczytanie: 4 dobre narzędzia do monitorowania i zarządzania dziennikiem typu open source dla Linux

Jak jestem pewien, że już wiesz, dzienniki systemowe są pierwszym miejscem, w którym powinniśmy szukać tych informacji. Aby ułatwić to zadanie, w tym artykule wyjaśnimy, jak zainstalować i używać lnav, Zaawansowany przeglądarka plików dziennika. Dzięki LNAV będziesz mógł jednocześnie oglądać kilka rodzajów dzienników, poruszać się po pliku za pomocą skrótów i wygenerować podsumowany histogram dostępu i błędów. Więc czytaj dalej!

Instalowanie i uruchamianie LNAV w Linux

Żeby zainstalować lnav, Użyj systemu zarządzania pakietami swojej dystrybucji.

# Aptitude instaluj lnav [debian i pochodne] # yum instaluj epel-release lnav [Centos 7 i podobne] 

Po zakończeniu instalacji uruchom lnav a następnie bezwzględna ścieżka do katalogu, w którym znajdują się dzienniki, które należy zbadać. Ponieważ będzie to zwykle /var/log, Zróbmy:

# lnav/var/log/httpd 

Aby sprawdzić dzienniki serwera WWW Apache w Centos 7:

Monitoruj dzienniki Apache w Centos 7

Zbadajmy krótko dane wyjściowe pokazane na poprzednim obrazie:

  • W prawym górnym rogu pokazuje obecnie kontrolowane pliki (Access_Log-20170519 I access_log). Kiedy przewijasz w dół lub w górę, zauważysz, że nazwy plików mogą się zmieniać w miarę przechodzenia od jednego do drugiego.
  • 40x HTTP odpowiedzi (na przykład, Nie znaleziono Lub Zabroniony) są wyświetlane odważne, podczas gdy 20x Odpowiedzi są pokazane w regularnym tekście.
  • Adresy IP pojawiają się w odważnej zieleni.

To z pewnością wygląda ładnie, prawda?? Ale kopnijmy teraz trochę głębiej i zobaczymy, że LNAV zapewnia znacznie więcej niż ładnie kolorowy wyjście.

Jeśli jesteś ciekawy, dlaczego dzienniki błędów nie są wyświetlane, znajdziesz odpowiedź w dalszej części tego artykułu. Więc czytaj dalej!

Modyfikowanie wyjścia za pomocą opcji i hotkeys

Zanim przejdziemy dalej, wymieńmy kilka skrótów, które pozwolą nam łatwiej przejść przez wyjście LNAV i dostępne widoki:

  • mi Lub mi Aby przejść do następnego / poprzedniego komunikatu o błędzie.
  • w Lub W Przeskoczyć do następnej / poprzedniej wiadomości ostrzegawczej.
  • B Lub Backspace Aby przejść do poprzedniej strony.
  • Miejsce do przejścia na następną stronę.
  • G Lub G Aby przejść do górnej / dolnej części bieżącego widoku.

Gdy dzienniki są obracane, stare pliki mogą być kompresowane (lub nie) w zależności od ustawień określonych w plikach konfiguracyjnych Logrotatan. Aby dołączyć skompresowane pliki do wyjścia, uruchom LNAV w następujący sposób:

# lnav -r/var/log/httpd 

Jeśli chcesz przyjrzeć się bliżej sposób działania LNAv, możesz uruchomić program z -D Opcja, po której następuje nazwa pliku, w której informacje o debugowaniu zostaną napisane, tak jak:

# lnav/var/log/httpd -d lnav.tekst 

W tym przykładzie informacje o debugowaniu, które są generowane po uruchomieniu LNAV, zostaną zapisane do pliku o nazwie lnav.tekst wewnątrz obecnego katalogu roboczego.

Pierwsze kilka wierszy tego pliku pokazano na poniższym obrazku:

Informacje o debugowaniu Apache

Podświetlony tekst wskazuje, że LNAV załadował plik formatów domyślnych, a dokładniej, access_log Format, aby przeanalizować dziennik dostępu Apache. Dodatkowo LNAV pozwala przeanalizować każdą linię wyjściową, aby wyjście stały się łatwiejsze do wizualizacji i zrozumienia.

Sugerowane przeczytanie: GOACCESS (analizator dziennika Apache i Nginx) Analizator dziennika serwera internetowego

Aby skorzystać z tej funkcji, uruchom program i wybierz linię, którą chcesz przeanalizować. Wybrana linia jest zawsze ta u góry okna. Następnie naciśnij P i powinieneś zobaczyć następujący wynik:

Informacje o stanie żądania Apache

Aby powrócić do trybu normalnego, naciśnij P Ponownie.

Teraz, jeśli chcesz zobaczyć podsumowanie dzienników według daty i godziny, naciśnij I. Na przykład podświetlony tekst wskazuje, że w poniedziałek, 10 kwietnia, między 22 a 23.

Apache loguje się w ciągu dnia i godziny

Po zidentyfikowaniu potencjalnego problemu na podstawie histogramu, jak pokazano powyżej, możesz nacisnąć I Aby wyjść z poglądu, aby go bardziej szczegółowo zbadać za pomocą parsera, jak wyjaśniono wcześniej. Możesz też użyć wbudowanych możliwości SQL, wpisując półkolis i pisząc standardowe zapytanie. Na przykład, zrób:

;.schemat 

Aby wyświetlić dostępne tabele w schemacie bazy danych. Po zidentyfikowaniu odpowiedniej tabeli (access_log W naszym przypadku) naciśnijmy Q a następnie użyj następującego zapytania, aby zwrócić wszystkie dostępne informacje o żądaniach pochodzących z 195.154.230.31:

; Wybierz * z Access_Log, gdzie C_IP = "195.154.230.31 " 
Informacje o dzienniku Apache w formacie tabeli

Zauważ, że moglibyśmy również odfiltrować wyniki według log_time. Chodzi o to, że wrzuć mały SQL, a niebo jest granicą tego, co możesz zrobić z Lnav.

Apache domyślne formaty dziennika

Wiele formatów dziennika jest domyślnie załadowanych lnav i są zatem analizowane bez naszej interwencji. Możesz wyświetlić listę w sekcji Formaty dziennika w oficjalnej dokumentacji.

Formaty domyślne są określone w ~/.lnav/formaty/domyślne/default-formaty.JSON.próbka, i inne można dodać ~/.lnav/formaty używając .JSON rozszerzenie.

Jednak edycja tych plików wymaga pewnego stopnia znajomości JSON (notacja obiektu JavaScript) i biblioteki PCRE (zgodne z Perl Regularne wyrażenia).

Dlaczego LNAV nie wyświetlał plików dziennika błędów Apache? Powodem jest to, że dzienniki te nie pasują do żadnych wyrażeń regularnych w istniejących plikach formatu, a zatem są traktowane jako zwykłe pliki tekstowe (oznaczające pliki bez danego formatu dziennika).

Sugerowane przeczytanie: Jak monitorować ładowanie serwera WWW Apache i statystyki strony

Jak wspomniano wcześniej, możesz tworzyć własne formaty, gdy jesteś przynajmniej trochę zaznajomiony z JSON i PCRE. To może się przydać, na przykład, jeśli masz zdefiniowane niestandardowe dzienniki Apache.

Streszczenie

Chociaż użyliśmy dziennika dostępu Apache, aby zademonstrować, jak korzystać z LNAV, pamiętaj, że istnieje kilka innych rodzajów dzienników, które można oglądać i analizować za pomocą tego narzędzia. Jeśli narzędzie nie rozpozna określonego dziennika, możesz utworzyć dodatkowe formaty i zainstalować je zgodnie z podanymi tutaj wskazaniami.

Czy masz jakieś pytania lub komentarze na temat tego artykułu? Jak zawsze, daj nam znać, używając poniższego formularza. Oczekujemy na kontakt zwrotny!