1/50
Logowanie: centralizacja logów i analiza w czasie rzeczywistym
Cel slajdu: Slajd omawia zagadnienie „Logowanie: centralizacja logów i analiza w czasie rzeczywistym” w kontekście: Centralne zarządzanie logami sieciowymi.

Centralne zarządzanie logami sieciowymi

Architektura rejestracji zdarzeń, protokoły Syslog i analiza strumieniowa w nowoczesnej infrastrukturze IT

  • Fundament bezpieczeństwa i audytu: dzienniki zdarzeń stanowią ważne źródło wiedzy o stanie systemów, aktywności użytkowników oraz próbach naruszenia integralności środowiska teleinformatycznego.
  • Ewolucja protokołu Syslog: od klasycznego standardu BSD zdefiniowanego w RFC 3164 do nowoczesnego, rozszerzalnego standardu IETF opisanego w RFC 5424 z precyzją czasu do ułamków sekundy, ze znacznikiem strefy czasowej oraz z danymi ustrukturyzowanymi.
  • Koegzystencja demonów systemowych: współpraca tradycyjnego mechanizmu rsyslog z nowoczesnym, binarnym dziennikiem systemd-journald.
  • Transmisja sieciowa: mechanizmy transportu przez UDP i TCP (port 514) oraz bezpieczny kanał szyfrowany TLS zgodny z RFC 5425 na dedykowanym porcie 6514.
  • Nowoczesna analityka i SIEM: centralizacja z wykorzystaniem wyspecjalizowanych narzędzi takich jak stos Elastic (Elasticsearch, Logstash, Kibana), Graylog oraz Grafana Loki.
  • Zgodność prawno-regulacyjna: spełnienie rygorystycznych wymogów RODO/GDPR, Ustawy o Krajowym Systemie Cyberbezpieczeństwa (KSC), dyrektywy unijnej NIS 2 oraz standardów ISO/IEC 27001 i PCI DSS.
Logowanie: centralizacja logów i analiza w czasie rzeczywistym: centralizacja logów i analiza w czasie rzeczywistym: Slajd przedstawia zagadnienie Centralne zarządzanie logami sieciowymi w ramach tematu Logowanie: centralizacja logów i analiza w czasie rzeczywistym na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
2/50
Cel warsztatu - zarządzanie bezpieczeństwem przez logi sieci
Cel slajdu: Slajd określa wymagane efekty uczenia się, czyli wiedzę i umiejętności, które uczestnik opanuje po zajęciach i laboratorium.

Praktyczne cele warsztatu z logów

Nabycie kompetencji projektowania, konfiguracji i diagnostyki centralnych systemów rejestracji zdarzeń

  • Zrozumienie semantyki i formatu: dogłębne opanowanie specyfikacji Syslog według standardów RFC 3164 oraz RFC 5424, w tym kodowania kategorii (Facility) i poziomów ważności (Severity).
  • Wdrożenie bezpiecznej transmisji sieciowej: opanowanie konfiguracji klient-serwer w oparciu o protokoły TCP/UDP oraz szyfrowany kanał TLS (RFC 5425).
  • Zarządzanie cyklem życia logu: automatyzacja rotacji, kompresji i retencji archiwów przy użyciu demona logrotate oraz mechanizmów limitowania przestrzeni w systemd-journald.
  • Biegłość w odpytywaniu dzienników: sprawne posługiwanie się narzędziem journalctl z zaawansowanymi filtrami czasowymi, metadanymi jednostek systemd oraz potokami strumieniowymi w BASH.
  • Analiza śledcza i wykrywanie intruzji: identyfikacja anomalii, rozpoznawanie ataków typu brute-force, eskalacji uprawnień oraz prób zacierania śladów przez intruzów w systemie.
Cel warsztatu - zarządzanie bezpieczeństwem przez logi sieci: Slajd przedstawia zagadnienie Praktyczne cele warsztatu z logów w ramach tematu Cel warsztatu - zarządzanie bezpieczeństwem przez logi sieci na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
3/50
Agenda - plan prezentacji i laboratorium
Cel slajdu: Slajd przedstawia kolejność omawianych zagadnień i wskazuje miejsce bieżącego tematu w strukturze wykładu.

Plan prezentacji krok po kroku

Struktura modułowa: od podstaw teoretycznych do ćwiczeń praktycznych i wdrożeń produkcyjnych

  • Moduł I: Teoria i standardy rejestracji zdarzeń (slajdy 1–20):
    • Geneza standardu Syslog, specyfikacje RFC 3164 i RFC 5424;
    • Kategorie źródeł (Facility 0–23), poziomy ważności (Severity 0–7) oraz obliczanie wartości PRI;
    • Zagrożenia bezpieczeństwa: zacieranie śladów przez intruzów, konieczność natychmiastowej centralizacji;
    • Organizacja katalogu /var/log, zarządzanie retencją i automatyczna rotacja w logrotate.
  • Moduł II: Nowoczesne podsystemy logowania w Linuksie (slajdy 21–30):
    • Architektura demona rsyslog i składnia reguł RainerScript;
    • Binarny dziennik systemd-journald, struktura metadanych i narzędzie journalctl;
    • Porównanie oraz scenariusze integracji hybrydowej rsyslog i journald.
  • Moduł III: Sieciowa centralizacja i stosy analityczne (slajdy 31–38):
    • Port 514 UDP/TCP oraz port 6514 TLS (RFC 5425), moduły wejściowe imudp i imtcp;
    • Współczesne platformy analityczne: Elastic Stack (ELK), Graylog oraz Grafana Loki.
  • Moduł IV: Praktyczne laboratorium konfiguracji sieciowej (slajdy 39–44):
    • Wdrożenie środowiska klient-serwer, dynamiczne szablony katalogów, testy narzędziem logger.
  • Moduł V: Diagnostyka i zestawienia inżynierskie (slajdy 45–50):
    • Rozwiązywanie problemów (uprawnienia, gniazda, firewall) oraz syntetyczne ściągawki (Cheat Sheets).
Agenda - plan prezentacji i laboratorium: Slajd przedstawia zagadnienie Plan prezentacji krok po kroku w ramach tematu Agenda - plan prezentacji i laboratorium na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
4/50
Koncepcja sysloga - system rejestracji zdarzeń
Cel slajdu: Slajd omawia zagadnienie „Koncepcja sysloga - system rejestracji zdarzeń” w kontekście: Fundament rejestracji zdarzeń.

Fundament rejestracji zdarzeń

Standardy architektoniczne IETF: separacja emisji, transportu i składowania informacji

  • Geneza protokołu: opracowany w latach 80. przez Erica Allmana w ramach projektu Sendmail dla systemu BSD Unix jako prosty i uniwersalny mechanizm raportowania zdarzeń systemowych.
  • Standaryzacja IETF:
    • RFC 3164 (2001 r., The BSD Syslog Protocol) – formalny opis powszechnie stosowanego, historycznego formatu tekstowego przesyłanego zwykle przez UDP;
    • RFC 5424 (2009 r., The Syslog Protocol) – zmodernizowany standard wprowadzający formalną składnię ABNF, kodowanie UTF-8, precyzyjne znaczniki czasu ISO 8601 ze strefą czasową oraz sekcję danych ustrukturyzowanych (STRUCTURED-DATA).
  • Zasada dekompozycji: całkowite oddzielenie logiki aplikacji generującej komunikat od mechanizmu jego kolejkowania, filtrowania, szyfrowania i fizycznego zapisu.
  • Model trójwarstwowy IETF:
    • Originator: generator komunikatu (jądro, demon, aplikacja);
    • Relay: węzeł pośredniczący (agregacja, transformacja, routing);
    • Collector / Receiver: węzeł docelowy archiwizujący lub indeksujący logi.
  • Uniwersalność: wszechobecny standard implementowany w systemach Unix/Linux, Windows (poprzez agentów), routerach, przełącznikach, zaporach sieciowych oraz urządzeniach IoT.
Koncepcja sysloga - system rejestracji zdarzeń: Slajd przedstawia zagadnienie Fundament rejestracji zdarzeń w ramach tematu Koncepcja sysloga - system rejestracji zdarzeń na przykładach poleceń oraz diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
5/50
Wyścig zbrojeń - administrator kontra haker
Cel slajdu: Slajd omawia zagadnienie „Wyścig zbrojeń - administrator kontra haker” w kontekście: Walka o logi i ślady ataku.

Walka o logi i ślady ataku

Dynamika ataku teleinformatycznego: logi jako podstawowy dowód intruzji i cel sabotażu

  • Asymetria konfliktu: administrator dąży do zarejestrowania pełnej telemetrii zdarzeń; napastnik traktuje niszczenie lub fałszowanie logów jako priorytet fazy poeksploatacyjnej (Post-Exploitation).
  • Słabość składowania lokalnego: uzyskanie przez atakującego uprawnień administratora (konto root w Linuksie lub SYSTEM w Windows) daje mu pełną techniczną kontrolę nad lokalnymi plikami w katalogu /var/log.
  • Taktyka MITRE ATT&CK T1070: Indicator Removal on Host – bezpośrednie kasowanie plików, zerowanie dzienników, selektywna edycja wpisów i modyfikacja metadanych w celu zatarcia wskaźników kompromitacji (IoC).
  • Zasada niezaprzeczalności (Non-repudiation): bez bezpiecznej, natychmiastowej transmisji logów poza atakowaną maszynę dowody procesowe mogą zostać bezpowrotnie utracone.
  • Strategia obronna: natychmiastowe przesyłanie zdarzeń do zdalnego serwera w architekturze WORM (Write Once, Read Many) uniemożliwia zatarcie śladów nawet po pełnym przejęciu lokalnego hosta.
Wyścig zbrojeń - administrator kontra haker: Slajd przedstawia zagadnienie Walka o logi i ślady ataku w ramach tematu Wyścig zbrojeń - administrator kontra haker na przykładach poleceń oraz diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
6/50
Niszczenie śladów lokalnie - metody i skutki
Cel slajdu: Slajd omawia zagadnienie „Niszczenie śladów lokalnie - metody i skutki” w kontekście: Zatarcie logów przez intruza.

Zatarcie logów przez intruza

Typowe techniki manipulacji lokalnymi dziennikami i ich implikacje dla informatyki śledczej

