Jak utworzyć scentralizowany serwer dziennika z RSYSLOG w Centos/RhEL 7

Jak utworzyć scentralizowany serwer dziennika z RSYSLOG w Centos/RhEL 7

Aby administrator systemu mógł zidentyfikować lub rozwiązywać problem z problemem Centos 7 Lub RHEL 7 System serwerowy, musi wiedzieć i przeglądać zdarzenia, które miały miejsce w systemie w określonym czasie z plików dziennika przechowywanych w systemie w systemie /var/log informator.

Serwer Syslog na komputerze Linux może działać w centralnym punkcie monitorowania przez sieć, w której wszystkie serwery, urządzenia sieciowe, routery, przełączniki i większość ich usług wewnętrznych, które generują dzienniki, czy to związane z konkretnymi problemami wewnętrznymi, czy tylko informacyjnymi wiadomościami, mogą wysyłać swoje dzienniki.

Na Centos/Rhel 7 system, Rsyslog Demon to główny serwer dziennika, a następnie Systemd Journal Daemon (Journald).

Rsyslog serwer w kompilacji jako usługa architektury klienta/serwera i może osiągnąć obie role jednoczesne. Może działać jako serwer i zbierać wszystkie dzienniki przesyłane przez inne urządzenia w sieci lub może działać jako klient, wysyłając wszystkie wewnętrzne zdarzenia systemowe zarejestrowane na zdalnym serwerze syslogowym punktu końcowego.

Gdy RSYSLOG jest skonfigurowany jako klient, dzienniki mogą być przechowywane lokalnie w plikach w lokalnym systemie plików lub mogą być wysyłane zdalnie, a nie zapisywać je w plikach przechowywanych na komputerze lub zapisywanie plików dziennika zdarzeń i wysyłać je do zdalnego serwera syslog pod adresem o tym samym czasie.

Server Syslog obsługuje dowolny komunikat dziennika za pomocą następującego schematu:

Typ (obiekt).Priorytet (ciężkość) miejsce docelowe (gdzie wysłać dziennik) 

A.  obiekt lub dane typu są reprezentowane przez wewnętrzne procesy systemowe, które generują komunikaty. W systemach wewnętrznych (obiektach) w systemie Linux, które generują dzienniki, są znormalizowane w następujący sposób:

  • Auth = Wiadomości generowane przez procesy uwierzytelniania (login).
  • Cron= Wiadomości generowane przez zaplanowane procesy (crontab).
  • Demon = Wiadomości generowane przez demony (usługi wewnętrzne).
  • jądro = Wiadomości generowane przez samo jądro Linux.
  • Poczta = Wiadomości generowane przez serwer pocztowy.
  • Syslog = Wiadomości generowane przez sam demon RSYSLOG.
  • LPR = Wiadomości generowane przez lokalne drukarki lub serwer drukarski.
  • Local0 - Local7 = Wiadomości niestandardowe zdefiniowane przez administratora (Local7 jest zwykle przypisywane dla Cisco lub Windows).

B.  Priorytet (ciężkość) poziomy są również znormalizowane. Każdy priorytet jest przypisywany ze standardowym skrótem i liczbą, jak opisano poniżej. 7. priorytet to wyższy poziom wszystkich.

  • Emerg = Awaryjny - 0
  • alarm = Alerty - 1
  • błądzić = Błędy - 3
  • ostrzegać = Ostrzeżenia - 4
  • ogłoszenie = Powiadomienie - 5
  • informacje = Informacje - 6
  • odpluskwić = Debugowanie - 7

Specjalne słowa kluczowe RSYSLOG:

  • * = Wszystkie obiekty lub priorytety
  • nic = Obiekty nie mają danych priorytetów, np Poczta.nic

C. Trzecia część schematu syslog jest reprezentowana przez miejsce docelowe dyrektywa. Demon rsyslog może wysyłać wiadomości dziennika, aby zostały zapisane w pliku w lokalnym systemie plików (głównie w pliku w /var/log/ katalog) lub przewoźnik do innego procesu lokalnego lub wysyłanie do lokalnej konsoli użytkownika (do stdout) lub wyślij wiadomość do zdalnego serwera syslog za pośrednictwem protokołu TCP/UDP, a nawet odrzuć wiadomość do wiadomości do /dev/null.

Aby skonfigurować Centos/Rhel 7 Jako centralny serwer dziennika, najpierw musimy sprawdzić i upewnić się, że /var partycja, w której rejestrowane są wszystkie plik dziennika, jest wystarczająco duży (kilka minimum GB), aby móc przechowywać wszystkie pliki dziennika, które będą wysyłane przez inne urządzenia. To dobra decyzja, aby użyć oddzielnego napędu (LVM, RAID) do zamontowania /var/log/ informator.

Wymagania

  1. Centos 7.3 Procedura instalacji
  2. RHEL 7.3 Procedura instalacji

Jak skonfigurować RSYSLOG na serwerze Centos/Rhel 7

1. Domyślnie, Rsyslog Usługa jest instalowana automatycznie i powinna być uruchamiana Centos/Rhel 7. Aby sprawdzić, czy demon zostanie uruchomiony w systemie, wydaj następujące polecenie z uprawnieniami root.

# Status SystemCtl RSYSLOG.praca 
Sprawdź usługę RSYSLOG

Jeśli usługa nie działa domyślnie, wykonaj poniższe polecenie, aby uruchomić Demon RSYSLOG.

# Systemctl start rsyslog.praca 

2. Jeśli pakiet RSYSLOG nie jest zainstalowany w systemie, którego zamierzasz używać jako scentralizowanego serwera rejestrowania, wydaj następujące polecenie, aby zainstalować pakiet RSysLog.

# Yum Instal RsysLog 

3. Pierwszym krokiem, który musimy zrobić w systemie, aby skonfigurować demon RSYSLOG jako scentralizowany serwer dziennika, aby mógł odbierać komunikaty dziennika dla klientów zewnętrznych, jest otwarcie i edycja, przy użyciu ulubionego edytora tekstu, głównego pliku konfiguracyjnego z pliku konfiguracyjnego z /etc/rsyslog.conf, Jak przedstawiono w poniższym fragmencie.

# vi /etc /rsyslog.conf 

