Jak konfigurować centralny serwer rejestrowania z RSYSLOG w Linux

Jak konfigurować centralny serwer rejestrowania z RSYSLOG w Linux

Dzienniki są kluczowym elementem dowolnego oprogramowania lub systemu operacyjnego. Dzienniki zwykle rejestrują działania użytkownika, zdarzenia systemowe, aktywność sieciową i wiele więcej, w zależności od tego, do czego są przeznaczone. Jednym z najczęściej używanych systemów rejestrowania w systemach Linux jest Rsyslog.

Rsyslog to potężny, bezpieczny i wysokowydajny system przetwarzania dziennika, który akceptuje dane z różnych rodzajów źródła (systemy/aplikacje) i wysyła je w wiele formatów.

Ewoluował z regularnego Syslog Demon do w pełni funkcjonalnego systemu rejestrowania poziomów przedsiębiorstwa. Został zaprojektowany w modelu klienta/serwera, dlatego można go skonfigurować jako klient i/lub centralny serwer rejestrowania innych serwerów, urządzeń sieciowych i zdalnych.

Środowisko testowe

Do celów tego przewodnika użyjemy następujących hostów:

  • serwer: 192.168.241.140
  • Klient: 172.31.21.58

Jak zainstalować i skonfigurować serwer RSYSLOG

Większość dystrybucji Linux jest wyposażona w Rsyslog Pakiet wstępnie zainstalowany. W przypadku, gdy nie jest zainstalowany, możesz go zainstalować za pomocą narzędzia Linux Pakiet Manager.

$ sudo yum aktualizacja && yum instaluj rsyslog #Centos 7 $ sudo apt aktualizacja && apt instontuj rsyslog #ubuntu 16.04, 18.04 

Raz Rsyslog Zainstalowane, musisz na razie uruchomić Usługę, włączyć ją do automatycznego startowania w rozruchu i sprawdzić jej status za pomocą polecenia SystemCtl.

$ sudo systemctl start rsyslog $ sudo systemctl Włącz rsyslog $ sudo Systemctl Status Rsyslog 

Główny plik konfiguracyjny RSYSLOG znajduje się pod adresem /etc/rsyslog.conf, który ładuje moduły, definiuje globalne dyrektywy, zawiera reguły przetwarzania komunikatów dziennika, a także zawiera wszystkie pliki konfiguracyjne w /etc/rsyslog.D/ W przypadku różnych aplikacji/usług.

$ sudo vim /etc /rsyslog.conf 

Domyślnie, Rsyslog używa Imjournal I Imusock moduły do ​​importowania strukturalnych komunikatów dziennika z Systemd Journal oraz do akceptowania wiadomości syslog z aplikacji działających odpowiednio w systemie lokalnym za pośrednictwem gniazd unix.

Moduły RSysLog do rejestrowania

Aby skonfigurować RSysLog jako serwer sieci/centralny, musisz ustawić protokół (albo UDP Lub TCP lub obu) będzie używać do zdalnego odbioru syslog, a także do portu, na którym słucha.

Jeśli chcesz użyć UDP Połączenie, które jest szybsze, ale niewiarygodne, przeszukaj i pocukaj poniższe linie (wymień 514 Z portem, który chcesz słuchać, powinno to pasować do adresu portu, do którego klienci wysyłają wiadomości, przyjrzymy się temu podczas konfigurowania klienta RSYSLOG).

$ Modload imudp $ Udpserverrun 514 

Używać TCP Połączenie (które jest wolniejsze, ale bardziej niezawodne), przeszukaj i pocukaj poniższe linie.

$ Modload imtcp $ inputTcpServerrun 514 

W takim przypadku chcemy jednocześnie używać połączeń UDP, jak i TCP.

Skonfiguruj serwer rejestrowania RSysLog

Następnie musisz zdefiniować zestaw reguł do przetwarzania zdalnych dzienników w następującym formacie.

obiekt.Miejsce docelowe nasilenia (gdzie do przechowywania) 

Gdzie:

  • obiekt: jest rodzajem komunikatu generowania procesu/aplikacji, obejmują one autoryjne, cron, demon, jądro, local0… lokal7. Za pomocą * oznacza wszystkie obiekty.
  • surowość_level: jest typem dziennika komunikatu: EICT-0, alert-1, crit-2, err-3, ostarowanie-4, zawiadomienie-5, info-6, debug-7. Za pomocą * oznacza wszystkie poziomy nasilenia i żaden nie oznacza poziomu nasilenia.
  • miejsce docelowe: to plik lokalny lub zdalny serwer RSYSLOG (zdefiniowany w formularzu IP: port).

Użyjemy następujących zestaw reguł do zbierania dzienników z zdalnych hostów, za pomocą Remotelogs szablon. Zauważ, że reguły te muszą pojawić się przed jakichkolwiek reguł przetwarzania komunikatów lokalnych, jak pokazano na zrzucie ekranu.

$ szablon REDOTELOGS, "/var/log/%nazwa hosta%/%nazwa programu%.dziennik" *.* ?REDOTELOGS & ~ 
Zdefiniuj zestaw reguł dla Logging Rsyslog

Patrząc na powyższe zestaw reguł, Pierwsza zasada jest „$ Szablon RemoteLogs”/var/log/%nazwa hosta%/%nazwa programu%.dziennik"".

Dyrektywa szablon $ mówi Daonowi Rsyslog, aby zebrał i napisał wszystkie odebrane zdalne wiadomości z odrębnymi dziennikami /var/log, na podstawie Nazwa hosta (Nazwa komputera klienta) i zdalny obiekt klienta (program/aplikacja), które wygenerowały wiadomości określone przez ustawienia obecne w szablonie Remotelogs.

Druga linia „*.* ?Remotelogs ” oznacza komunikaty rejestrujące ze wszystkich obiektów na wszystkich poziomach nasilenia za pomocą Remotelogs Konfiguracja szablonu.

Ostateczna linia „& ~” Instruuje RSYSLOG, aby przestał przetwarzać wiadomości po zapisaniu do pliku. Jeśli nie uwzględnisz „& ~”, Zamiast tego zostaną zapisane w plikach lokalnych.

Istnieje wiele innych szablonów, których można użyć, aby uzyskać więcej informacji, zobacz stronę Man Configuration Man RSysLog (Człowiek rsyslog.conf) lub odnoszą się do dokumentacji online RSYSLOG.

To wszystko w konfiguracji serwera RSysLog. Zapisz i zamknij plik konfiguracyjny. Aby zastosować ostatnie zmiany, ponownie uruchom demon rsyslog za pomocą następującego polecenia.

$ sudo systemctl restart rsyslog 

Teraz zweryfikuj gniazda sieciowe RSYSLOG. Użyj polecenie ss (lub netstat z tymi samymi flagami) Polecenie i wypieraj wyjście do GREP, aby odfiltrować połączenia RSYSLOGD.

$ sudo ss -tulnp | GREP „RSYSLOG” 
Sprawdź status sieci RSYSLOG

Następny Centos 7, Jeśli masz Selinux Włączone, uruchom następujące polecenia, aby umożliwić ruch RSYSLOG na podstawie typu gniazda sieciowego.

$ sudo semanage -a -t syslogd_port_t -p udp 514 $ sudo semanage -a -t syslogd_port_t -p tcp 514 

Jeśli system ma zaporę zapory, musisz otworzyć port 514 aby pozwolić obu UDP/TCP Połączenia z serwerem RSYSLOG, uruchamiając.

------------- Na Centos ------------- $ sudo firewall-cmd --Permanent --add-port = 514/Udp $ sudo firewall-cmd --Permanent --add-port = 514/tcp $ sudo firewall-cmd--relad ------------- Na Ubuntu ------------- $ sudo ufw zezwolić 514/udp $ sudo ufw zezwolić 514/tcp $ sudo ufw Reload 

Jak skonfigurować klienta RSYSLOG do wysyłania dzienników na serwer RSYSLOG

Teraz w systemie klienta sprawdź, czy usługa RSYSLOG działa, czy nie z następującym poleceniem.

$ sudo Systemctl Status Rsyslog 

Jeśli nie jest zainstalowany, zainstaluj i uruchom usługę, jak pokazano wcześniej.

$ sudo yum aktualizacja && yum instaluj rsyslog #Centos 7 $ sudo apt aktualizacja && apt instontuj rsyslog #ubuntu 16.04, 18.04 $ sudo systemctl start rsyslog $ sudo systemctl Włącz rsyslog $ sudo systemCtl Status rsyslog 

Po uruchomieniu usługi RSYSLOG otwórz główny plik konfiguracyjny, w którym wykonasz zmiany w konfiguracji domyślnej.

$ sudo vim /etc /rsyslog.conf 

Aby zmusić demon RSYSLOG do działania jako klient dziennika i przekazał wszystkie lokalnie generowane komunikaty dziennika do zdalnego serwera RSysLog, dodaj tę regułę przekazywania, na końcu pliku, jak pokazano na poniższym zrzucie ekranu.

*. * @@ 192.168.100.10: 514 
Skonfiguruj klienta RSYSLOG

Powyższa reguła wyśle ​​wiadomości ze wszystkich obiektów i na wszystkich poziomach nasilenia. Na przykład wysyłanie wiadomości z określonego obiektu Auth, Użyj następującej zasady.

Auth. * @@ 192.168.100.10: 514 

Zapisz zmiany i zamknij plik konfiguracyjny. Aby zastosować powyższe ustawienia, ponownie uruchom demon RSYSLOG.

$ sudo systemctl restart rsyslog 

Jak monitorować zdalne logowanie na serwerze RSysLog

Ostatnim krokiem jest sprawdzenie, czy RSYSLOG faktycznie odbiera wiadomości od klienta, poniżej /var/log, w formie Nazwa hosta/nazwa programu.dziennik.

Uruchom polecenie LS do długiej listy katalogu dziennika nadrzędnego i sprawdź, czy jest nazywany katalog IP-172.31.21.58 (lub jaka jest nazwa hosta komputera klienta).

 $ ls -l/var/log/ 
Sprawdź rejestrowanie klientów RSYSLOG

Jeśli katalog istnieje, sprawdź w nim pliki dziennika, uruchamiając.

$ sudo ls -l/var/log/ip-172-31-21-58/ 
Sprawdź dzienniki klienta RSYSLOG
Streszczenie

Rsyslog to wysokowydajny system przetwarzania dziennika, zaprojektowany w architekturze klienta/serwera. Mamy nadzieję, że możesz zainstalować i skonfigurować Rsyslog jako serwer rejestrowania centralnego/sieciowego i jako klient, jak pokazano w tym przewodniku.

Możesz także zapoznać się z odpowiednimi stronami ręcznymi RSYSLOG, aby uzyskać więcej pomocy. Zapraszam do przekazania nam informacji zwrotnych lub zadawania pytań.