Zdalne logi - rsyslog
13.06.2013 14:58
Od długiego czasu zbierałem się za przesyłanie logów do zdalnego systemu. Nie wiem dlaczego tak to odwlekałem biorąc pod uwagę że całość zajęła około 30 minut wraz z przejrzeniem dokumentacji.
Jaki to ma cel?
Dla tych co nie wiedzą o co chodzi to już wyjaśniam. Różne urządzenia posiadają opcje podglądu logów i przechowują "jakąś" ilość tych danych lokalnie. Dane te często możemy wyświetlić np w routerach jednak nie zawsze jest tam wystarczająca ilość informacji oraz dodatkowo dochodzi problem, że routery posiadają bardzo małą przestrzeń dyskową.
Mając takie dane możemy spokojnie w przyszłości przeglądać informacje co się działo na routerze lub innych urządzeniu które obsługuje przesyłanie logów oraz analizować problemy z konfiguracją.
Instalacja
Wykorzystałem do tego celu Debiana (którego już miałem zainstalowanego w innym celu) i na jego przykładzie opiszę całość, jednak dużo nie różni się to na innych dystrybucjach. Debian domyślnie ma zainstalowanego rsyslog jednak gdyby go nie było to instalujemy go w następujący sposób:
[code=]apt-get install rsyslog[/code]
Możemy jeszcze pobrać dokumentacje:
[code=]apt-get install rsyslog-doc[/code]
Konfiguracja
Plik konfiguracyjny znajdziemy w /etc/rsyslog.conf.
W moim przypadku w konfiguracji następujące rzeczy włączyłem:
[code=]$ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog # provides kernel logging support (previously done by rklogd) $ModLoad imudp # provides UDP syslog reception $UDPServerRun 514 $ModLoad imtcp # provides TCP syslog reception and GSS‑API (if compiled to support it) $InputTCPServerRun 514[/code]
Po powyższym kodzie można zauważyć, że zostało uruchomione logowanie lokalne, odbiór logów po UDP i TCP na porcie 514 (domyślny).
Pozostało jeszcze do ustawienia informacja gdzie zapisywać dane z routera/firwalla:
[code=]if $fromhost-ip startswith '192.168.1.1' then /var/log/router-main.log[/code]
Wynika z tego, że dane z adresu 192.168.1.1 będą zapisywane do pliku router-main.log.
Po całej operacji jedynie pozostanie przeładowanie konfiguracji poleceniem service rsyslog reload.
Konfiguracja po stronie firewalla/routera
W moim przypadku konfigurowałem urządzenie D‑Link DFL‑1660.
W menu System > Log and Event Receivers stworzyłem nową pozycję i wpisałem adres IP i port serwera rsyslog.
Tyle w kwestii konfiguracji, od teraz wszystkie logi będą wysyłane na wskazany serwer.
Podsumowanie
To co tutaj opisałem jest generalnie bardzo malutkim kawałkiem możliwości. Dane do pliku z logiem można zapisywać na bazie szablonów i wzorców czyli dla różnych informacji możemy generować różne pliki o odpowiednich nazwach. Jeszcze jedna mała uwaga, że w przypadku gdy zamiast rsyslogd pracował syslogd trzeba będzie wyłączyć syslogd.