W głównym pliku konfiguracyjnym RSYSLOG przeszukaj i pocukaj następujące wiersze (usuń hashtag # podpisać na początku linii) w celu zapewnienia odbioru transportu UDP do serwera RSYSLOG przez serwer za pośrednictwem 514 Port. UDP jest standardowym protokołem używanym do transmisji logarytmicznej przez RSYSLOG.

$ Modload imudp $ Udpserverrun 514 
Skonfiguruj serwer RSYSLOG

4. Protokół UDP nie ma narzut TCP, co sprawia, że ​​jest szybszy dla przesyłania danych niż protokół TCP. Z drugiej strony protokół UDP nie zapewnia niezawodności przesyłanych danych.

Jeśli jednak potrzebujesz użycia protokołu TCP do odbioru dziennika, musisz wyszukać i porzucić następujące wiersze z /etc/rsyslog.conf Plik w celu skonfigurowania demona RSYSLOG do wiązania i słuchania gniazda TCP na porcie 514. Gniazda słuchania TCP i UDP do odbioru można jednocześnie skonfigurować na serwerze RSyslog.

$ Modload imtcp $ inputTcpServerrun 514 

5. W następnym kroku nie zamykaj jeszcze pliku, utwórz nowy szablon, który będzie używany do odbierania zdalnych wiadomości. Ten szablon instruuje lokalny serwer RSysLog, gdzie zapisać odebrane wiadomości wysyłane przez klientów sieciowych Syslog. Szablon należy dodać przed rozpoczęciem Dyrektywy globalne blok, jak pokazano w poniższym fragmencie.

$ szablon REDOTELOGS, "/var/log/%nazwa hosta%/%nazwa programu%.dziennik"  . ?REDOTELOGS & ~ 
Utwórz szablon RSYSLOG

Powyższe $ szablon REDOTELOGS Dyrektywa instruuje demon rsyslog do zbierania i zapisywania wszystkich odebranych komunikatów dziennika do odrębnych plików, w oparciu o nazwę komputera klienta i zdalnego obiektu klienta (aplikacja), które generowały wiadomości na podstawie zdefiniowanych właściwości w konfiguracji szablonu: %Nazwa hosta% I %NAZWA PROGRAMU%.

Wszystkie te pliki dziennika zostaną zapisane w lokalnym systemie plików do dedykowanego pliku nazwanego na nazwa hosta komputera klienta i przechowywana w/var/log/katalog.

 I ~ Reguła przekierowania instruuje lokalny serwer RSysLog, aby przestał przetwarzać otrzymaną wiadomość dziennika i odrzucić wiadomości (nie zapisuj ich na wewnętrzne pliki dziennika).

Remotelogs Nazwa to dowolna nazwa nadana tej dyrektywie szablonu. Możesz użyć dowolnej nazwy, którą możesz znaleźć najlepiej dla swojego szablonu.

Aby zapisać wszystkie otrzymane wiadomości od klientów w jednym pliku dziennika nazwanym na podstawie adresu IP zdalnego klienta, bez filtrowania obiektu, który wygenerował komunikat, użyj poniższego fragmentu.

$ szablon fromip, "/var/log/%fromhost-iP%.dziennik"  . ?Fromip & ~ 

Kolejny przykład szablonu, w którym wszystkie wiadomości z flagą Auth Flagi zostaną zalogowane do szablonu o nazwie „Tmplauth".

$ szablon tmplauth, "/var/log/%nazwa hosta%/%nazwa programu%.log "Authpriv.* ?Tmplauth 

Poniżej znajduje się fragment definicji szablonu z serwera RSYSLOG 7:

szablon (name = "tmplmsg" type = "string" string = "/var/log/remote/msg/%nazwa hosta%/%nazwa programu ::: secpath-reprezent.dziennik" ) 

Powyższy fragment szablonu można również napisać jako:

szablon (name = "tmplmsg" type = "lista") constant (value = "/var/log/remote/msg/") właściwość (name = "hostName") (wartość = "/") właściwość (name = name = name = name = name = name = „ProgramName” SecurePath = „Wymień”) stała (wartość = ”.dziennik")  

Aby napisać złożone szablony RSYSLOG, przeczytaj instrukcję pliku konfiguracyjnego RSYSLOG, wydawając Człowiek rsyslog.conf Dowódzuj lub skonsultuj się z dokumentacją online RSYSLOG.

6. Po edytowaniu pliku konfiguracyjnego RSYSLOG z własnymi ustawieniami, jak wyjaśniono powyżej, uruchom ponownie demon RSYSLOG, aby zastosować zmiany, wydając następujące polecenie:

# Service Rsyslog restart 

7. Do tej pory serwer RSYSLOG powinien być skonfigurowany do działania scentralizowanego serwera dziennika i rejestrowania wiadomości od klientów Syslog. Aby zweryfikować gniazda sieciowe RSYSLOG, uruchom polecenie NetStat z uprawnieniami root i użyj GREP do filtrowania ciągu RSYSLOG.

# netstat -tulpn | GREP RSYSLOG 
Sprawdź gniazdo sieciowe RSYSLOG

8. Jeśli masz włączenie Selinux w Centos/Rhel 7, Wydaj następujące polecenie, aby skonfigurować Selinux, aby umożliwić ruch RSYSLOG w zależności od typu gniazda sieciowego.

# semanage -a -t syslogd_port_t -p udp 514 # semanage -a -t syslogd_port_t -p tcp 514 

9. Jeśli zapora jest włączona i aktywna, uruchom poniższe polecenie, aby dodać niezbędne reguły otwierania portów RSYSLOG w Firewalld.

# Firewall-CMD --Permanent --add-port = 514/tcp # Firewall-CMD --PerManent --add-Port = 514/UDP # Firewall-Cmd -reload 

To wszystko! RSYSLOG jest teraz skonfigurowany w trybie serwera i może scentralizować dzienniki od zdalnych klientów. W następnym artykule zobaczymy, jak skonfigurować klienta RSYSLOG na serwerze Centos/Rhel 7.

Korzystanie z serwera RSYSLOG jako centralnego punktu monitorowania zdalnych komunikatów dziennika możesz sprawdzić pliki dziennika i obserwować status zdrowia klientów lub łatwiejsze problemy klienta debugowania, gdy systemy się ulegają awarii lub są pod jakimś atakiem.