# 1. Brutalne skasowanie plików logów
rm -rf /var/log/*

# 2. Obcięcie pliku do zera z zachowaniem i-węzła (brak wpisu o usunięciu)
cat /dev/null > /var/log/auth.log
truncate -s 0 /var/log/syslog

# 3. Wymuszone wyczyszczenie binarnego dziennika journald
journalctl --rotate && journalctl --vacuum-time=1s

# 4. Fałszowanie znaczników czasu (Timestomping)
touch -r /bin/ls /var/log/syslog
  • Metody destrukcyjne: usunięcie plików za pomocą rm lub zerowanie przez przekierowanie strumienia z /dev/null bądź truncate.
  • Manipulacja podsystemem journald: wywołanie natychmiastowej rotacji połączone z retencją zredukowaną do jednej sekundy usuwa wszystkie dotychczasowe wpisy.
  • Fałszowanie metadanych (Timestomping): manipulacja czasem modyfikacji (mtime) i dostępu (atime) za pomocą touch w celu zmylenia analityków.
  • Edycja plików binarnych: bezpośrednia modyfikacja struktur w /var/log/wtmp i /var/log/lastlog za pomocą wyspecjalizowanych narzędzi (logcleanery).
  • Skutki operacyjne: brak możliwości rekonstrukcji osi czasu incydentu (Timeline Reconstruction) i utrata wartości dowodowej w sądzie.
Niszczenie śladów lokalnie - metody i skutki: Slajd przedstawia zagadnienie Zatarcie logów przez intruza w ramach tematu Niszczenie śladów lokalnie - metody i skutki na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
7/50
Celowość natychmiastowej centralizacji zdalnej
Cel slajdu: Slajd uzasadnia konieczność natychmiastowego przekazywania logów na serwer centralny oraz przedstawia wydzieloną sieć zarządzania i kontrolę dostępu do niej.

Logi poza zasięgiem atakującego

Architektura odizolowanego składowania telemetrii w infrastrukturze o wysokim reżimie bezpieczeństwa

  • Transmisja w czasie rzeczywistym: logi są przesyłane strumieniowo na serwer centralny natychmiast w momencie wygenerowania zdarzenia przez jądro lub aplikację.
  • Separacja stref sieciowych: centralny serwer logów ulokowany w wydzielonym, ściśle chronionym segmencie (dedykowany VLAN Management / OOB) z asymetrycznymi regułami zapory sieciowej (ruch dozwolony wyłącznie w stronę kolektora).
  • Zasada podziału obowiązków (Separation of Duties): lokalny administrator maszyny źródłowej nie posiada uprawnień dostępowych do centralnego serwera logów ani konsoli SIEM.
  • Zasada czterech oczu: dostęp do skorelowanych dzienników wymaga autoryzacji niezależnego zespołu operacji bezpieczeństwa (SOC/CERT).
  • Detekcja zaniku strumienia (Silent Host Detection): automatyczne generowanie incydentu o najwyższym priorytecie w przypadku nagłego zaprzestania wysyłania logów przez chroniony węzeł.
  • Zgodność z normami: spełnienie rygorystycznych wymogów prawnych i audytowych (RODO art. 32, KSC, PCI DSS v4.0 wymóg 10, ISO/IEC 27001 załącznik A.8.15).
Celowość natychmiastowej centralizacji zdalnej: Slajd przedstawia zagadnienie Logi poza zasięgiem atakującego w ramach tematu Celowość natychmiastowej centralizacji zdalnej na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
8/50
Zalety centralizacji logów
Cel slajdu: Slajd omawia zagadnienie „Zalety centralizacji logów” w kontekście: Bezpieczeństwo i audyt w jednym miejscu.

Bezpieczeństwo i audyt w jednym miejscu

Operacyjne, analityczne i ekonomiczne korzyści wdrożenia jednolitego repozytorium zdarzeń

  • Bezpieczeństwo i nienaruszalność dowodowa: przechowywanie logów poza atakowanym węzłem zabezpiecza integralność danych dla celów audytu i postępowań wyjaśniających.
  • Pojedynczy punkt wglądu (Single Pane of Glass): wyeliminowanie konieczności indywidualnego logowania się przez SSH na dziesiątki lub setki maszyn w celu odszukania przyczyn awarii.
  • Wielosystemowa korelacja zdarzeń: łączenie pozornie niepowiązanych anomalii z zapór sieciowych, kontrolerów domeny, serwerów WWW, baz danych i przełączników w jeden logiczny ciąg incydentu.
  • Ujednolicona polityka retencji: scentralizowana kontrola nad cyklem życia logów (np. 12 miesięcy zgodnie z wymogami prawnymi i regulacjami branżowymi).
  • Zaawansowana telemetria i analityka: zasilanie zaawansowanych systemów SIEM/SOAR, indeksowanie pełnotekstowe oraz detekcja anomalii oparta na modelach statystycznych i uczeniu maszynowym.
  • Optymalizacja zasobów produkcyjnych: zdjęcie z węzłów aplikacyjnych obciążenia związanego z długoterminowym składowaniem gigabajtów danych na dyskach lokalnych.
Zalety centralizacji logów: Slajd przedstawia zagadnienie Bezpieczeństwo i audyt w jednym miejscu w ramach tematu Zalety centralizacji logów na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
9/50
Przepływ komunikatu syslog - od aplikacji do pliku
Cel slajdu: Slajd omawia zagadnienie „Przepływ komunikatu syslog - od aplikacji do pliku” w kontekście: Droga logu od programu do pliku.

Droga logu od programu do pliku

Architektura przetwarzania lokalnego: gniazdo UNIX domain, jądro i silnik reguł rsyslog

  • Emisja komunikatu: proces przestrzeni użytkownika wywołuje standardową funkcję biblioteczną syslog(3) z glibc lub bezpośrednio zapisuje dane do specjalnego gniazda systemowego.
  • Gniazdo lokalne /dev/log: gniazdo domeny Uniksa typu datagramowego (AF_UNIX, SOCK_DGRAM) zapewniające wysoce wydajną komunikację międzyprocesową w pamięci operacyjnej bez narzutu stosu sieciowego TCP/IP.
  • Moduł odbiorczy rsyslog: demon rsyslogd nasłuchuje na gnieździe za pośrednictwem dedykowanego modułu wejściowego imuxsock.
  • Silnik dopasowania reguł: rsyslog parsuje odebrany komunikat, wyodrębnia metadane (Facility, Severity, znacznik czasu, proces) i porównuje z zdefiniowanymi selektorami oraz filtrami RainerScript.
  • Wykonanie akcji:
    • Zapis synchroniczny lub buforowany do pliku w /var/log/;
    • Przekazanie komunikatu do potoku nazwanego (FIFO) lub bazy danych (np. MySQL/PostgreSQL);
    • Ekspedycja pakietu przez sieć na centralny serwer logowania;
    • Odrzucenie komunikatu (dyrektywa stop lub znak dyskontynuacji ~ w starszej składni).
Przepływ komunikatu syslog - od aplikacji do pliku: Slajd przedstawia zagadnienie Droga logu od programu do pliku w ramach tematu Przepływ komunikatu syslog - od aplikacji do pliku na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
10/50
Przepływ komunikatu syslog przez sieć
Cel slajdu: Slajd omawia zagadnienie „Przepływ komunikatu syslog przez sieć” w kontekście: Transmisja syslog przez sieć.

Transmisja syslog przez sieć

Formaty adresowania celów sieciowych, protokoły transportowe i topologia kaskadowa

# 1. Tradycyjny przekaz UDP (port domyślny 514, RFC 5426)
authpriv.* @192.168.1.100:514

# 2. Niezawodny przekaz strumieniowy TCP (RFC 6587)
*.* @@192.168.1.100:514

# 3. Weryfikacja aktywnych połączeń i nasłuchu portu
ss -tulnp | grep 514
  • Składnia docelowa w rsyslog:
    • Prefiks @ (pojedyncza małpa) – bezpołączeniowy transport UDP (RFC 5426);
    • Prefiks @@ (podwójna małpa) – połączeniowy strumień TCP (RFC 6587);
    • Prefiks @@(o) lub moduł omrelp – protokół RELP (Reliable Event Logging Protocol) z potwierdzeniami aplikacyjnymi.
  • Odbiór na serwerze docelowym: załadowanie modułów sieciowych imudp lub imtcp i zdefiniowanie dyrektyw input().
  • Topologia kaskadowa (Relaying / Hierarchical Forwarding): lokalne stacje przesyłają logi do koncentratora oddziałowego (Relay Node), który po wstępnej agregacji i kompresji przekazuje strumień do centralnego klastra SOC.
Przepływ komunikatu syslog przez sieć: Slajd przedstawia zagadnienie Transmisja syslog przez sieć w ramach tematu Przepływ komunikatu syslog przez sieć na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
11/50
Architektura syslog - komponenty i role
Cel slajdu: Slajd omawia zagadnienie „Architektura syslog - komponenty i role” w kontekście: Budowa systemu logowania.

Budowa systemu logowania

Trójwarstwowy model referencyjny IETF i podział odpowiedzialności węzłów sieciowych

  • Warstwa aplikacji (Syslog Application):
    • Originator (źródło / generator): proces generujący zdarzenie (jądro systemu, usługa systemowa, biblioteka aplikacyjna);
    • Relay (przekaźnik / koncentrator): węzeł pośredniczący odbierający komunikaty, filtrujący je, opcjonalnie transformujący i przekazujący dalej;
    • Collector (odbiorca / repozytorium): węzeł docelowy dokonujący trwałego zapisu w plikach, bazach danych lub silnikach indeksujących.
  • Warstwa transportowa (Syslog Transport):
    • Protokół UDP (RFC 5426, port 514) – szybki, bezpołączeniowy;
    • Protokół TCP (RFC 6587, port 514) – połączeniowy z kontrolą przepływu;
    • Protokół TLS (RFC 5425, port 6514) – szyfrowany kanał z obustronnym uwierzytelnieniem certyfikatami X.509.
  • Elastyczność ról: pojedynczy serwer fizyczny lub wirtualny może równocześnie pełnić rolę odbiorcy dla stacji roboczych oraz przekaźnika dla nadrzędnego repozytorium SIEM.
Architektura syslog - komponenty i role: Slajd przedstawia zagadnienie Budowa systemu logowania w ramach tematu Architektura syslog - komponenty i role na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
12/50
Demonstracja: generowanie komunikatu komendą logger
Cel slajdu: Slajd omawia zagadnienie „Demonstracja: generowanie komunikatu komendą logger” w kontekście: Testowanie syslog przez logger.

Testowanie syslog przez logger

Wstrzykiwanie testowych i operacyjnych komunikatów do podsystemu logowania z poziomu powłoki BASH

# 1. Prosty komunikat (domyślnie facility=user, severity=notice)
logger "Inicjalizacja procedury archiwizacji danych"

# 2. Jawne określenie obiektu i poziomu ważności
logger -p local0.err "BŁĄD: Awaria połączenia z bazą rozliczeniową"

# 3. Dodanie identyfikatora aplikacji (TAG) oraz numeru PID
logger -t BACKUP_DAEMON -i -p daemon.warning "Wykryto wolną przestrzeń dyskową poniżej 10%"

# 4. Jednoczesny zapis do sysloga oraz zrzut na standardowe wyjście błędów
logger -s -p auth.crit "Nieautoryzowana próba modyfikacji pliku konfiguracyjnego"

# 5. Bezpośrednie wysłanie komunikatu przez sieć na centralny serwer (UDP; dla TCP służy opcja -T)
logger -n 192.168.1.100 -P 514 -d -p local7.info "Test transmisji sieciowej UDP"
  • Narzędzie standardowe: polecenie logger(1) wchodzi w skład pakietu util-linux i stanowi standardowy interfejs powłoki do funkcji syslog(3).
  • Parametr -p: selektor obiekt.ważność (np. authpriv.alert, local3.info).
  • Parametr -t i -i: narzucenie etykiety procesu (TAG) oraz automatyczne dołączenie numeru PID bieżącego procesu powłoki.
  • Transmisja sieciowa: przełącznik -n (serwer zdalny), -P (port docelowy), -d (datagram UDP) lub -T (strumień TCP).
Demonstracja: generowanie komunikatu komendą logger: generowanie komunikatu komendą logger: Slajd przedstawia zagadnienie Testowanie syslog przez logger w ramach tematu Demonstracja: generowanie komunikatu komendą logger na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
13/50
Struktura protokołu syslog - format wiadomości
Cel slajdu: Slajd omawia zagadnienie „Struktura protokołu syslog - format wiadomości” w kontekście: Budowa komunikatu syslog.

Budowa komunikatu syslog

Ewolucja struktur ramki: porównanie historycznego RFC 3164 oraz znormalizowanego RFC 5424

StandardNagłówek i format polaCharakterystyka techniczna
RFC 3164
(BSD Syslog)
<PRI>TIMESTAMP HOSTNAME TAG: MSG
np. <34>Oct 1 14:15:00 srv1 sshd[123]: Failed password
Format tekstowy ASCII; znacznik czasu bez roku i strefy; limit bufora do 1024 bajtów; brak formalnej sekcji danych strukturalnych.
RFC 5424
(IETF Standard)
<PRI>VER TIMESTAMP HOSTNAME APP-NAME PROCID MSGID [SD] MSG
np. <165>1 2026-10-01T14:15:00.123456+02:00 srv1 app 123 ID01 [audit@32473 ip="10.0.0.1"] Error
Wersjonowany nagłówek; ISO 8601 ze strefą i mikrosekundami; kodowanie UTF-8 (opcjonalny BOM); ustandaryzowane metadane w [STRUCTURED-DATA].
  • Pole PRI (Priority): wartość liczbowa ujęta w nawiasy ostrokątne kodująca obiekt i poziom ważności.
  • Pole TIMESTAMP: w RFC 5424 obowiązkowy format ISO 8601 eliminuje niejednoznaczności strefy czasowej i zmiany czasu letniego/zimowego.
  • Sekcja STRUCTURED-DATA: bloki par klucz-wartość w nawiasach kwadratowych ułatwiające maszynowe parsowanie bez konieczności stosowania zawodnych wyrażeń regularnych.
Struktura protokołu syslog - format wiadomości: Slajd przedstawia zagadnienie Budowa komunikatu syslog w ramach tematu Struktura protokołu syslog - format wiadomości na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
14/50
Etykiety Facility - źródło komunikatu
Cel slajdu: Slajd przedstawia tabelę kategorii Facility (kody 0–23) wraz z ich przeznaczeniem oraz nazewnictwem stosowanym w programach systemowych.

Kategoryzacja źródeł logów

Numeryczna klasyfikacja podsystemów operacyjnych i aplikacyjnych według standardu IETF

KodNazwaPrzeznaczenie i opisKodNazwaPrzeznaczenie i opis
0kernKomunikaty jądra systemu operacyjnego10authprivZdarzenia uwierzytelniania (poufne)
1userKomunikaty na poziomie użytkownika (domyślne)11ftpDemon transferu plików FTP
2mailPodsystem poczty elektronicznej (MTA/MDA)12ntpSynchronizacja czasu NTP
3daemonOgólne demony systemowe (np. DHCP, DNS)13securityAudyt bezpieczeństwa (auditd)
4authAutoryzacja i kontrola dostępu (jawne)14consoleKomunikaty konsoli systemowej
5syslogKomunikaty wewnętrzne demona syslogd15solaris-cronHarmonogram zadań zegarowych
6lprPodsystem buforowania wydruków liniowych16-23local0-7Zarezerwowane do celów lokalnych
7newsPodsystem grup dyskusyjnych USENET16local0Często używane dla zapór i proxy
8uucpHistoryczny podsystem Unix-to-Unix Copy20local4Przełączniki i routery sieciowe
9cronHarmonogramy zadań cyklicznych (cron/at)23local7Urządzenia sieciowe / routing
  • Cel klasyfikacji: kategoryzacja strumieni danych u źródła umożliwiająca niezależny routing i retencję.
  • Różnica auth vs authpriv: auth rejestruje ogólne zdarzenia logowania, natomiast authpriv zawiera wrażliwe dane chronione przed nieuprawnionym wglądem.
  • Pula local0..local7: przestrzeń do dyspozycji administratora dla aplikacji niestandardowych (HAProxy, Nginx, BIND).
Etykiety Facility - źródło komunikatu: Slajd przedstawia zagadnienie Kategoryzacja źródeł logów w ramach tematu Etykiety Facility - źródło komunikatu na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
15/50
Etykiety Severity - poziom ważności komunikatu
Cel slajdu: Slajd omawia zagadnienie „Etykiety Severity - poziom ważności komunikatu” w kontekście: Poziomy ważności alertów.

Poziomy ważności alertów

Ośmiostopniowa hierarchia istotności zdarzeń według RFC 5424 i reguły eskalacji alertów

KodNazwaZnaczenie wg RFCOpis operacyjny i przykłady
0Emergency (emerg / panic)System is unusableAwaria krytyczna jądra (Kernel Panic), uszkodzenie zasilania, zatrzymanie pracy całego hosta.
1Alert (alert)Action must be taken immediatelyWymaga natychmiastowej interwencji: uszkodzenie macierzy RAID, pożar w serwerowni, kompromitacja bazy danych.
2Critical (crit)Critical conditionsStany krytyczne komponentów: awaria dysku zapasowego w macierzy, błąd modułu kryptograficznego.
3Error (err / error)Error conditionsBłędy uniemożliwiające wykonanie konkretnej operacji: brak połączenia z bazą, odmowa zapisu pliku.
4Warning (warning / warn)Warning conditionsOstrzeżenia: wyczerpywanie się zasobów pamięci (poniżej 15%), użycie przestarzałego API, nietypowe zapytanie.
5Notice (notice)Normal but significant conditionZdarzenia normalne, lecz istotne: uruchomienie/zatrzymanie usługi, przeładowanie konfiguracji sieciowej.
6Informational (info)Informational messagesRutynowe komunikaty telemetryczne: udane uwierzytelnienie użytkownika, wykonanie zadania cron.
7Debug (debug)Debug-level messagesSzczegółowa telemetria diagnostyczna przeznaczona dla programistów i analizy głębokich problemów.
  • Hierarchia numeryczna: mniejsza wartość liczbowa oznacza wyższy priorytet i większy stopień krytyczności.
  • Filtrowanie kaskadowe: selektor w rsyslog (np. *.err) domyślnie przechwytuje wskazany poziom oraz wszystkie poziomy o wyższej ważności (err, crit, alert, emerg).
Etykiety Severity - poziom ważności komunikatu: Slajd przedstawia zagadnienie Poziomy ważności alertów w ramach tematu Etykiety Severity - poziom ważności komunikatu na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
16/50
Priorytet (Priority) - kombinacja Facility i Severity
Cel slajdu: Slajd omawia zagadnienie „Priorytet (Priority) - kombinacja Facility i Severity” w kontekście: Priorytet jako suma Facility i Severity.

Priorytet jako suma Facility i Severity

Matematyczna konstrukcja pola PRI w nagłówku protokołu i operacje bitowe

Wzór matematyczny wyznaczania wartości PRI:

PRI = (Facility * 8) + Severity

Odpowiednik w operacjach bitowych: PRI = (Facility << 3) | Severity

Obiekt (Facility)Ważność (Severity)Rachunek matematycznyWartość PRIPakiet Syslog
kern (0)emerg (0)(0 * 8) + 00<0>...
mail (2)crit (2)(2 * 8) + 218<18>...
auth (4)info (6)(4 * 8) + 638<38>...
cron (9)info (6)(9 * 8) + 678<78>...
authpriv (10)alert (1)(10 * 8) + 181<81>...
local0 (16)notice (5)(16 * 8) + 5133<133>...
local7 (23)debug (7)(23 * 8) + 7191<191>...
  • Dekompozycja na serwerze odbiorczym:
    • Obliczenie obiektu: Facility = PRI / 8 (dzielenie całkowitoliczbowe);
    • Obliczenie ważności: Severity = PRI % 8 (reszta z dzielenia / operacja modulo).
Priorytet - kombinacja Facility i Severity (ang. Priority): Slajd przedstawia zagadnienie Priorytet jako suma Facility i Severity w ramach tematu Priorytet (Priority) - kombinacja Facility i Severity na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
17/50
Przykłady komunikatów: kern, auth, mail, cron
Cel slajdu: Slajd omawia zagadnienie „Przykłady komunikatów: kern, auth, mail, cron” w kontekście: Logi z jądra, poczty i cron.

Logi z jądra, poczty i cron

Rzeczywiste wpisy systemowe w formacie Syslog i ich analiza telemetryczna

# 1. Komunikat jądra (Facility=kern=0, Severity=crit=2 => PRI=2)
<2>Oct  1 14:02:11 srv1 kernel: [ 1024.120] Out of Memory: Kill process 2341 (mysqld) score 850

# 2. Uwierzytelnianie SSH (Facility=authpriv=10, Severity=info=6 => PRI=86)
<86>Oct  1 14:05:43 srv1 sshd[4521]: Accepted publickey for admin from 192.168.1.50 port 52314 ssh2: RSA SHA256:abc123xyz...

# 3. Nieudana próba logowania SSH (Facility=authpriv=10, Severity=warn=4 => PRI=84)
<84>Oct  1 14:06:01 srv1 sshd[4530]: Failed password for invalid user root from 203.0.113.15 port 41122 ssh2

# 4. Serwer pocztowy Postfix (Facility=mail=2, Severity=info=6 => PRI=22)
<22>Oct  1 14:10:00 srv1 postfix/smtp[5120]: 3F1A240BC: to=<user@company.pl>, relay=mail.company.pl[192.168.1.25]:25, status=sent (250 2.0.0 Ok)

# 5. Harmonogram zadań CRON (Facility=cron=9, Severity=info=6 => PRI=78)
<78>Oct  1 14:15:01 srv1 CRON[6110]: (root) CMD (/usr/local/bin/backup-database.sh > /dev/null 2>&1)
  • Anatomia wpisu: nagłówek PRI, znacznik czasu, nazwa hosta źródłowego, identyfikator procesu [PID] oraz treść komunikatu.
  • Wskaźniki bezpieczeństwa (IoC): próby logowania na nieistniejące konta ze zdalnych adresów IP (atak brute-force na SSH).
  • Zdarzenia stabilności: mechanizm OOM-Killer jądra wymuszający ubicie pamięciożernych procesów przy braku pamięci RAM.
Przykłady komunikatów: kern, auth, mail, cron: Slajd przedstawia zagadnienie Logi z jądra, poczty i cron w ramach tematu Przykłady komunikatów: kern, auth, mail, cron na przykładach poleceń oraz diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
18/50
Zapis w /var/log - organizacja plików
Cel slajdu: Slajd omawia zagadnienie „Zapis w /var/log - organizacja plików” w kontekście: Struktura katalogu /var/log.

Struktura katalogu /var/log

Standard FHS (Filesystem Hierarchy Standard), różnice dystrybucyjne i formaty binarne

# Podstawowa struktura /var/log w dystrybucjach GNU/Linux:
/var/log/
  syslog         # Główny dziennik systemowy (Debian/Ubuntu)
  messages       # Główny dziennik systemowy (RHEL/Rocky/CentOS)
  auth.log       # Dziennik uwierzytelniania (Debian/Ubuntu, uprawnienia 0640)
  secure         # Dziennik uwierzytelniania (RHEL/Rocky/CentOS)
  kern.log       # Zdarzenia zrzucane przez pierścień jądra (dmesg)
  mail.log       # Transakcje i błędy serwerów pocztowych (Postfix/Exim)
  journal/       # Trwały katalog binarny systemd-journald
  wtmp           # Plik binarny: historia udanych logowań i restartów (last)
  btmp           # Plik binarny: historia błędnych prób uwierzytelnienia (lastb)
  lastlog        # Plik binarny: czas ostatniego logowania każdego konta
  • Konwencja FHS: katalog /var/log jest wyznaczonym miejscem gromadzenia wszystkich dzienników systemowych i aplikacyjnych.
  • Różnice rodzin dystrybucyjnych: Debian/Ubuntu stosuje nazwy syslog i auth.log; systemy z rodziny Red Hat (RHEL, Alma, Rocky, Fedora) stosują messages i secure.
  • Dzienniki binarne: pliki wtmp i btmp nie są tekstem ASCII – ich odczyt wymaga wyspecjalizowanych poleceń systemowych last(1), lastb(1) oraz lastlog(8).
Zapis w /var/log - organizacja plików: Slajd przedstawia zagadnienie Struktura katalogu /var/log w ramach tematu Zapis w /var/log - organizacja plików na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
19/50
Problem obrastania logami i zapchania dysku
Cel slajdu: Slajd omawia zagadnienie „Problem obrastania logami i zapchania dysku” w kontekście: Ryzyko przepełnienia dysku przez logi.

Ryzyko przepełnienia dysku przez logi

Wyczerpanie przestrzeni dyskowej, degradacja wydajności i ataki typu Log Flooding

  • Gwałtowny przyrost wolumenu: mocno obciążony serwer WWW (Nginx/Apache), proxy czy serwer DNS potrafi generować dziesiątki gigabajtów surowych logów dziennie.
  • Katastrofalne skutki przepełnienia /var:
    • Bazy danych (MySQL, PostgreSQL) ulegają natychmiastowemu zatrzymaniu w celu ochrony transakcji przed uszkodzeniem;
    • Menedżery pakietów (APT, DNF) oraz serwer SSH odmawiają działania (brak możliwości utworzenia plików blokad, sesji i wpisów w wtmp);
    • Wyczerpanie tablicy i-węzłów (inodów) przy dużej liczbie małych plików uniemożliwia zapis mimo wolnej przestrzeni bajtowej.
  • Zagrożenie Log Flooding (DDoS na logi): celowe generowanie przez atakującego milionów fałszywych żądań w celu zablokowania serwera lub ukrycia właściwego ataku w szumie informacyjnym.
  • Mechanizmy mitygacji:
    • Wydzielenie osobnego systemu plików (partycji) dla punktu montowania /var/log;
    • Automatyczna rotacja i kompresja archiwów za pomocą logrotate;
    • Ograniczniki przepustowości w rsyslog (Rate Limiting: ratelimit.interval i ratelimit.burst).
Problem obrastania logami i zapchania dysku: Slajd przedstawia zagadnienie Ryzyko przepełnienia dysku przez logi w ramach tematu Problem obrastania logami i zapchania dysku na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
20/50
logrotate - rotacja, kompresja i czyszczenie starych wpisów
Cel slajdu: Slajd omawia zagadnienie „logrotate - rotacja, kompresja i czyszczenie starych wpisów” w kontekście: Automatyczna rotacja plików logów.

Automatyczna rotacja plików logów

Zarządzanie cyklem życia plików dziennika: kompresja, archiwizacja i bezpieczne przeładowanie usług

# /etc/logrotate.d/rsyslog - przykładowa konfiguracja produkcyjna
/var/log/syslog
/var/log/auth.log
{
    rotate 14             # Przechowuj 14 zrotowanych archiwów
    daily                 # Wykonuj rotację codziennie
    missingok             # Ignoruj brak pliku bez zgłaszania błędu
    notifempty            # Nie wykonuj rotacji, jeśli plik jest pusty
    compress              # Kompresuj archiwa za pomocą gzip
    delaycompress         # Odłóż kompresję ostatniego archiwum o 1 cykl
    sharedscripts         # Wykonaj postrotate tylko raz dla całej grupy
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}
  • Zasada działania: narzędzie uruchamiane cyklicznie przez harmonogram systemd (logrotate.timer) lub demona cron (/etc/cron.daily/logrotate).
  • Mechanizm rotacji: zmiana nazwy aktywnego pliku na plik.1, utworzenie nowego pustego pliku z właściwymi uprawnieniami (create) i wysłanie sygnału SIGHUP do demona.
  • Dyrektywa delaycompress: zapobiega uszkodzeniu archiwum, gdy proces logujący jeszcze przez chwilę dopisuje dane do starego deskryptora.
  • Skrypt postrotate: instruuje proces rsyslogd o konieczności zamknięcia dotychczasowych deskryptorów i ponownego otwarcia plików (reopen).
logrotate - rotacja, kompresja i czyszczenie starych wpisów: Slajd przedstawia zagadnienie Automatyczna rotacja plików logów w ramach tematu logrotate - rotacja, kompresja i czyszczenie starych wpisów na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
21/50
Standard rsyslog w nowoczesnych dystrybucjach
Cel slajdu: Slajd omawia zagadnienie „Standard rsyslog w nowoczesnych dystrybucjach” w kontekście: Rsyslog jako domyślny syslogd.

Rsyslog jako domyślny syslogd

Wielowątkowy demon rejestracji zdarzeń o wysokiej wydajności (Rocket-fast System for Log Processing)

  • Następca tradycyjnego sysklogd: opracowany przez Rainera Gerhardsa w 2004 r. jako odpowiedź na ograniczenia wydajnościowe klasycznego demona uniksowego.
  • Podstawowe cechy architektoniczne:
    • Pełna wielowątkowość (Multi-threading) zapewniająca równoległe przetwarzanie tysięcy strumieni danych;
    • Przepustowość przekraczająca milion komunikatów na sekundę na nowoczesnym sprzęcie wielordzeniowym;
    • Asynchroniczne kolejkowanie w pamięci z automatycznym buforowaniem dyskowym (Disk-Assisted Memory Queues) w przypadku awarii sieci;
    • Bogata modularność: moduły wejścia (im...), parsery (pm...), moduły modyfikacji danych (mm...) oraz wyjścia (om...).
  • Standard rynkowy: domyślny podsystem logowania w wiodących dystrybucjach serwerowych: Debian, Ubuntu, Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, SUSE.
  • Zgodność ze standardami: pełna implementacja RFC 3164, RFC 5424, RFC 5425 (TLS) oraz protokołu RELP.
Standard rsyslog w nowoczesnych dystrybucjach: Slajd przedstawia zagadnienie Rsyslog jako domyślny syslogd w ramach tematu Standard rsyslog w nowoczesnych dystrybucjach na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
22/50
Konfiguracja rsyslog - /etc/rsyslog.conf i /etc/rsyslog.d/
Cel slajdu: Slajd omawia zagadnienie „Konfiguracja rsyslog - /etc/rsyslog.conf i /etc/rsyslog.d/” w kontekście: Pliki konfiguracyjne rsyslog.

Pliki konfiguracyjne rsyslog

Hierarchia plików konfiguracyjnych, ewolucja składni i weryfikacja poprawności

# 1. Główny plik konfiguracyjny
/etc/rsyslog.conf

# 2. Katalog reguł modularnych (włączany dyrektywą $IncludeConfig lub include())
/etc/rsyslog.d/
  20-ufw.conf            # Reguły zapory ogniowej
  50-default.conf        # Domyślne reguły dystrybucyjne dla plików /var/log/
  60-remote.conf         # Reguły ekspedycji sieciowej na centralny serwer

# 3. Weryfikacja składni przed restartem usługi (krytyczna dobra praktyka!)
rsyslogd -N1

# 4. Bezpieczny restart demona
systemctl restart rsyslog
  • Porządek leksykograficzny: pliki w /etc/rsyslog.d/ przetwarzane są w kolejności alfabetycznej – numeryczny prefiks (np. 50-, 60-) wymusza właściwą hierarchię reguł.
  • Ewolucja składni:
    • Klasyczna (sysklogd): jednoliniowe selektory i ścieżki (np. mail.* /var/log/mail.log);
    • Dyrektywy starsze (Legacy): konfiguracje ze znakiem dolara (np. $ModLoad imudp) – obecnie wycofywane;
    • Nowoczesna (RainerScript): w pełni ustrukturyzowany język z blokami module(), input(), action() oraz instrukcjami warunkowymi if ... then { ... }.
Konfiguracja rsyslog - /etc/rsyslog.conf i /etc/rsyslog.d/: Slajd przedstawia zagadnienie Pliki konfiguracyjne rsyslog w ramach tematu Konfiguracja rsyslog - /etc/rsyslog.conf i /etc/rsyslog.d/ na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
23/50
Reguły rsyslog - selektor i akcja
Cel slajdu: Slajd omawia zagadnienie „Reguły rsyslog - selektor i akcja” w kontekście: Selektor i akcja w regułach rsyslog.

Selektor i akcja w regułach rsyslog

Konstrukcja filtrów logicznych, matryca selektorów i typy operacji wyjściowych

# 1. Tradycyjna matryca selektor-akcja (facility.severity akcja)
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
mail.err                        /var/log/mail.err

# 2. Nowoczesna składnia RainerScript z filtrem właściwości
if ($programname == "sshd" and $msg contains "Failed") then {
    action(type="omfile" file="/var/log/ssh-attacks.log")
    action(type="omfwd" target="192.168.1.100" port="514" protocol="tcp")
    stop
}

# 3. Zatrzymanie dalszego przetwarzania
local0.*                        stop
  • Selektor tradycyjny:
    • *.info – wszystkie obiekty o poziomie info i wyższym;
    • mail.none – wykluczenie obiektu mail z przetwarzania przez daną regułę;
    • kern.=crit – dokładnie poziom crit (znak = wymusza ścisłe dopasowanie);
    • Modyfikator - przed ścieżką pliku – asynchroniczny zapis bez wywoływania fsync().
  • Instrukcja stop: natychmiastowe zakończenie przetwarzania danego komunikatu w łańcuchu reguł (zastępuje dawny znak dyskontynuacji ~).
Reguły rsyslog - selektor i akcja: Slajd przedstawia zagadnienie Selektor i akcja w regułach rsyslog w ramach tematu Reguły rsyslog - selektor i akcja na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
24/50
Rewolucja systemd-journald - nowa jakość logowania
Cel slajdu: Slajd omawia zagadnienie „Rewolucja systemd-journald - nowa jakość logowania” w kontekście: Systemd-journald jako dziennik binarny.

Systemd-journald jako dziennik binarny

Integralny podsystem logowania systemd: format binarny, automatyczne metadane i ochrona kryptograficzna

  • Integralny składnik systemd: demon systemd-journald działa jako centralny punkt przechwytywania telemetrii zaraz po zainicjowaniu jądra systemu operacyjnego.
  • Format binarny (Append-only Binary Journal):
    • Dane zorganizowane w ustrukturyzowane rekordy z indeksami b-drzew i wbudowaną kompresją bloków (zstd, lz4, xz);
    • Drastycznie wyższa wydajność zapisu w porównaniu z ciągłym formatowaniem tekstu ASCII do plików płaskich.
  • Automatyczne przechwytywanie strumieni usług: każde wyjście stdout i stderr procesu uruchamianego przez jednostkę systemd jest bez dodatkowej konfiguracji przechwytywane i indeksowane w dzienniku.
  • Zaufane metadane jądra i systemd (Trusted Fields):
    • Pola niemodyfikowalne przez aplikację: _PID, _UID, _GID, _COMM, _EXE, _CMDLINE, _SYSTEMD_UNIT, _BOOT_ID, _MACHINE_ID.
  • Tryby składowania (/etc/systemd/journald.conf):
    • Storage=volatile – dziennik wyłącznie w pamięci RAM w katalogu /run/log/journal/ (ulotny po restarcie);
    • Storage=persistent – trwały zapis na dysku w katalogu /var/log/journal/.
Rewolucja systemd-journald - nowa jakość logowania: Slajd przedstawia zagadnienie Systemd-journald jako dziennik binarny w ramach tematu Rewolucja systemd-journald - nowa jakość logowania na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
25/50
Dziennik binarny journald vs tekstowe pliki rsyslog
Cel slajdu: Slajd omawia zagadnienie „Dziennik binarny journald vs tekstowe pliki rsyslog” w kontekście: Dziennik binarny kontra tekstowy.

Dziennik binarny kontra tekstowy

Zestawienie cech architektonicznych: paradygmat ustrukturyzowany vs strumień tekstowy ASCII

Kryterium technicznesystemd-journaldrsyslog
Format danychBinarny, indeksowany, pary klucz-wartośćPłaski tekst (ASCII / UTF-8)
Wydajność zapisuBardzo wysoka (asynchroniczny, brak formatowania)Wysoka (zależna od buforów i fsync)
Wydajność zapytańBłyskawiczna (wyszukiwanie po b-drzewach indeksów)Liniowa (sekwencyjny odczyt przez grep/awk)
Zaufanie do metadanychGwarantowane przez jądro (Trusted Fields: _UID, _PID)Możliwe do sfałszowania przez aplikację
Narzędzia odczytuWymaga dedykowanego narzędzia journalctlDowolne narzędzie POSIX (cat, tail, less, sed)
Routing sieciowyWymaga dodatkowych narzędzi (systemd-journal-upload)Natywny, wysoce rozwinięty (UDP, TCP, TLS, RELP)
Ochrona integralnościNatywny Forward Secure Sealing (FSS)Wymaga zewnętrznych narzędzi lub modułów
Zarządzanie miejscemWbudowana automatyczna retencja i vacuumingZewnętrzny demon logrotate
  • Paradygmat komplementarności: narzędzia te nie wykluczają się wzajemnie, lecz doskonale uzupełniają w modelu hybrydowym.
Dziennik binarny journald vs tekstowe pliki rsyslog: Slajd przedstawia zagadnienie Dziennik binarny kontra tekstowy w ramach tematu Dziennik binarny journald vs tekstowe pliki rsyslog na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
26/50
Odpytywanie journalctl - podstawy
Cel slajdu: Slajd omawia zagadnienie „Odpytywanie journalctl - podstawy” w kontekście: Podstawy journalctl.

Podstawy journalctl

Podstawowe techniki nawigacji i eksploracji binarnego dziennika systemd

# 1. Wyświetlenie całej historii logów (z paginacją less)
journalctl

# 2. Logi wyłącznie z bieżącego uruchomienia systemu (bieżący boot)
journalctl -b

# 3. Logi z poprzedniego uruchomienia systemu (przed ostatnim restartem)
journalctl -b -1

# 4. Lista wszystkich zarejestrowanych sesji uruchomieniowych w bazie
journalctl --list-boots

# 5. Ograniczenie liczby wyświetlanych wpisów od końca (jak tail -n)
journalctl -n 50

# 6. Filtrowanie po bezwzględnym i względnym zakresie czasu
journalctl --since "2026-10-01 08:00:00" --until "2026-10-01 12:00:00"
journalctl --since "15 min ago"
journalctl --since yesterday
  • Narzędzie uniwersalne: journalctl automatycznie dekompresuje i formatuje binarne rekordy do czytelnego widoku tekstowego.
  • Zarządzanie bootami: flaga -b eliminuje konieczność mozolnego oddzielania starych wpisów po awarii serwera.
  • Elastyczność czasowa: argumenty --since i --until akceptują formaty ISO oraz intuicyjne wyrażenia języka naturalnego.
Odpytywanie journalctl - podstawy: Slajd przedstawia zagadnienie Podstawy journalctl w ramach tematu Odpytywanie journalctl - podstawy na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
27/50
Filtry journalctl: --since, -u, -p
Cel slajdu: Slajd omawia zagadnienie „Filtry journalctl: --since, -u, -p” w kontekście: Filtrowanie logów journalctl.

Filtrowanie logów journalctl

Zaawansowana selekcja zdarzeń: filtrowanie po usługach, priorytetach i polach strukturalnych

# 1. Filtrowanie po konkretnej jednostce systemd (Unit)
journalctl -u nginx.service
journalctl -u ssh.service --since today

# 2. Filtrowanie po poziomie ważności (nazwa lub cyfra 0-7)
journalctl -p err -b            # Tylko błędy i wyższe z bieżącego boota
journalctl -p 3 -u apache2       # Od poziomu err w górę dla Apache

# 3. Kwerendy po zaufanych polach strukturyzowanych jądra
journalctl _PID=2451
journalctl _UID=1000 _COMM=sudo

# 4. Łączenie warunków logicznych (spacja = AND, znak + = OR)
journalctl -u nginx.service + -u apache2.service

# 5. Formaty eksportu danych
journalctl -u sshd -o verbose   # Pełna struktura pól każdego rekordu
journalctl -u sshd -o json-pretty -n 1
  • Przełącznik -u (Unit): najpopularniejszy filtr izolujący komunikaty wybranej usługi systemowej wraz z jej procesami potomnymi.
  • Przełącznik -p (Priority): odfiltrowanie szumu informacyjnego i wyodrębnienie wyłącznie anomalii (err, crit, alert, emerg).
  • Formaty wyjściowe -o: format json lub json-pretty umożliwia natychmiastową integrację z potokami przetwarzania danych i narzędziem jq.
Filtry journalctl: --since, -u, -p: --since, -u, -p: Slajd przedstawia zagadnienie Filtrowanie logów journalctl w ramach tematu Filtry journalctl: --since, -u, -p na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
28/50
Ciągły podgląd journalctl -f (follow)
Cel slajdu: Slajd omawia zagadnienie „Ciągły podgląd journalctl -f (follow)” w kontekście: Podgląd logów na żywo.

Podgląd logów na żywo

Śledzenie strumienia zdarzeń w czasie rzeczywistym i techniki monitoringu operacyjnego

# 1. Globalne śledzenie wszystkich nowych zdarzeń w systemie (odpowiednik tail -f)
journalctl -f

# 2. Śledzenie konkretnej usługi na żywo
journalctl -u nginx.service -f

# 3. Śledzenie wyłącznie błędów w czasie rzeczywistym
journalctl -p err -f

# 4. Wyświetlenie 50 ostatnich linii kontekstu, a następnie przejście w tryb follow
journalctl -u ssh.service -n 50 -f

# 5. Ciągły podgląd komunikatów jądra (odpowiednik dmesg -w)
journalctl -k -f

# 6. Ciągły eksport strumienia JSON do potoku analitycznego
journalctl -u app.service -o json -f | grep --line-buffered "ERROR"
  • Przełącznik -f (Follow): utrzymuje otwarty deskryptor dziennika i wypisuje nowe zdarzenia natychmiast po ich zarejestrowaniu.
  • Optymalizacja kontekstu: połączenie parametrów -n <linie> oraz -f pozwala na ocenę stanu usługi bezpośrednio przed rozpoczęciem testów.
  • Śledzenie jądra (-k): dedykowany przełącznik do obserwacji zdarzeń sprzętowych, podłączania urządzeń USB, reguł iptables/nftables oraz komunikatów sterowników.
Ciągły podgląd journalctl -f (ang. follow): Slajd przedstawia zagadnienie Podgląd logów na żywo w ramach tematu Ciągły podgląd journalctl -f (follow) na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
29/50
Porównanie zalet i wad rsyslog vs journald
Cel slajdu: Slajd omawia zagadnienie „Porównanie zalet i wad rsyslog vs journald” w kontekście: Zalety i wady rsyslog i journald.

Zalety i wady rsyslog i journald

Wyczerpująca ocena parametrów eksploatacyjnych w środowiskach serwerowych i chmurowych

Obszar funkcjonalnyMocne strony (Zalety)Ograniczenia i słabości (Wady)
systemd-journald
  • Błyskawiczny zapis i natywne indeksowanie;
  • Automatyczne przechwytywanie stdout/stderr usług;
  • Kryptograficzna ochrona integralności FSS;
  • Zaufane metadane jądra (_PID, _UID, cgroups);
  • Wygodne filtrowanie przez journalctl.
  • Domyślnie ulotny (wymaga jawnej konfiguracji);
  • Format binarny utrudnia odczyt w trybie awaryjnym;
  • Ograniczone możliwości routingu sieciowego;
  • Brak wbudowanych parserów transformacji pól.
rsyslog
  • Bezkonkurencyjny sieciowy silnik routingu (TLS/RELP);
  • Potężny język reguł RainerScript i szablony;
  • Bezpośredni eksport do baz SQL, ELK, Kafka;
  • Czytelność plików płaskich w każdych warunkach;
  • Niezawodne kolejki dyskowe (Disk-Assisted).
  • Brak natywnego indeksowania pól (sekwencyjny odczyt);
  • Metadane mogą być sfałszowane przez proces;
  • Wymaga zewnętrznej konfiguracji rotacji (logrotate);
  • Wymaga jawnego konfigurowania przechwytu stdout.
  • Rekomendacja architektoniczna: model zintegrowany (hybrydowy) łączący zalety lokalnego bufora binarnego z centralnym kolektorem sieciowym.
Porównanie zalet i wad rsyslog vs journald: Slajd przedstawia zagadnienie Zalety i wady rsyslog i journald w ramach tematu Porównanie zalet i wad rsyslog vs journald na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
30/50
Współpraca rsyslog + journald
Cel slajdu: Slajd omawia zagadnienie „Współpraca rsyslog + journald” w kontekście: Integracja rsyslog z journald.

Integracja rsyslog z journald

Wzorce integracji hybrydowej: moduł imjournal oraz mechanizm ForwardToSyslog

# WARIANT A (Zalecany): rsyslog odpytuje journald przez moduł imjournal
# Fragment /etc/rsyslog.conf:
module(load="imjournal" 
       StateFile="/var/lib/rsyslog/imjournal.state"
       Ratelimit.Interval="600" Ratelimit.Burst="20000"
       IgnorePreviousMessages="off")

# WARIANT B (Tradycyjny): journald przekazuje kopię do gniazda /run/systemd/journal/syslog
# Fragment /etc/systemd/journald.conf:
[Journal]
ForwardToSyslog=yes

# Reguła ekspedycji sieciowej w rsyslog:
*.* action(type="omfwd" target="logserver.corp.local" port="514" protocol="tcp")
  • Moduł imjournal: czyta bezpośrednio z bazy journald; plik stanu (StateFile) zapobiega powielaniu lub gubieniu wpisów po restarcie demona.
  • Mechanizm ForwardToSyslog: journald przesyła kopie datagramów do gniazda syslog, skąd rsyslog odbiera je przez imuxsock.
  • Separacja zadań: lokalna diagnostyka przez journalctl, a długoterminowa retencja i centralizacja sieciowa przez rsyslog.
Współpraca rsyslog + journald: Slajd przedstawia zagadnienie Integracja rsyslog z journald w ramach tematu Współpraca rsyslog + journald na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
31/50
Serwery logów (Central Logging Servers)
Cel slajdu: Slajd omawia zagadnienie „Serwery logów (Central Logging Servers)” w kontekście: Centralny serwer logów.

Centralny serwer logów

Wymagania infrastrukturalne, strefy bezpieczeństwa sieciowego i odporność na przeciążenia

  • Rola strategiczna: centralny serwer logów jest kluczowym filarem bezpieczeństwa teleinformatycznego organizacji i głównym punktem audytowym.
  • Wymagania architektoniczne i sprzętowe:
    • Wysoka przepustowość sieciowa (interfejsy 1GbE / 10GbE z obsługą agregacji łączy LACP);
    • Wydajny podsystem wejścia/wyjścia: macierze dyskowe RAID 10 lub ZFS o wysokiej liczbie operacji IOPS do obsługi równoległych zapisów;
    • Odpowiednia alokacja pamięci RAM na bufory systemowe i kolejki asynchroniczne.
  • Izolacja w strefie bezpieczeństwa:
    • Umieszczenie w dedykowanym segmencie sieciowym (Management VLAN / Out-of-Band DMZ);
    • Restrykcyjne reguły zapory sieciowej: zezwolenie na ruch przychodzący wyłącznie na porty 514 (UDP/TCP) oraz 6514 (TLS) z autoryzowanych podsieci;
    • Domyślny zakaz inicjowania przez serwer logów połączeń wychodzących w głąb sieci produkcyjnej, z wyjątkami dla usług niezbędnych (DNS, NTP, aktualizacje, przekazywanie do SIEM).
  • Zgodność z przepisami: realizacja wymogów Ustawy o KSC, dyrektywy NIS 2 oraz art. 32 RODO w zakresie odporności i poufności systemów.
Serwery logów (ang. Central Logging Servers): Slajd przedstawia zagadnienie Centralny serwer logów w ramach tematu Serwery logów (Central Logging Servers) na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
32/50
Architektura klient-serwer w rsyslog
Cel slajdu: Slajd omawia zagadnienie „Architektura klient-serwer w rsyslog” w kontekście: Klient i serwer rsyslog.

Klient i serwer rsyslog

Struktura relacji sieciowej: konfiguracja nadawcy i dynamiczne szablony odbiorcy

# 1. KONFIGURACJA KLIENTA (/etc/rsyslog.d/60-forward.conf)
# Bezpieczna ekspedycja wszystkich logów przez protokół TCP z kolejką dyskową
action(type="omfwd" 
       target="192.168.1.100" 
       port="514" 
       protocol="tcp"
       queue.type="LinkedList" 
       queue.filename="fwd_spool" 
       queue.maxdiskspace="1g" 
       queue.saveonshutdown="on")

# 2. KONFIGURACJA SERWERA (/etc/rsyslog.d/10-remote-ruleset.conf)
# Dynamiczny szablon segregujący pliki według nazwy hosta i aplikacji
template(name="RemoteStore" type="string" 
         string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")

# Dedykowany zestaw reguł dla ruchu przychodzącego z sieci
ruleset(name="remote_in") {
    action(type="omfile" dynaFile="RemoteStore")
}
input(type="imtcp" port="514" ruleset="remote_in")
  • Klient: buforuje zdarzenia w pamięci i na dysku w razie niedostępności serwera.
  • Serwer: wykorzystuje szablony (Templates) do automatycznego tworzenia struktury podkatalogów dla każdego rejestrowanego hosta (/var/log/remote/nazwa_hosta/).
  • Separacja reguł (Rulesets): izolacja ruchu sieciowego od lokalnych reguł serwera eliminuje zanieczyszczanie lokalnego pliku syslog logami obcymi.
Architektura klient-serwer w rsyslog: Slajd przedstawia zagadnienie Klient i serwer rsyslog w ramach tematu Architektura klient-serwer w rsyslog na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
33/50
Port 514 - UDP vs TCP w transmisji logów
Cel slajdu: Slajd omawia zagadnienie „Port 514 - UDP vs TCP w transmisji logów” w kontekście: Port 514 i protokoły transmisji.

Port 514 i protokoły transmisji

Szczegółowa analiza właściwości warstwy transportowej: niezawodność, wydajność i bezpieczeństwo

Właściwość protokołuUDP na porcie 514 (RFC 5426)TCP na porcie 514 (RFC 6587)
Model komunikacjiBezpołączeniowy (Fire-and-forget)Połączeniowy (3-way handshake, sesja)
Gwarancja dostarczeniaBrak (pakiety gubione przy zatorach)Pełna (potwierdzenia ACK i retransmisja ARQ)
Kontrola przeciążeńBrak (ryzyko zalania buforów gniazda)Zaawansowana (okno przesuwne, congestion window)
Odporność na spoofingBardzo niska (fałszowanie adresu IP źródła)Wysoka (wymaga odgadnięcia numerów ISN)
Fragmentacja i rozmiarOgraniczenie do MTU (~1472B danych)Strumieniowanie bez limitu pakietu (MSS)
Narzut pamięci serweraMinimalny (brak tabeli połączeń)Wymaga utrzymywania deskryptora gniazda
Rekomendowane użycieLokalne LAN, stare urządzenia siecioweŚrodowiska produkcyjne, audyt, serwery WWW/DB
Złota zasada inżynierska: W środowisku produkcyjnym i systemach podlegających audytowi (RODO, KSC, PCI DSS) stosuj bezwzględnie protokół TCP (symbol @@) lub szyfrowany TLS na porcie 6514 (RFC 5425).
Port 514 - UDP vs TCP w transmisji logów: Slajd przedstawia zagadnienie Port 514 i protokoły transmisji w ramach tematu Port 514 - UDP vs TCP w transmisji logów na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
34/50
Moduły imudp i imtcp - konfiguracja serwera
Cel slajdu: Slajd omawia zagadnienie „Moduły imudp i imtcp - konfiguracja serwera” w kontekście: Moduły wejściowe rsyslog.

Moduły wejściowe rsyslog

Konfiguracja nasłuchu sieciowego: implementacja UDP, TCP oraz bezpiecznego kanału TLS

# 1. Odbiór tradycyjnego ruchu UDP na porcie 514
module(load="imudp")
input(type="imudp" port="514" address="192.168.1.100")

# 2. Odbiór niezawodnego strumienia TCP na porcie 514
module(load="imtcp")
input(type="imtcp" port="514" address="192.168.1.100")

# 3. Szyfrowany kanał TLS (RFC 5425) na oficjalnym porcie 6514
module(load="imtcp" 
       StreamDriver.Name="gtls" 
       StreamDriver.Mode="1" 
       StreamDriver.AuthMode="x509/name")

global(DefaultNetstreamDriverCAFile="/etc/ssl/certs/ca.pem"
       DefaultNetstreamDriverCertFile="/etc/ssl/certs/server-cert.pem"
       DefaultNetstreamDriverKeyFile="/etc/ssl/private/server-key.pem")

input(type="imtcp" port="6514")
  • Modularność wejść: domyślnie rsyslog nie nasłuchuje na żadnym porcie sieciowym – załadowanie modułów imudp / imtcp jest obowiązkowe.
  • Wiązanie do interfejsu (address=): restrykcja nasłuchu do konkretnego adresu IP uniemożliwia odbiór pakietów z niepowołanych podsieci.
  • Standard TLS (RFC 5425): szyfrowanie strumienia i wzajemna weryfikacja certyfikatów klienta i serwera eliminuje podsłuch i manipulację w tranzycie.
Moduły imudp i imtcp - konfiguracja serwera: Slajd przedstawia zagadnienie Moduły wejściowe rsyslog w ramach tematu Moduły imudp i imtcp - konfiguracja serwera na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
35/50
Współczesne stosy analityczne - ELK Stack
Cel slajdu: Slajd omawia zagadnienie „Współczesne stosy analityczne - ELK Stack” w kontekście: Stos ELK do analizy logów.

Stos ELK do analizy logów

Platforma analizy danych telemetrycznych i korelacji zdarzeń w czasie rzeczywistym (Elastic Stack)

  • Trzy filary ekosystemu ELK:
    • Elasticsearch: wysoce skalowalny, rozproszony silnik wyszukiwania pełnotekstowego i baza dokumentowa JSON oparta na bibliotece Apache Lucene;
    • Logstash: serwerowy procesor potoku ETL (Extract, Transform, Load) przyjmujący dane z setek źródeł, parsujący je filtrami i zasilający magazyn docelowy;
    • Kibana: graficzny interfejs analityczny do eksploracji logów, budowy interaktywnych dashboardów, raportowania oraz zarządzania modułem SIEM.
  • Ekosystem agentów Beats: lekkie procesy zbierające (Filebeat dla logów, Metricbeat dla metryk, Auditbeat dla audytu jądra) wysyłające dane bezpośrednio do Logstasha lub Elasticsearch.
  • Zastosowanie rynkowe: standard w środowiskach chmurowych, klastrach Kubernetes, korporacyjnych SOC oraz centrach przetwarzania danych.
  • Wiodące alternatywy: Graylog (zintegrowany kolektor syslog), Grafana Loki (minimalistyczny, wysoce zoptymalizowany dla kontenerów) oraz Splunk (komercyjny lider).
Współczesne stosy analityczne - ELK Stack: Slajd przedstawia zagadnienie Stos ELK do analizy logów w ramach tematu Współczesne stosy analityczne - ELK Stack na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
36/50
Elasticsearch - indeksowanie i wyszukiwanie
Cel slajdu: Slajd omawia zagadnienie „Elasticsearch - indeksowanie i wyszukiwanie” w kontekście: Indeksowanie logów w Elasticsearch.

Indeksowanie logów w Elasticsearch

Architektura klastra Lucene: indeksy odwrócone, sharding, replikacja i cykl życia danych (ILM)

  • Silnik indeksujący Apache Lucene: serce Elasticsearch tworzące indeksy odwrócone (Inverted Indexes) dla pól tekstowych, co pozwala na błyskawiczne odnajdywanie słów kluczowych w miliardach dokumentów.
  • Format dokumentu JSON: każdy wpis logu jest zorganizowany w ustrukturyzowany dokument z jawnym mapowaniem typów (ip, keyword, text, date, long).
  • Skalowalność horyzontalna (Scale-Out):
    • Sharding: dzielenie dużego indeksu na mniejsze partycje fizyczne (shards) rozpraszane pomiędzy węzły klastra;
    • Replikacja: automatyczne tworzenie kopii zapasowych shardów (replica shards) chroniących przed utratą danych przy awarii węzła.
  • Zarządzanie cyklem życia (Index Lifecycle Management – ILM):
    • Faza Hot: szybkie dyski NVMe, intensywny zapis i bieżące wyszukiwanie;
    • Faza Warm: dyski SSD/HDD, optymalizacja pod kątem rzadszych zapytań audytowych;
    • Faza Cold / Frozen: archiwa tylko do odczytu, skompresowane, tanie macierze masowe;
    • Faza Delete: automatyczne usuwanie po upływie zdefiniowanego okresu retencji (np. 365 dni).
  • Interfejs programistyczny: w pełni sterowalny przez REST API (HTTP/JSON na porcie 9200).
Elasticsearch - indeksowanie i wyszukiwanie: Slajd przedstawia zagadnienie Indeksowanie logów w Elasticsearch w ramach tematu Elasticsearch - indeksowanie i wyszukiwanie na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
37/50
Logstash - odbiór i transformacja logów
Cel slajdu: Slajd omawia zagadnienie „Logstash - odbiór i transformacja logów” w kontekście: Transformacja logów przez Logstash.

Transformacja logów przez Logstash

Trójetapowy potok przetwarzania strumieniowego: Input, Filter i Output

# /etc/logstash/conf.d/syslog-pipeline.conf
input {
  tcp { port => 5140 type => "syslog" }
  beats { port => 5044 }
}

filter {
  if [type] == "syslog" {
    # Parsowanie tekstu za pomocą wzorców wyrażeń regularnych GROK
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{IPORHOST:hostname} %{PROG:program}(?:\[%{POSINT:pid}\])?: %{GREEDYDATA:log_message}" }
    }
    # Normalizacja znacznika czasu do formatu ISO 8601 UTC
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
      target => "@timestamp"
    }
    # Wzbogacanie o geolokalizację na podstawie adresu IP
    geoip { source => "client_ip" }
  }
}

output {
  elasticsearch {
    hosts => ["https://es-node01.corp.local:9200"]
    index => "syslog-%{+YYYY.MM.dd}"
    ssl => true
    ssl_certificate_authorities => "/etc/logstash/ca.crt"
  }
}
  • Filtry Grok: zamieniają surowy tekst na ustrukturyzowane pola zrozumiałe dla analityków.
  • Filtr Date: ujednolica znaczniki czasu ze wszystkich źródeł do wspólnej skali UTC.
  • Filtr GeoIP: wzbogaca adresy IP atakujących o współrzędne geograficzne i państwo.
Logstash - odbiór i transformacja logów: Slajd przedstawia zagadnienie Transformacja logów przez Logstash w ramach tematu Logstash - odbiór i transformacja logów na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
38/50
Kibana - wizualizacja i alternatywy
Cel slajdu: Slajd omawia zagadnienie „Kibana - wizualizacja i alternatywy” w kontekście: Wizualizacja danych w Kibanie.

Wizualizacja danych w Kibanie

Eksploracja zdarzeń, panele operacyjne i przegląd czołowych platform analitycznych

  • Możliwości platformy Kibana:
    • Discover: interaktywne przeszukiwanie milionów logów w czasie rzeczywistym z użyciem języka zapytań KQL (Kibana Query Language) i filtrów boolowskich;
    • Visualize Library: tworzenie wykresów słupkowych, kołowych, linii trendów, tabel pivot oraz map geograficznych rozkładu ruchu sieciowego;
    • Dashboards: konsolidacja dziesiątek metryk na pojedynczym pulpicie operacyjnym dedykowanym dla zespołów NOC i SOC;
    • Elastic Security (SIEM): korelacja reguł bezpieczeństwa z mapowaniem na taktyki MITRE ATT&CK.
  • Wiodące alternatywy rynkowe:
    • Graylog: kompletne narzędzie open-source z wbudowanym serwerem Syslog, prostsze w instalacji i obsłudze w małych i średnich organizacjach;
    • Grafana Loki: ultralekki silnik indeksujący wyłącznie metadane (labels) zamiast treści, idealnie zintegrowany z pulpitami Grafana i środowiskiem Kubernetes;
    • Splunk Enterprise: bezdyskusyjny lider komercyjny rynku SIEM z potężnym językiem SPL (Search Processing Language), lecz wysokim kosztem licencyjnym.
Kibana - wizualizacja i alternatywy: Slajd przedstawia zagadnienie Wizualizacja danych w Kibanie w ramach tematu Kibana - wizualizacja i alternatywy na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
39/50
LAB: Cel i środowisko laboratoryjne
Cel slajdu: Slajd omawia zagadnienie „LAB: Cel i środowisko laboratoryjne” w kontekście: Cel i topologia laboratorium.

Cel i topologia laboratorium

Wdrożenie i walidacja bezpiecznej sieciowej transmisji logów w modelu klient-serwer

# PARAMETRY ŚRODOWISKA LABORATORYJNEGO
# Węzeł 1 (Klient nadawczy):  IP 192.168.1.10/24   (Ubuntu/Debian)
# Węzeł 2 (Serwer centralny): IP 192.168.1.100/24  (Ubuntu/Debian)
# Port transmisji:            TCP 514 (niezawodny strumień)

# Weryfikacja stanu usługi rsyslog na obu węzłach:
systemctl status rsyslog
systemctl is-enabled rsyslog

# Test łączności w warstwie sieciowej L3/L4 (z klienta do serwera):
ping -c 3 192.168.1.100
nc -zvw3 192.168.1.100 514
  • Cel ćwiczenia: konfiguracja niezawodnego przekazywania zdarzeń z klienta do centralnego serwera rsyslog oraz ich segregacja w dedykowanych plikach.
  • Wymagania wstępne: dwie maszyny wirtualne w wyizolowanej sieci wewnętrznej, uprawnienia roota (sudo), aktywna usługa rsyslog.
  • Metodyka weryfikacji: generowanie zdarzeń narzędziem logger, inspekcja socketów przez ss oraz weryfikacja plików docelowych.
LAB: Cel i środowisko laboratoryjne: Cel i środowisko laboratoryjne: Slajd przedstawia zagadnienie Cel i topologia laboratorium w ramach tematu LAB: Cel i środowisko laboratoryjne na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
40/50
LAB: Konfiguracja klienta rsyslog
Cel slajdu: Slajd omawia zagadnienie „LAB: Konfiguracja klienta rsyslog” w kontekście: Konfiguracja klienta rsyslog.

Konfiguracja klienta rsyslog

Wdrożenie reguły ekspedycji sieciowej z lokalnym buforowaniem awaryjnym na kliencie

# Krok 1: Utworzenie modularnego pliku konfiguracyjnego
sudo nano /etc/rsyslog.d/60-central.conf

# Zawartość pliku (z buforem dyskowym na wypadek braku sieci):
$ActionQueueType LinkedList
$ActionQueueFileName srvr_fwd
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
*.* @@192.168.1.100:514

# Krok 2: Weryfikacja poprawności składni konfiguracji
sudo rsyslogd -N1

# Krok 3: Przeładowanie demona rsyslog
sudo systemctl restart rsyslog

# Krok 4: Sprawdzenie statusu usługi po restarcie
systemctl status rsyslog
  • Prefiks @@: wymusza użycie niezawodnego protokołu TCP na porcie 514 (RFC 6587).
  • Dyrektywa $ActionQueueFileName: tworzy bufor na dysku (w katalogu roboczym z $WorkDirectory, zwykle /var/spool/rsyslog/) chroniący przed utratą logów podczas awarii serwera.
  • Test rsyslogd -N1: obowiązkowa kontrola błędów przed zrestartowaniem usługi produkcyjnej.
LAB: Konfiguracja klienta rsyslog: Konfiguracja klienta rsyslog: Slajd przedstawia zagadnienie Konfiguracja klienta rsyslog w ramach tematu LAB: Konfiguracja klienta rsyslog na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
41/50
LAB: Konfiguracja serwera rsyslog
Cel slajdu: Slajd omawia zagadnienie „LAB: Konfiguracja serwera rsyslog” w kontekście: Konfiguracja serwera rsyslog.

Konfiguracja serwera rsyslog

Uruchomienie odbioru sieciowego TCP/UDP i dynamicznej segregacji logów według hostów

# Krok 1: Konfiguracja modułów i szablonu (/etc/rsyslog.d/10-server.conf)
sudo nano /etc/rsyslog.d/10-server.conf

# Włączenie modułów sieciowych
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

# Szablon dynamicznego zapisu plików według nazwy hosta i aplikacji
template(name="RemoteClientLogs" type="string" 
         string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")

# Reguła kierująca logi zdalne do dedykowanego szablonu
if ($fromhost-ip != "127.0.0.1") then {
    action(type="omfile" dynaFile="RemoteClientLogs")
    stop
}

# Krok 2: Przygotowanie uprawnień katalogu docelowego
sudo mkdir -p /var/log/remote
sudo chown -R syslog:adm /var/log/remote
sudo chmod 0750 /var/log/remote

# Krok 3: Weryfikacja składni i restart usługi
sudo rsyslogd -N1 && sudo systemctl restart rsyslog
  • Moduły imudp i imtcp: jednoczesny nasłuch na porcie 514 dla protokołów UDP i TCP.
  • Szablon dynamiczny (dynaFile): tworzy podkatalogi nazwane od adresu lub nazwy klienta (/var/log/remote/klient/).
  • Uprawnienia POSIX: katalog musi należeć do użytkownika syslog i grupy adm.
LAB: Konfiguracja serwera rsyslog: Konfiguracja serwera rsyslog: Slajd przedstawia zagadnienie Konfiguracja serwera rsyslog w ramach tematu LAB: Konfiguracja serwera rsyslog na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
42/50
LAB: Test połączenia - komenda logger
Cel slajdu: Slajd omawia zagadnienie „LAB: Test połączenia - komenda logger” w kontekście: Test transmisji przez logger.

Test transmisji przez logger

Generowanie kontrolowanych zdarzeń testowych na maszynie klienckiej i weryfikacja kanału sieciowego

# 1. Wygenerowanie testowego błędu aplikacji na kliencie
logger -p user.err "TEST_LAB_01: Wykryto błąd autoryzacji bazy danych - stacja kliencka"

# 2. Wygenerowanie zdarzenia o wysokim priorytecie bezpieczeństwa z tagiem
logger -t SEC_AUDIT -i -p authpriv.warning "TEST_LAB_02: Naruszenie uprawnień użytkownika"

# 3. Weryfikacja lokalnego zapisu na kliencie
grep "TEST_LAB" /var/log/syslog
grep "TEST_LAB" /var/log/auth.log

# 4. Sprawdzenie aktywnego połączenia TCP do serwera (port 514)
ss -tanp | grep 514
  • Generowanie zdarzeń: polecenie logger przesyła komunikat do lokalnego gniazda /dev/log, skąd rsyslog przekazuje go do reguł sieciowych.
  • Parametr -p user.err: generuje wpis o priorytecie PRI=(1*8)+3=11.
  • Parametr -p authpriv.warning: generuje wpis o priorytecie PRI=(10*8)+4=84.
  • Weryfikacja gniazda ss -tanp: powinno wykazać gniazdo TCP w stanie ESTABLISHED łączące klienta z adresem 192.168.1.100:514.
LAB: Test połączenia - komenda logger: Test połączenia - komenda logger: Slajd przedstawia zagadnienie Test transmisji przez logger w ramach tematu LAB: Test połączenia - komenda logger na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
43/50
LAB: Weryfikacja na serwerze
Cel slajdu: Slajd omawia zagadnienie „LAB: Weryfikacja na serwerze” w kontekście: Sprawdzenie odebranych logów.

Sprawdzenie odebranych logów

Inspekcja struktury katalogów i zawartości plików odebranych przez centralny kolektor

# 1. Sprawdzenie automatycznie utworzonej struktury katalogów
ls -la /var/log/remote/

# 2. Sprawdzenie plików wygenerowanych dla konkretnego klienta
ls -la /var/log/remote/klient/

# 3. Odczyt odebranych komunikatów testowych
ls /var/log/remote/ # sprawdzenie faktycznej nazwy katalogu (hostname albo IP klienta)
cat /var/log/remote/klient/logger.log cat /var/log/remote/klient/SEC_AUDIT.log # 4. Globalne przeszukanie całego repozytorium zdalnego grep -rn "TEST_LAB" /var/log/remote/ # 5. Ciągły podgląd napływających logów ze wszystkich klientów na żywo tail -f /var/log/remote/*/*.log
  • Dynamiczny podział: obecność katalogu o nazwie klienta potwierdza bezbłędne działanie szablonu dynaFile.
  • Izolacja aplikacji: komunikaty z różnymi tagami trafiają do osobnych plików (logger.log, SEC_AUDIT.log).
  • Inspekcja na żywo: polecenie tail -F /var/log/remote/*/*.log pozwala w czasie rzeczywistym obserwować aktywność całej sieci.
LAB: Weryfikacja na serwerze: Weryfikacja na serwerze: Slajd przedstawia zagadnienie Sprawdzenie odebranych logów w ramach tematu LAB: Weryfikacja na serwerze na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
44/50
LAB: Podsumowanie laboratorium
Cel slajdu: Slajd określa wymagane efekty uczenia się, czyli wiedzę i umiejętności, które uczestnik opanuje po zajęciach i laboratorium.

Efekty laboratorium rsyslog

Synteza rezultatów wdrożenia, weryfikacja celów i metodyka diagnostyki awaryjnej

# ARSENAŁ DIAGNOSTYCZNY ADMINISTRATORA RSYSLOG
# 1. Sprawdzenie konfiguracji pod kątem błędów składniowych
rsyslogd -N1

# 2. Podgląd pakietów w warstwie sieciowej (czy pakiety docierają do interfejsu?)
sudo tcpdump -i any port 514 -nn -vv

# 3. Sprawdzenie wewnętrznego dziennika błędów demona rsyslog
journalctl -u rsyslog.service -e

# 4. Sprawdzenie blokad zapory ogniowej
sudo iptables -L INPUT -v -n | grep 514
sudo ufw status verbose
  • Osiągnięte cele:
    • Skuteczna separacja logów klientów w bezpiecznym repozytorium centralnym;
    • Gwarancja dostarczenia danych w warstwie transportowej dzięki protokołowi TCP;
    • Zabezpieczenie przed przerwami w łączności dzięki lokalnemu buforowi kolejkowemu na dysku klienta.
  • Zasada metodycznej diagnostyki: w przypadku awarii sprawdzaj kolejno: składnię (rsyslogd -N1), gniazda (ss), sieć (tcpdump), zaporę (iptables/ufw) oraz uprawnienia katalogów.
LAB: Podsumowanie laboratorium: Podsumowanie laboratorium: Slajd przedstawia zagadnienie Efekty laboratorium rsyslog w ramach tematu LAB: Podsumowanie laboratorium na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
45/50
Troubleshooting: prawa zapisu w katalogach
Cel slajdu: Slajd omawia zagadnienie „Troubleshooting: prawa zapisu w katalogach” w kontekście: Problemy z prawami do katalogów.

Problemy z prawami do katalogów

Uprawnienia POSIX, upuszczanie przywilejów roota i konteksty bezpieczeństwa SELinux/AppArmor

# 1. Objaw: brak tworzenia nowych katalogów i plików w /var/log/remote/
journalctl -u rsyslog | grep "permission denied"
# Wynik: rsyslogd: error creating directory: Permission denied

# 2. Przyczyna: rsyslog działa jako nieuprzywilejowany użytkownik syslog:adm
ps -ef | grep rsyslogd
# syslog  1245  1  0 10:00 ?  00:00:01 /usr/sbin/rsyslogd -n

# 3. Rozwiązanie uprawnień POSIX (DAC)
sudo mkdir -p /var/log/remote
sudo chown -R syslog:adm /var/log/remote
sudo chmod 0750 /var/log/remote

# 4. Sprawdzenie blokad mechanizmów MAC (SELinux / AppArmor)
# W dystrybucjach RHEL/Rocky (SELinux):
sudo semanage fcontext -a -t var_log_t "/var/log/remote(/.*)?"
sudo restorecon -Rv /var/log/remote

# W dystrybucjach Debian/Ubuntu (AppArmor):
sudo aa-status | grep rsyslog
  • Zasada najmniejszych uprawnień: nowoczesny rsyslog porzuca przywileje roota zaraz po otwarciu gniazd sieciowych i działa z UID użytkownika syslog.
  • Konflikty MAC: restrykcyjne profile SELinux lub AppArmor mogą zablokować zapis do niestandardowych katalogów mimo poprawnych praw POSIX.
Troubleshooting: prawa zapisu w katalogach: prawa zapisu w katalogach: Slajd przedstawia zagadnienie Problemy z prawami do katalogów w ramach tematu Troubleshooting: prawa zapisu w katalogach na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
46/50
Troubleshooting: weryfikacja portu 514 (netstat/ss)
Cel slajdu: Slajd omawia zagadnienie „Troubleshooting: weryfikacja portu 514 (netstat/ss)” w kontekście: Sprawdzenie nasłuchu na porcie 514.

Sprawdzenie nasłuchu na porcie 514

Diagnostyka warstwy transportowej: inspekcja gniazd, protokołów i powiązanych procesów

# 1. Weryfikacja gniazd nasłuchujących za pomocą nowoczesnego narzędzia ss (socket statistics)
sudo ss -tulpn | grep 514

# Przykładowy poprawny wynik:
# udp   UNCONN 0      0      0.0.0.0:514    0.0.0.0:*    users:(("rsyslogd",pid=1245,fd=6))
# tcp   LISTEN 0      25     0.0.0.0:514    0.0.0.0:*    users:(("rsyslogd",pid=1245,fd=7))

# 2. Sprawdzenie tradycyjnym narzędziem netstat (starsze systemy)
sudo netstat -tulpn | grep 514

# 3. Weryfikacja za pomocą narzędzia lsof (lista otwartych plików i deskryptorów)
sudo lsof -i :514

# 4. Sprawdzenie prób połączeń w czasie rzeczywistym
sudo ss -tan '( sport = :514 or dport = :514 )'
  • Przewaga ss nad netstat: polecenie ss pobiera dane bezpośrednio z jądra przez interfejs netlink, działając błyskawicznie nawet przy tysiącach aktywnych połączeń.
  • Interpretacja adresów powiązania:
    • 0.0.0.0:514 – nasłuch na wszystkich dostępnych interfejsach IPv4;
    • 127.0.0.1:514 – błąd konfiguracji (nasłuch wyłącznie lokalny, brak widoczności z sieci);
    • 192.168.1.100:514 – poprawny, dedykowany nasłuch w segmencie zarządzającym.
Troubleshooting: weryfikacja portu 514 (ang. netstat/ss): weryfikacja portu 514 (ang. netstat/ss): Slajd przedstawia zagadnienie Sprawdzenie nasłuchu na porcie 514 w ramach tematu Troubleshooting: weryfikacja portu 514 (netstat/ss) na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
47/50
Troubleshooting: reguły iptables blokujące ruch
Cel slajdu: Slajd omawia zagadnienie „Troubleshooting: reguły iptables blokujące ruch” w kontekście: Blokada portu 514 przez firewall.

Blokada portu 514 przez firewall

Weryfikacja i konfiguracja zapór sieciowych: iptables, nftables, ufw oraz firewalld

# 1. Sprawdzenie liczników pakietów i reguł w iptables
sudo iptables -L INPUT -v -n --line-numbers | grep 514

# 2. Dodanie precyzyjnej reguły zezwalającej na ruch TCP/UDP z sieci klientów (iptables)
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 514 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 514 -j ACCEPT

# 3. Konfiguracja w środowisku Ubuntu/Debian (UFW)
sudo ufw allow from 192.168.1.0/24 to any port 514 proto tcp comment 'rsyslog central TCP'
sudo ufw status verbose

# 4. Konfiguracja w środowisku RHEL/Rocky/AlmaLinux (Firewalld)
sudo firewall-cmd --permanent --add-port=514/tcp
sudo firewall-cmd --permanent --add-port=514/udp
sudo firewall-cmd --reload
  • Ograniczenie źródłowe (Least Privilege): otwieranie portu 514 na cały świat (0.0.0.0/0) jest poważnym błędem bezpieczeństwa – zawsze definiuj maskę zaufanej podsieci.
  • Inspekcja liczników (-v -n): rosnący licznik pakietów (pkts) przy regule DROP dowodzi aktywnego blokowania logów przez zaporę.
Troubleshooting: reguły iptables blokujące ruch: Slajd przedstawia zagadnienie Blokada portu 514 przez firewall w ramach tematu Troubleshooting: reguły iptables blokujące ruch na przykładach poleceń oraz diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
48/50
Cheat Sheet: komendy i flagi journalctl
Cel slajdu: Slajd omawia zagadnienie „Cheat Sheet: komendy i flagi journalctl” w kontekście: Ściągawka poleceń journalctl.

Ściągawka poleceń journalctl

Podręczne zestawienie najważniejszych parametrów i wzorców odpytywania dziennika binarnego

Polecenie i składniaDziałanie i cel operacyjny
journalctl -bWyświetla logi wyłącznie z bieżącego uruchomienia systemu (od ostatniego boota).
journalctl -b -1Logi z poprzedniego uruchomienia systemu (niezastąpione przy analizie awarii).
journalctl --list-bootsTabela wszystkich zarejestrowanych sesji z numerami, identyfikatorami UUID i czasem.
journalctl -u ssh.serviceFiltrowanie logów konkretnej jednostki systemd (wraz z procesami potomnymi).
journalctl -p err -bTylko błędy i stany krytyczne (poziomy emerg, alert, crit, err) z bieżącego boota.
journalctl -fCiągły podgląd strumienia na żywo w czasie rzeczywistym (odpowiednik tail -f).
journalctl -n 100Wyświetlenie ostatnich 100 linii dziennika (odpowiednik tail -n 100).
journalctl --since "1 hour ago"Filtrowanie czasowe: zdarzenia z ostatniej godziny (wspiera formaty względne i ISO).
journalctl -k -bWyświetlenie komunikatów jądra z bieżącej sesji (odpowiednik bufora dmesg).
journalctl -o json-prettyEksport ustrukturyzowanych rekordów do formatu JSON dla skryptów automatyzacji.
journalctl --disk-usageWyświetla całkowity rozmiar plików dziennika zajmowany na dysku.
journalctl --vacuum-time=14dWymuszenie czyszczenia archiwów dziennika starszych niż 14 dni.
Cheat Sheet: komendy i flagi journalctl: komendy i flagi journalctl: Slajd przedstawia zagadnienie Ściągawka poleceń journalctl w ramach tematu Cheat Sheet: komendy i flagi journalctl na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
49/50
Cheat Sheet: opcje rotacji w /etc/logrotate.conf
Cel slajdu: Slajd omawia zagadnienie „Cheat Sheet: opcje rotacji w /etc/logrotate.conf” w kontekście: Ściągawka konfiguracji logrotate.

Ściągawka konfiguracji logrotate

Kluczowe dyrektywy konfiguracyjne i polecenia diagnostyczne demona rotacji logów

Dyrektywa w pliku .confZnaczenie techniczne i zachowanie demona
daily | weekly | monthlyCzęstotliwość rotacji: codzienna, cotygodniowa lub comiesięczna.
rotate 14Liczba przechowywanych zrotowanych plików archiwum przed ich usunięciem.
compressKompresja zarchiwizowanych plików logów (domyślnie algorytmem gzip).
delaycompressOdłożenie kompresji najnowszego archiwum (plik.1) do następnego cyklu rotacji.
dateextDołączanie daty w formacie RRRRMMDD do nazwy archiwum zamiast numeru.
missingokBrak pliku logu nie generuje błędu (przydatne dla opcjonalnych usług).
notifemptyNie wykonuj rotacji, jeśli plik logu jest całkowicie pusty (rozmiar 0 bajtów).
maxsize 100MWymuś rotację, jeśli plik przekroczy 100 MB, nawet przed upływem cyklu czasowego.
create 0640 root admTworzenie nowego pustego pliku logu z określonymi prawami, właścicielem i grupą.
sharedscriptsWymuszenie jednokrotnego wykonania skryptów postrotate dla grupy plików.
postrotate ... endscriptBlok skryptu powłoki wykonywanego po rotacji (np. wysłanie sygnału SIGHUP).
logrotate -d /etc/logrotate.confTryb debugowania / testowy (Dry-Run): symulacja bez modyfikacji plików.
Cheat Sheet: opcje rotacji w /etc/logrotate.conf: opcje rotacji w /etc/logrotate.conf: Slajd przedstawia zagadnienie Ściągawka konfiguracji logrotate w ramach tematu Cheat Sheet: opcje rotacji w /etc/logrotate.conf na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill
50/50
Cheat Sheet: narzędzia BASH do analizy logów na żywo
Cel slajdu: Slajd omawia zagadnienie „Cheat Sheet: narzędzia BASH do analizy logów na żywo” w kontekście: Ściągawka analizy logów w BASH.

Ściągawka analizy logów w BASH

Podstawowy warsztat inżynierski: filtrowanie strumieniowe, parsowanie kolumn i agregacje statystyczne

# 1. Ciągły podgląd wielu plików na żywo z filtrowaniem błędów
tail -f /var/log/syslog /var/log/auth.log | grep --line-buffered -E "Failed|error|CRITICAL"

# 2. Ranking 10 adresów IP najczęściej atakujących usługę SSH (brute-force)
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -n 10

# 3. Zestawienie 10 najaktywniejszych adresów IP w logu serwera WWW
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10

# 4. Monitorowanie częstotliwości błędów w czasie rzeczywistym (odświeżanie co 3 sekundy)
watch -n 3 'tail -n 100 /var/log/syslog | grep -E "ERROR|CRIT" | tail -n 15'

# 5. Wyodrębnianie wybranego zakresu czasu z pliku logu
sed -n '/Oct  1 14:00:00/,/Oct  1 14:30:00/p' /var/log/syslog > /tmp/incydent.log

# 6. Błyskawiczne przeszukiwanie skompresowanych archiwów gzip (.gz) bez ich rozpakowywania
zgrep -i "segfault" /var/log/syslog.*.gz
  • Klasyczny potok uniksowy: połączenie narzędzi grep, awk, sort oraz uniq -c pozwala w kilka sekund wygenerować statystyki bez instalowania zewnętrznego oprogramowania.
  • Narzędzia archiwów: polecenia zgrep, zcat oraz zless umożliwiają przeszukiwanie zrotowanych logów bez marnowania przestrzeni dyskowej na ich dekompresję.
Cheat Sheet: narzędzia BASH do analizy logów na żywo: narzędzia BASH do analizy logów na żywo: Slajd przedstawia zagadnienie Ściągawka analizy logów w BASH w ramach tematu Cheat Sheet: narzędzia BASH do analizy logów na żywo na przykładach konfiguracji i diagnostyki w systemie Linux. Format komunikatu, kategorie i poziomy ważności opisano w RFC 5424, a odbiór i centralizację realizują między innymi rsyslog i dziennik systemd.
ill