Do konfiguracji centralnego serwera logów zabierałem się dość długo. Chyba ze względu na to, że nie był on mi niezbędny. W codziennej pracy wystarczały mi lokalne logi znajdujące się na serwerach oraz logwatch, który codziennie rano wysyłał mi mailowo krótkie podsumowania dotyczące zdarzeń z dnia poprzedniego.
W ostatnim czasie wprowadziłem w firmie ostrzejszą politykę dotyczącą tego co będzie logowane i jak długo będą te informacje przechowywane. Zwiększona szczegółowość oraz długość przechowywania logów spowodowała znaczny wzrost ich objętości co oczywiście przełożyło się na ilość zajmowanego na serwerach miejsca na HDD. Kolejnymi problemami były sposób przechowywania logów, odkopiowywania, backupowania itp.
Rozwiązaniem okazał się już wcześniej wspomniany centralny serwer logów. Do jego budowy wykorzystany został RSyslog obecny w większości dystrybucji Linuxa.
Aby skonfigurować RSyslog w celu odbierania logów musimy wyeedytować plik (w Debianie)
/etc/rsyslog.conf
Pierwszą rzeczą, na którą musimy się zdecydować to protokół, którym będziemy odbierać logi na naszym serwerze logującym. Do wyboru mamy m.in. protokół TCP i UDP (są jeszcze m.in. RELP gwarantujący, że każda wiadomość dotrze do serwera zbierającego logi, więcej informacji można znaleźć w manualu)
W celu uruchomienia nasłuchu RSyslog na protokole UDP musimy dodać/odkomentować poniższe opcje (514 to numer portu, możemy go zmienić):
$ModLoad imudp $UDPServerRun 514
Dla TCP opcje konfiguracyjne wyglądają następująco:
$ModLoad imtcp $InputTCPServerRun 514
RSyslog może działać również na obu protokołach jednocześnie. Wystarczy wtedy dodać/odkomentować obie opcje konfiguracyjne.
Po dokonaniu zmian w pliku konfiguracyjnym restartujemy usługę:
/etc/init.d/rsyslog restart
Po restarcie sprawdzamy czy RSyslog nasłuchuje na zdefiniowanych przez nas portach i protokołach
netstat -antup | grep "rsyslog" udp 0 0 0.0.0.0:514 0.0.0.0:* 24908/rsyslogd udp6 0 0 :::514 :::* 24908/rsyslogd
Teraz czas na skonfigurowanie RSysloga na serwerze, który będzie wysyłał logi do naszego serwera centralnego.
Edytujemy plik:
/etc/rsyslog.conf
Oraz dodajemy wpis
dla UDP
*.* @192.168.8.31:514
dla TCP:
*.* @@192.168.8.31:514
Restartujemy usługę:
/etc/init.d/rsyslog restart
Aby przetestować działanie na serwerze centralnym wydajemy polecenie
tail -f /var/log/syslog
Na serwerze wysyłającym logi:
logger -t TEST "Test ze zdalnego serwera"
Jeśli wszystko działa poprawnie na serwerze centralnym zobaczymy taki oto wpis:
Jun 16 14:50:26 destiny TEST: Test z wysłannika (Data, nazwa hosta, wiadomość)
Dodaj komentarz