Rejestrowanie jest krytycznym aspektem zarządzania serwerem Linux. Komunikaty dziennika są przydatne do analizy przyczyn źródłowych i unikania potencjalnych błędów w przyszłości. Analiza i debugowanie błędów serwera to podstawowa umiejętność, którą powinni posiadać zarówno inżynierowie IT, jak i administratorzy systemów.
Ten przewodnik pokaże Ci, jak skonfigurować zdalny serwer rejestrowania, znany również jako host dziennika, w systemie Linux. Host dzienników umożliwia agregowanie lokalnych dzienników systemu Linux na zdalnym scentralizowanym serwerze w celu ułatwienia dostępu i analizy.
Dlaczego warto mieć dedykowany serwer dziennika?
System operacyjny Linux rejestruje większość działań na serwerze w celu inspekcji i debugowania za pomocą demona syslog (protokół rejestrowania systemu). Więc możesz się zastanawiać, dlaczego potrzebuję dedykowanego serwera do moich dzienników? Oto kilka zalet posiadania dedykowanego serwera rejestrowania:
- Lepsze bezpieczeństwo, ponieważ zdalny serwer rejestrujący ma tylko kilka portów otwartych na zewnątrz.
- Poprawiona wydajność serwera, ponieważ zdalny host rejestrowania nie obsługuje wielu usług poza tymi, które służą do rejestrowania.
- Ułatwia archiwizację i zarządzanie komunikatami dziennika.
Komunikaty dziennika są ważne dla audytu serwerów i bazy danych oraz stanowią kluczową część procedur konserwacji zapobiegawczej infrastruktury serwerowej.
Krok 1: Instalowanie rsyslog w systemie Linux
Ten przewodnik koncentruje się na Ubuntu 20.04, ale proces powinien być prawie taki sam, jeśli używasz innych głównych dystrybucji Linuksa.
rsyslog to usługa zdalnego logowania dla systemu Linux i jest domyślnie preinstalowana w większości nowoczesnych dystrybucji Linuksa, na przykład Ubuntu i innych systemach opartych na Debianie.
Usługa rsyslog to nowoczesny i ulepszony demon dla syslog, który pozwala tylko na lokalne zarządzanie logami. Za pomocą demona rsyslog możesz wysyłać swoje lokalne dzienniki do jakiegoś skonfigurowanego zdalnego serwera Linux.
Jeśli nie masz zainstalowanego rsysloga na swoim komputerze, możesz to łatwo zrobić za pomocą następującego polecenia w dystrybucjach opartych na Debianie:
sudo apt install rsyslog
W systemie Red Hat Linux możesz go zainstalować, wpisując:
mniam zainstaluj rsyslog
W Fedorze i jej pochodnych uruchom:
dnf zainstaluj rsyslog
Aby zainstalować rsyslog w Arch Linux:
tak -S rsyslog
Aby sprawdzić stan rsyslog, uruchom następujące polecenie:
systemctl status rsyslog
Wyjście:
Krok 2: Konfiguracja serwera hosta dziennika
Host dziennika to serwer skonfigurowany do odbierania komunikatów dziennika z innych serwerów lub komputerów. Konfiguracja rsyslog znajduje się w /etc/rsyslog.conf plik.
Możesz otworzyć /etc/rsyslog.conf plik za pomocą dowolny edytor tekstu do wyboru. W tym przewodniku użyjemy Vima.
Będziesz potrzebować podwyższonych uprawnień, aby wprowadzić zmiany w pliku konfiguracyjnym.
Zanim zaczniesz edytować plik konfiguracyjny, powinieneś zrobić kopię zapasową lub kopię pliku. Aby to zrobić, uruchom polecenie:
sudo cp /etc/rsyslog.conf /etc/rsyslog_original.config
Następnie otwórz /etc/rsyslog.conf plik za pomocą edytora tekstu.
sudo vim /etc/rsyslog.conf
Istnieją dwa protokoły, których możesz użyć do wysyłania/odbierania plików dziennika za pomocą rsyslog: TCP i UDP. Ten przewodnik pokazuje, jak skonfigurować oba.
Aby zdalne logowanie działało, nie trzeba konfigurować zarówno protokołu UDP, jak i TCP. Wybierz tylko jeden z dwóch.
Jeśli wolisz używać UDP, poszukaj i odkomentuj następujące wiersze, usuwając wiodące Funt (#) symbol poprzedzający wiersze. Możesz znaleźć te wiersze w sekcji modułów pliku konfiguracyjnego.
moduł (load="imudp")
wejście (type="imudp" port="514")
Jeśli wolisz używać TCP, odkomentuj następujące wiersze, usuwając wiodące Funt (#) symbol znajdujący się na początku wierszy:
moduł (load="imtcp")
wejście (type="imtcp" port="514")
Poniższy rysunek przedstawia plik konfiguracyjny rsyslog skonfigurowany do korzystania z komunikacji UDP:
Następnie skonfiguruj lokalizację, w której rsyslog będzie przechowywać Twoje logi. Aby zapewnić lepszą organizację, należy kategoryzować przychodzące logi według ich pochodzenia. Zdefiniuj szablon w pliku konfiguracyjnym rsyslog, dodając następujące wiersze:
$template zdalne-przychodzące-logi, "/var/log/remote/%HOSTNAME%".log
*.* ?zdalne-przychodzące-logi
Wspomniane wcześniej wiersze polecenia rsyslog do przechowywania dzienników w folderze /var/log/remote/hostname, gdzie nazwa hosta to nazwa klienta zdalnego, który wysyła komunikaty dziennika do hosta dziennika.
Teraz zapisz wprowadzone zmiany. Jeśli używasz Vima, oto jak zapisać i zamknąć plik.
Na koniec uruchom ponownie usługi rsyslog, aby wprowadzone zmiany zaczęły obowiązywać.
sudo systemctl uruchom ponownie rsyslog
Krok 3: Konfiguracja zapory
Jeśli twoja zapora jest włączona, upewnij się, że port, który skonfigurowałeś powyżej, jest w stanie komunikować się ze światem zewnętrznym. Musisz edytować reguły zapory, aby zezwolić na przychodzące logi.
W przypadku dystrybucji opartych na Debianie wystarczy użyć narzędzia UFW, aby włączyć protokół przesyłania UDP lub TCP.
Związane z: Jak skonfigurować zaporę w Ubuntu za pomocą UFW
Jeśli używasz protokołu UDP, uruchom następujące polecenie, gdzie 514 to skonfigurowany numer portu:
sudo ufw 514/udp
Jeśli używasz protokołu TCP na porcie 514, po prostu uruchom:
sudo ufw 514/tcp
W Fedorze możesz użyć firewall-cmd aby osiągnąć podobne wyniki.
firewall-cmd --zone=strefa --add-port=514/udp
W przypadku systemu Red Hat Linux otwórz iptables plik znajdujący się w /etc/sysconfig/iptables za pomocą wybranego edytora tekstu i dodaj następującą regułę:
-A WEJŚCIE -m stan --stan NOWY -m udp -p udp --dport 514 -j AKCEPTUJ
Zrestartuj usługę iptables, aby zmiany zaczęły obowiązywać.
usługa iptables restart
Krok 4: Konfiguracja klienta rejestrującego
Klient to maszyna, która wysyła swoje dzienniki do zdalnego lub scentralizowanego hosta dziennika serwera. Otwórz plik konfiguracyjny rsyslog znajdujący się w /etc/rsyslog.conf:
sudo vim /etc/rsyslog.conf
Dodaj następujący wiersz, jeśli używasz UDP, gdzie 192.168.12.123 to adres IP zdalnego serwera, logi będziesz zapisywać na:
*.* @192.168.12.123:514
Jeśli używasz protokołu TCP, zamiast tego dodaj następujący wiersz. Zauważ, że linia ma dwa @ symbolika.
*.* @@192.168.12.123:514
Zapisz zmiany i uruchom ponownie usługę rsyslog na kliencie za pomocą polecenia:
sudo systemctl uruchom ponownie rsyslog
Krok 5: Przeglądanie komunikatów dziennika na serwerze
Możesz użyć SSH, aby zalogować się do zdalnego serwera i przeglądać logi wysyłane z serwerów klienckich. W tym przypadku rsyslog jest skonfigurowany tak, że przechowuje logi klienta w /var/log/remote katalog zdalnego serwera.
cd /var/logs/remote
Następnie wypisz zawartość katalogu za pomocą polecenie ls:
ls-l
Jak widać w danych wyjściowych, katalog zawiera komunikaty dziennika dla zdalnych serwerów o nazwie andiwa oraz rukuru. Ich pliki dziennika noszą nazwę andiwa.log oraz rukuru.log odpowiednio.
Następnie możesz przeglądać pliki dziennika za pomocą edytora tekstu lub za pomocą Narzędzia do przeglądania plików w systemie Linux takich jak kot lub mniej.
Zdalne rejestrowanie zapewnia większą kontrolę
W tym przewodniku omówiono, jak skonfigurować zdalny serwer rejestrowania (host dziennika) w systemie Linux.
Host dziennika zapewnia lepszą organizację i kontrolę, jeśli chodzi o rejestrowanie. Nawet w scenariuszach, w których system jest uszkodzony lub niedostępny, nadal możesz wyświetlić jego dzienniki z hosta dziennika i dowiedzieć się, co poszło nie tak.
Pierwsze kroki z logowaniem systemowym w systemie Linux
Czytaj dalej
Powiązane tematy
- Linux
- Administracja systemu
- Polecenia Linuksa
O autorze
Mwiza z zawodu zajmuje się tworzeniem oprogramowania i obszernie pisze na Linuksie oraz programowaniu front-end. Niektóre z jego zainteresowań obejmują historię, ekonomię, politykę i architekturę przedsiębiorstwa.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować