Linux CentOS scentralizowany serwer rejestrujący korzystający z Rsyslog i LogAnalyzer

Loganalizator - jest to aplikacja internetowa zaprojektowana do przeglądania dzienników zdarzeń systemowych otrzymanych z syslog za pomocą przeglądarki internetowej. Rsyslog - ta aplikacja jest rozszerzeniem standardowego demona syslog, którego jedną z cech jest możliwość zapisywania zdarzeń w bazie danych MySQL. Za pomocą tych dwóch wspaniałych programów możliwe jest utworzenie scentralizowanego serwera, na którym przekierowywane będą wszystkie zdarzenia z różnych urządzeń w sieci, które będą implementować funkcje do wygodnej archiwizacji i wyszukiwania zdarzeń dla wszystkich zdarzeń na wszystkich urządzeniach sieciowych w obwodzie sieci. W tym artykule opiszę procedurę instalowania rsyslog (zbieranie i agregowanie zdarzeń syslog) oraz LogAnalyzer (na Linux CentOS), który zapewnia przyjazny dla użytkownika interfejs do przeglądania i wyszukiwania zebranych logów).

Najpierw musisz zainstalować szereg dodatkowych pakietów RPM. Ponieważ Usługi LogAnalyzer, Rsyslog i MySQL będą działać na tym samym serwerze, musisz zainstalować następujące pakiety za pomocą yum:

# mniam zainstaluj httpd php mysql php-mysql mysql-server wget rsyslog rsyslog-mysql

Teraz musisz się upewnić, że MySQL i Apache są skonfigurowane do automatycznego uruchamiania, a następnie je uruchomić:

# chkconfig mysqld na # chkconfig httpd na # service mysqld start # usługa httpd start

Domyślnie użytkownik root bazy danych MySQL ma puste hasło, dlatego należy zabezpieczyć konfigurację, ustawiając nowe hasło:

# mysqladmin - hasło roota NewPassword

Następnie zaimportuj schemat bazy danych rsyslog do MySQL. W zależności od wersji rsyslog zmień ścieżkę do pliku „createDB.sql”.

# mysql - u root - p < /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql

Dobrą praktyką jest ograniczanie dostępu aplikacji do bazy danych, dlatego stworzymy specjalnego użytkownika, aby uzyskać dostęp do bazy danych rsyslog. Aby dodatkowo zaostrzyć ustawienia zabezpieczeń, możesz utworzyć osobne konta dla rsyslog i LogAnalyzer. Musisz zapewnić dostęp użytkownika rsyslog do bazy danych MySQL tylko z interfejsu localhost localhost. Musimy także wykonać polecenie „przywilejów” MySQL, aby natychmiast zastosować wszystkie prawa.

# mysql - u root - p mysql mysql> GRANT ALL ON Syslog. * TO rsyslog @ localhost IDENTYFIKOWANY PRZEZ 'Hasło'; mysql> uprawnienia do opróżniania; mysql> exit

Czas przejść do edycji pliku /etc/rsyslog.conf. Tutaj musimy skonfigurować przekazywanie wiadomości syslog do bazy danych MySQL. Pierwsze polecenie ładuje sterownik MySQL. W drugim wierszu mówimy, że konieczne jest zaakceptowanie dzienników o dowolnym poziomie ważności z „authpriv”, który zawiera najważniejsze wiadomości. Jeśli chcesz zapisać wszystkie komunikaty systemowe w MySQL, musisz podać *. *. Mój serwer bazy danych MySQL nasłuchuje pod adresem 127.0.0.1, Syslog to nazwa bazy danych MySQL, a na koniec podajemy nazwę MySQL i hasło użytkownika rsyslog. Tutaj możesz skonfigurować zbieranie i nagrywanie dowolnych wiadomości, każda kombinacja musi być oddzielona „;” (np. mail. *; authpriv. *: ommysql ...).

$ ModLoad ommysql authpriv. *: Ommysql: 127.0.0.1, Syslog, rsyslog, Hasło

Teraz musisz wyłączyć istniejącą usługę syslog i włączyć rsyslog:

# chkconfig syslog off # service syslog stop # chkconfig rsyslog on # service rsyslog start

Czas pobrać LogAnalyzer. Najnowszą wersję można znaleźć tutaj: http://loganalyzer.adiscon.com/downloads.

Lub pobierz LogAnalyzer bezpośrednio z serwera Linux (wget musi być zainstalowany):

# cd ~ # wget http://download.adiscon.com/loganalyzer/loganalyzer-3.0.0.tar.gz

Rozpakuj pliki LogAnalyzer:

# tar zxvf loganalyzer-3.0.0.tar.gz

Teraz musisz skopiować pliki LogAnalyzer do katalogu serwera WWW Apache (standardowa konfiguracja).

# mv loganalyzer-3.0.0 / src / var / www / html / loganalyzer # mv loganalyzer-3.0.0 / contrib / * / var / www / html / loganalyzer /

Przejdź do utworzonego katalogu LogAnalyzer, uruchom skrypt configure.sh. W rezultacie zostanie utworzony pusty plik konfiguracyjny config.php, który zostanie wypełniony w kolejnych krokach.

# cd / var / www / html / loganalyzer # chmod u + x configure.sh secure.sh # ./configure.sh

Do dalszej konfiguracji LogAnalyzer potrzebujemy przeglądarki internetowej. W swojej ulubionej przeglądarce internetowej wpisz http: // web1 / loganalyzer. (web1 to nazwa naszego serwera web1, loganalyzer to katalog apache)

W środku okna wybierz link „Kliknij tutaj, aby zainstalować”.

Dalej.

Skonfiguruj opcje wyświetlania dziennika i ponownie kliknij przycisk Dalej.

Teraz musisz podać adres serwera wraz z bazą danych, nazwą użytkownika i hasłem, aby uzyskać do niego dostęp (jeśli nie zapomniałeś, baza danych nazywa się rsyslog). Klikając Dalej, zobaczysz wynik sprawdzenia poprawności wprowadzonych danych i prawidłowego połączenia.

Wreszcie skończ.

W przypadku, gdy wszystko skonfigurowałeś poprawnie, przed tobą pojawi się strona główna LogAnalyzer, na której logi będą wyświetlane po ich otrzymaniu. Możesz spróbować wygenerować różne zdarzenia systemowe i zobaczyć, co się stanie na stronie LogAnalyzer. Ponieważ Skonfigurowałem rejestrowanie zdarzeń typu „authpriv”, co oznacza, że ​​zdarzenia takie jak wejście / wyjście użytkownika lub polecenie zmiany użytkownika (su) będą rejestrowane.

Personalizacja Rsyslog do zdalnego zbierania dzienników

Następnym krokiem jest skonfigurowanie usługi rsyslog do zbierania zdarzeń syslog z różnych urządzeń sieciowych. Najpierw musisz skonfigurować zaporę iptables, aby umożliwić ruch przychodzący przez port 514. Dodam dwie reguły, które zezwalają zarówno na ruch TCP, jak i UDP. Domyślnie syslog akceptuje tylko wiadomości wysyłane przez port UDP 514, ale do rsyslog dodano możliwość akceptowania ruchu TCP. Dodaj następujące reguły do ​​pliku „/ etc / sysconfig / iptables”:

-A RH-Firewall-1-INPUT - p udp - m udp --port 514 - j AKCEPTUJ
-A RH-Firewall-1-INPUT - p tcp - m tcp --port 514 - j AKCEPTUJ

Uruchom ponownie iptables:

# service iptables restart

Teraz musisz skonfigurować rsyslog do odbierania przychodzących wiadomości syslog. Skonfiguruję odbiór komunikatów TCP / UDP z hosta lokalnego i wszystkich hostów w podsieci 192.168.1.0. Do pliku „/etc/rsyslog.conf” należy dodać następujące wiersze (przed budowaniem, gdzie skonfigurowano komunikację z bazą danych MySQL).

$ AllowedSender UDP, 127.0.0.1, 192.168.1.0/24
$ Dozwolone Wysyłanie TCP, 127.0.0.1, 192.168.1.0/24

Pamiętaj, aby zrestartować usługę rsyslog na centralnym serwerze rejestrującym:

# service rsyslog restart

Następnym krokiem jest skonfigurowanie zdalnych klientów do wysyłania zdarzeń do centralnego serwera rsyslog. Jeśli na przykład rsyslog działa na kliencie, dodaj następujący wiersz do pliku „/etc/rsyslog.conf”:

authpriv. * @ 192.168.10.100

Uruchom ponownie serwer rsyslog na kliencie i spróbuj się zalogować / wylogować w tym systemie. Jeśli niczego nie przegapisz, odpowiednie wydarzenie pojawi się na stronie internetowej LogAnalyzer!

Polecam również zapoznanie się z artykułem na temat organizacji centralnego serwera dziennika opartego na systemie Windows Server 2008