📑 Centralizacja logów w systemie Linux za pomocą rsyslog, logrotate i zdalnego logowania
W środowiskach z wieloma serwerami ważne jest, aby logi systemowe i aplikacyjne trafiały do jednego centralnego miejsca. Dzięki temu można:
- szybciej wykrywać awarie i ataki,
- przechowywać logi dłużej (np. zgodność z RODO, ISO, PCI),
- przeszukiwać i analizować dane z całej infrastruktury,
- łatwiej integrować z narzędziami typu SIEM, Grafana Loki, Graylog, ELK.
W tym poradniku:
✅ konfiguracja rsyslog jako serwera i klienta,
✅ zabezpieczenie połączeń,
✅ rotacja logów (logrotate),
✅ przykłady integracji z narzędziami analitycznymi.
🔧 Krok 1: Co to rsyslog?
rsyslog to domyślny system logowania w większości dystrybucji Linuksa. Obsługuje:
- logowanie lokalne i zdalne,
- filtry, formatowanie, routing,
- TLS, autoryzację, zapisy do baz danych i chmur.

🛠️ Krok 2: Konfiguracja serwera rsyslog (odbiornika logów)
1. Otwórz port sysloga (514 UDP i/lub TCP)
sudo ufw allow 514/udp
sudo ufw allow 514/tcp
Lub w nftables:
nft add rule inet filter input udp dport 514 accept
nft add rule inet filter input tcp dport 514 accept
2. Włącz odbieranie logów z sieci
Edytuj plik /etc/rsyslog.conf i odkomentuj (lub dodaj):
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
3. Opcjonalnie – oddzielne pliki dla logów zdalnych
Na końcu pliku /etc/rsyslog.conf:
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
📂 Każda maszyna będzie miała swój katalog w /var/log/remote/.
4. Restart usługi
sudo systemctl restart rsyslog
🖥️ Krok 3: Konfiguracja klienta rsyslog (np. na innych serwerach)
Edytuj /etc/rsyslog.d/99-forward-remote.conf:
*.* @192.168.1.100:514 # dla UDP
# lub
*.* @@192.168.1.100:514 # dla TCP
(Tutaj 192.168.1.100 to IP serwera centralnego.)
Zrestartuj:
sudo systemctl restart rsyslog
🔐 Krok 4: Szyfrowanie i autoryzacja TLS (opcjonalne, dla produkcji)
Aby zabezpieczyć transmisję, można skonfigurować:
- serwer
rsyslogz certyfikatem SSL, - klientów, którzy wysyłają zaszyfrowane logi.
Ten proces obejmuje generowanie kluczy, konfigurację gtls, weryfikację certyfikatów (pełna konfiguracja zasługuje na osobny poradnik).
🔁 Krok 5: Rotacja logów z logrotate
Sprawdź zawartość:
cat /etc/logrotate.d/rsyslog
Dla /var/log/remote/, możesz stworzyć osobny plik:
sudo nano /etc/logrotate.d/remote-logs
Zawartość:
/var/log/remote/*/*.log {
daily
rotate 14
compress
missingok
notifempty
create 0640 syslog adm
sharedscripts
postrotate
systemctl reload rsyslog > /dev/null
endscript
}
📊 Krok 6: Analiza i wizualizacja logów
Zgromadzone logi możesz:
- przeszukiwać ręcznie (
grep,less,journalctl), - przetwarzać automatycznie (
logwatch,fail2ban), - integrować z:
| Narzędzie | Funkcja |
|---|---|
| Graylog | wysoka wydajność, web GUI |
| Grafana Loki | integracja z Prometheus |
| ELK stack | ElasticSearch + Kibana |
| Splunk | dla korporacji, komercyjny |
| Zabbix | alerty, wykresy, SIEM |
💡 Pro tipy
- Loguj tylko to, co potrzebne (filtry w
rsyslog.conf) - Wykrywaj anomalie z użyciem
fail2ban,logwatch,auditd - Przechowuj logi w partycji innej niż
/– unikniesz zapełnienia systemu
✅ Podsumowanie
✔️ Centralizacja logów zwiększa bezpieczeństwo i ułatwia analizę,
✔️ rsyslog + logrotate + filtrowanie = stabilne i elastyczne rozwiązanie,
✔️ Łatwa integracja z zewnętrznymi narzędziami monitorującymi i SIEM.






