Rsyslog + MySQL + Loganalyzer . Serwer logów.

przez | 6 czerwca 2014

Rsyslog – centralny serwer logów.

Instalacja:

Do zainstalowania loganalyzera potrzebujemy :

Apache lub IIS Webserver oraz PHP5

Opcjonalnie :

MySQL Database

Ja postawiłem Loganalyzer na serwerze Linux. Chciałem żeby zapisywał logi do bazy danych.

1. Stawiamy sobie serwer np. na Debianie. Instalujemy Apache, Serwer Mysql.

Instalacja LAMP (Apache, MySQL, PHP) w Linux – Debian

Zalecam sprawdzić poprawność daty i godziny ustawionej na serwerze :

polecenie : date

Jeżeli mamy złą datę lub godzinę wystarczy zainstalować ntpdate :

apt-get install ntpdate

A następnie zrobić synchronizację z serwera ntp np.

ntpdate ntp.certum.pl

Przechodzimy następnie do konfiguracji rsyslog

/etc/rsyslog.conf

z komentarza USUWAMY :

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

Łączymy rsyslog z bazą danych MySQL :

Instalujemy na serwerze logów rsyslog-mysql:

aptitude install rsyslog-mysql

Konfigurujemy pakiety …

Podajemy hasło administratora do bazy danych …

Jeśli coś poszło nie tak, używamy :

dpkg-reconfigure rsyslog-mysql

Aby sprawdzić czy baza danych odbiera logi, wykonujemy :

mysql -u login_uzytkownika_bazy -p hasło_do_bazy

Po zalogowaniu:

use Syslog;    #wybieramy bazę danych. W tym przykładzie baza nazywa się Syslog
select * from SystemEvents;

Analizator logów:

2. W następnej kolejności instalujemy analizatora logów. W tym przykładzie logi będą pobierane z bazy danych.

Loganalyzer zastąpił phplogcon !

1) ściągamy ze strony :

Home

http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz

rozpakowujemy.

Wrzucamy zawartość katalogu src do /var/www

Wrzucamy pliki configure.sh, secure.sh z katalogu contrib do /var/www

W katalogu /var/www wykonujemy:

chmod u+x configure.sh
chmod u+x secure.sh

./configure.sh

3)Przechodzimy do instalacji :

Utwórzmy sobie użytkownika do bazy danych Syslog. Nadajemy uprawnienia :

GRANT ALL ON Syslog.* TO ‚loganalyzer’@’localhost’ IDENTIFIED BY ‚haselko’;

Otwieramy następnie w przeglądarce :

http://hostname/loganalyzer/install.php

syslog1Klikamy Next.

syslog2Jeżeli mamy prawa zapisu do pliku config.php, klikamy Next.

syslog3aTutaj możemy określić czy logi będą pobierane z pliku lokalnego czy z bazy danych. Ja w tym przykładzie pobieram z bazy danych.Należy podać poświadczenia do bazy danych. Klikamy następnie Next.

syslog3b

syslog4Jeżeli uzyskamy proces instalacji bazy danych bez błędów, klikamy na Next.

Tworzenie konta do logowania się do panelu LogAnalyzer. Podajemy login i hasło i klikamy Next.

syslog6Należy utworzyć jeszcze pierwsze źródło dla syslog.

syslog7Po utworzeniu klikamy na Finish.

syslog8U mnie wyskoczył błąd dostępu do tabeli z logami. Należy przejść do Admin Center. Wybrać zakładkę Sources.

syslog9Następnie należy przejść do edycji źródła. Klikamy na Edit Source.

syslog10Ja musiałem zmienić nazwę tabeli z systemevents na SystemEvents.

syslog11W PHPMYADMIN możemy sobie sprawdzić jak tabela dokładnie się nazywa.

syslog12A tak wyglądają logi 🙂

syslog13

syslog14

Konfigurowanie klientów. Logi klientów trzymane na zewnątrz.

