Skocz do zawartości
Zaloguj się, aby obserwować  
mlodycompany

Analizator logów w php

Polecane posty

Witam. Chciałbym stworzyć analizator logów systemowych, który wyświetli mi kilka interesujących informacji takich jak np. ile było zakończonych błędem prób logowań przez ssh lub ftp i tym podobne. Pytanie brzmi jak przetwarzać plik z logami, który waży np. 10MB? Myślałem nad filtrowaniem logów wykorzystując komendę grep i zliczanie linii. I tak dla każdej reguły. Czyli np. aby pokazać poprawne i błędne logowania do ssh to byłyby wykonywane dwa polecenia

cat plik.log | grep ssh | grep Failed -c
cat plik.log | grep ssh | grep Accepted -c

 

Co o takim rozwiązaniu myślicie? Czy jest jakaś lepsza metoda na filtrowanie tak dużych plików za pomocą PHP lub z wykorzystaniem samego linuxa?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Szukaj komend linuxa, przenieść do PHP to nie jest problem. Sam PHP nie ma w sobie dostępu do logów ssh itd.

 

Pamiętaj jeszcze że logi np. /var/log/auth.log są archiwizowane:

 

U mnie np.

 

auth.log

auth.log.1

auth.log.2.gz

auth.log.3.gz

auth.log.4.gz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To, że logi są porozbijane na kilka plików to wiem i mam to na uwadze, lecz nie mam pomysłu (znaczy mam, ale niezbyt dobry) jak obrobić za jednym zamachem kilka reguł z tak dużego pliku...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Użyć bash i cron do zapisu np co 5 min potrzebnych danych z logów do pliku txt, którego zawartość już prosto wyświetlać sobie możesz w dowolnej konfiguracji.

 

Ja bym zrobił tak:

 

Co 10 minut odpala się skrypt, zbiera informacje z logów, następnie przerzuca pliki z logów do innego katalogu lub je archiwizuje i tworzy nowy plik lub czeka na stworzenie go przez program.

 

I zapis do bazy danych MySQL przez PHP lub do jakiegoś pliku TXT ;)

 

Wszystko można zrobić w PHP odpowiednimi komendami linuxa ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Zależy do czego służy ;)

 

Np. jeżeli serwer nie wykorzystuje poczty to nie są potrzebne logi serwera mailowego...

 

Musisz sobie rozpisać do czego używasz serwera, jakie logi będą ci potrzebne i co chcesz monitorować. Następnie analizujesz logi i sprawdzasz co jest ci potrzebne.

 

 

Co do skryptu warto dopisać że np. co tydzień wysyła ci powiadomienie na maila ze wszystkimi danymi z tygodnia, łącznie z zużyciem RAM, CPU, uptime. Po wysłaniu maila dane przechodzą do archiwum a naliczane jest wszystko od nowa ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To rozwiązanie dla samego siebie czy raczej na maszynę produkcyjną ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@kamikadze, raporty tygodniowe z cpu, loadów, hdd, memory już działają

@xorg dla samego siebie lecz kilka innych osób też będzie z tego korzystać, ale nie na jakąś dużą skalę

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

To rozwiązanie dla samego siebie czy raczej na maszynę produkcyjną ?

 

Zawsze warto się nauczyć takich rzeczy ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To pytanie raczej miało trochę inny cel.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

To pytanie raczej miało trochę inny cel.

 

Wiem, ale nie do mnie skierowane, więc nie wypowiadałem się za innego użytkownika, tylko dodałem swój komentarz ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×