Przechodzimy do pliku /etc/rsyslog.conf

Dodajemy na końcu pliku np. :

*.*,ftp.none @192.168.4.108:514

Gdzie wszystko będzie logowane na serwer o IP 192.168.4.108 oprócz logów ftp.

Tak samo robi się z pozostałymi serwerami.

A tak już wyglądają logi. Na przykładowym prt sc mamy monitorowane 3 hosty :

syslog16Jeśli nie chcemy aby logi były zapisywane do plików lokalnych na klientach należy przejść do pliku :

nano /etc/rsyslog.conf

i dać w komentarze kanały (kategorie komunikatów),które nie chcemy logować do plików lokalnych na danym serwerze.

Budowa wpisów :

kanał.priorytet akcja wykonywana (najczęściej zapis do pliku ale nie tylko !)

 

#*.*;auth,authpriv.none -/var/log/syslog #autoryzacja

#auth,authpriv.* /var/log/auth.log

#cron.* /var/log/cron.log #informacje crona

#daemon.* -/var/log/daemon.log #demony systemowe

#kern.* -/var/log/kern.log #logi z kernela

#lpr.* -/var/log/lpr.log #logi z drukarki

#mail.* -/var/log/mail.log #logi pocztowe

#user.* -/var/log/user.log #logi z aplikacji używanych przez użytkowników

#mail.info -/var/log/mail.info #logi pocztowe (tylko informacyjne)

#mail.warn -/var/log/mail.warn #logi pocztowe (ostrzeżenia)

#mail.err /var/log/mail.err #logi pocztowe (błędy)


priorytety kanałów :

debug
info
notice
warn #priorytet co najmniej warning
err
crit
alert
emerg/panic
* #oznacza wszystko

 

Akcją może być np. :

/var/log/cron.log – Zapis do pliku ( z synchronizacją )
-/var/log/cron.log – Zapis do pliku ( bez synchronizacji )
/sciezka/do/potoku/nazwa_potoku – Zapisanie do wskazanego potoku
/dev/tty2 – Wyświetlenie na wskazanej konsoli np.tty2
@serwer_logowania lub @192.168.4.108 – Wysłanie logów na zewnątrz pod wskazany adres

 

Zawsze możemy przetestować działanie syslogera wykonując w konsoli :

logger -p kanał.priorytet „Wpisujemy tutaj to, co chcemy żeby się wyświetliło w logu”

Aby posprzątać po logach należy wykorzystać skrypt, który się znajduje w katalogu /var/www/loganalyzer/cron

o nazwie : maintenance.php

Aby z niego korzystać możemy wykorzystać skrypt o nazwie : maintenance.sh który również znajduje się w tym katalogu.

Następnie można zmienić jego zawartość na :

php /var/www/loganalyzer/cron/maintenance.php cleandata 1 all #skasowanie wszystkich plików

php /var/www/loganalyzer/cron/maintenance.php cleandata 1 olderthan 86400 #skasowanie wszystkich logów starszych niż jeden dzień

php /var/www/loganalyzer/cron/maintenance.php cleandata 1 olderthan 3600 #usunięcie wszystkich danych starszych niż jedna godzina.

Typowe wartości :

60 – jedna minuta
3,600 – jedna godzina
86400 – jeden dzień
2592000 – 30 dni (jeden miesiąc)

php /var/www/loganalyzer/cron/maintenance.php cleandata 1 date 06 05 2014 # Usunięcie wszystkiego przed datą 2014-06-05

Należy w skrypcie maintenance.sh pozmieniać ścieżki do maintenance.php

Logstream Source with ID można pobrać stąd :

syslog17Dokumentację Loganalyzer znajdziecie tutaj :
http://loganalyzer.adiscon.com/doc/

markos
Specjalizuję się w systemach komputerowych Windows oraz Linux. Oprócz wykonywanej pracy w zawodzie, informatyka jest moją pasją.
0 0 vote
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments