1. Czym jest Graylog?
Graylog to platforma klasy SIEM / log management służąca do centralnego zbierania, przetwarzania, indeksowania i analizowania logów z całej infrastruktury IT. Umożliwia agregację danych z serwerów, urządzeń sieciowych, systemów bezpieczeństwa, aplikacji, kontenerów oraz chmur publicznych.
System pozwala:
- zbierać logi z tysięcy źródeł,
- wyszukiwać dane w czasie rzeczywistym,
- budować dashboardy i raporty,
- tworzyć alerty bezpieczeństwa,
- analizować incydenty,
- spełniać wymagania compliance (np. ISO 27001).
Graylog występuje w wersji:
- Open Source
- Enterprise (rozszerzenia, archiwizacja, reporting, audit log, SSO)
2. Do czego służy Graylog?
1. Centralizacja logów
Zamiast sprawdzać:
/var/log/syslog- logi aplikacyjne
- logi firewalli
- logi Windows Event Viewer
Graylog zbiera wszystko do jednego miejsca.
Obsługiwane źródła:
- Syslog
- GELF
- Beats (Filebeat, Winlogbeat)
- SNMP
- HTTP JSON
- AWS / Azure
- Kubernetes
2. Monitorowanie bezpieczeństwa (SIEM-lite)
Graylog umożliwia:
- wykrywanie prób brute-force
- analizę logowań administracyjnych
- korelację zdarzeń
- alerty o błędach aplikacji
- detekcję anomalii
Nie jest pełnym SIEM jak Splunk czy QRadar, ale w wielu środowiskach zastępuje je skutecznie.
3. Analiza operacyjna
Administratorzy wykorzystują go do:
- wykrywania problemów z aplikacjami
- analizy błędów HTTP 500
- monitorowania wydajności
- diagnozy awarii usług
4. Raportowanie i dashboardy
Możliwość tworzenia:
- dashboardów infrastruktury
- raportów miesięcznych
- wykresów trendów
- statystyk logowań
3. Architektura Graylog
Składniki systemu
Graylog Server
Warstwa aplikacyjna:
- API
- Web UI
- przetwarzanie pipeline
- alerty
- zarządzanie indeksami
Data Node (OpenSearch)
Silnik indeksowania oparty na:
OpenSearch
To on:
- przechowuje dane
- indeksuje logi
- odpowiada za wyszukiwanie
W starszych wersjach używano:
Elasticsearch
MongoDB
Wykorzystywana do:
- przechowywania konfiguracji
- użytkowników
- dashboardów
- ustawień systemu
Tryby pracy
- Single node (małe środowiska)
- Cluster HA
- Multi Data Node
- Load balanced
4. Wymagania sprzętowe
Wymagania zależą od ilości logów (msg/s) oraz retencji danych.
Minimalne (LAB / testy)
- CPU: 2 rdzenie
- RAM: 4–6 GB
- Dysk: 50–100 GB SSD
- 1 Data Node
- 1 MongoDB
Heap dla OpenSearch: 2–3 GB
Mała firma (do 5–10 tys. msg/s)
- CPU: 4–8 rdzeni
- RAM: 16 GB
- Dysk: SSD NVMe
- 1–2 Data Node
- RAID1 / RAID10
Heap:
- 50% RAM (np. 8 GB z 16 GB)
Środowisko średnie (20–50 tys. msg/s)
- CPU: 8–16 rdzeni
- RAM: 32–64 GB
- NVMe enterprise
- 3 Data Node (HA)
- osobny serwer MongoDB
Duże środowiska (SOC)
- 3–9 Data Node
- 128 GB+ RAM
- dyski NVMe klasy enterprise
- osobny load balancer
- replikacja indeksów
Heap OpenSearch
Zasady:
- max 50% RAM
- max 32 GB
- im więcej indeksów → tym większy heap
5. Zalety Graylog
- Open Source
- Nowoczesny interfejs
- Pipeline processing (bardzo mocny mechanizm parsowania)
- Wysoka skalowalność
- REST API
- Integracja z LDAP/AD
- Alerty i powiadomienia
Instalacja i konfiguracja
Zaloguj się do serwera (w mojej konfiguracji do instalacji wykorzystałem serwer Ubuntu). Ustaw strefę czasową komendą:
timedatectl set-timezone UTC
Zainstaluj gnupg oraz curl, potwierdź instalację klawiszem y
apt-get install gnupg curl

Importuj klucz publiczny oraz repozytoria mongodb
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Aktualizuj repozytoria, zainstaluj mongodb
apt-get update
sudo apt-get install -y mongodb-org

Wstrzymaj mongodb
apt-mark hold mongodb-org

Edytuj plik mongod.conf
nano /etc/mongod.conf
Dodaj znak „#”, przed bindIp: 127.0.0.1 oraz dopisz bindIpAll: true (ważne przed napisem bindIpAll, daj dwie spacje). Zapisz plik:

Przeładuj daemona, włącz mongod.service i go wystartuj, na końcu sprawdź status, podanymi komendami. Zielone napisy enable oraz active (running), oznaczają że konfiguracja jest poprawna i można przejść do kolejnych kroków:
systemctl daemon-reload
systemctl enable mongod.service
systemctl start mongod.service
systemctl status mongod.service

Zainstaluj graylog-datanode
wget https://packages.graylog2.org/repo/packages/graylog-7.0-repository_latest.deb
sudo dpkg -i graylog-7.0-repository_latest.deb
sudo apt-get update
sudo apt-get install graylog-datanode

Sprawdź wartość vm.max_map_count, jeśli jest mniejsza niż wartość 262144, ustaw ją komendą podaną niżej:
cat /proc/sys/vm/max_map_count
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count = 262144" | sudo tee /etc/sysctl.d/99-graylog-datanode.conf

Utwórz hasło sekretu komendą, skopiuj hasło, zaraz dodamy je do pliku konfiguracyjnego:
openssl rand -hex 32

Przejdź do pliku konfiguracyjnego podaną komendą. Po spacji wklej wartość skopiowanego hasła w sekcji passsword_secret =
sudo nano /etc/graylog/datanode/datanode.conf

Na samym dole pliku dodaj (podaj cyfrę równą połowie ilości RAM Twojego serwera):
opensearch_heap = 8g

Zapisz plik, ustaw hasło użytkownika root (będzie ono potrzebne do zalogowania się w Graylog), po wykonaniu wpisz hasło i je zapisz lub zapamiętaj!
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

Skopiuj wygenerowany ciąg znaków i wklej do pliku /etc/graylog/datanode/datanode.conf w sekcji (po zanku = spacja) root_password_sha2 =

Po zapisaniu pliku zrestartuj daemona, włącz graylog-datanode.service i wystartuj graylog-datanode
sudo systemctl daemon-reload
sudo systemctl enable graylog-datanode.service
sudo systemctl start graylog-datanode

Zainstaluj graylog-server
apt install graylog-server

Włącz, uruchom oraz sprawdź status graylog-server.service
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service
sudo systemctl status graylog-server.service
Skopiuj i wklej password_secret= oraz root_password_sha2 = z pliku /etc/graylog/datanode/datanode.conf i wklej je po spacji w te same sekcje ale w pliku:
nano /etc/graylog/server/server.conf

W tym samym pliku po dodaniu haseł, znajdź #http_bind_adresses = usuń znak „#” i zmień adres IP na 0.0.0.0

Po zapisaniu pliku zmodyfikuj heap and garbage collection, ustaw wartości równej połowie ilości RAM Twojego serwera Graylog:
nano /etc/default/graylog-server

Po zapisaniu pliku wykonaj te komendy:
sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service
Sprawdź status graylog-server.service, ponownie kolor zielony oznacza prawidłową konfigurację i działanie usługi:
sudo systemctl status graylog-server.service

Przejdź do przeglądarki internetowej wpisz adres IP serwera Graylog i dodaj port :9000

Sprawdź nazwe użytkownika oraz hasło, komendą:
tail /var/log/graylog-server/server.log

Zaloguj się podanymi danymi:

Po zalogowaniu kliknij na Create CA

Ustaw wartość Certificate lifetime, na 365dni oraz kliknij Create policy

Kliknij Provision certificate and continue, ten proces chwile trwa:

Kliknij na Resume startup

Zostaniesz przeniesiony do okna logowania, Username to admin a Password to hasło które utworzyłeś podczas konfiguracji ! Kliknij Sign in

Połączenie Graylog z Proxmox, za pomocą rsyslog/Syslog UDP
Przejdź do sekcji System / Imputs

Z listy wybierz Syslog UDP

Kliknij Launch new input

Nazwij swoje połączenia w Title np. rsyslog oraz w Port, podaj port 8006

Na samym dole okna w sekcji Time Zone (optional), wybierz UTC+01:00 – Europe/Warsaw oraz kliknij Launch Input

Teraz kliknij Set-up input, następnie Create Stream

W sekcji Title nadaj nazwę np. rsyslog i kliknij Next

Finalnie kliknij Start Input oraz Launch Input Diagnosis


Przejdź do sekcji Streams / rsyslog

W prawym górnym roku okna, kliknij Not updating, ustaw interwał na np. 2 seconds (dane będą odświeżane co 2 sekundy)

Przejdź do głównego Node serwera Proxmox (u mnie jest to grupadm2). Kliknij na Shell i zainstaluj rsyslog komendą:
apt install rsyslog -y
Następnie przejdź do folderu /etc/rsyslog.d/
cd /etc/rsyslog.d/
Edytuj plik XX-xxx.conf (nie postfix.conf)
nano xx-xx.conf

Dodaj kod podany poniżej zastąp adres IP adresem Twojego serwera Graylog:
*.*@192.168.1.6:8006;RSYSLOG_SyslogProtocol23Format

Uruchom i zrestartuj systemctl restart rsyslog.service
systemctl restart rsyslog.service
Gotowe! Od tej pory dane z rsyslog Proxmoxa dochodzą do Graylog !

Podsumowanie
Graylog to platforma klasy SIEM / log management służąca do centralnego zbierania, przetwarzania i analizowania logów z całej infrastruktury IT. Umożliwia agregację danych z serwerów, urządzeń sieciowych, aplikacji, systemów bezpieczeństwa, środowisk kontenerowych oraz chmur publicznych. System pozwala na wyszukiwanie danych w czasie rzeczywistym, budowę dashboardów, generowanie raportów, tworzenie alertów bezpieczeństwa oraz wspiera realizację wymagań compliance. Dostępny jest w wersji Open Source oraz Enterprise.
Graylog centralizuje logi z wielu źródeł (m.in. Syslog, GELF, Beats, SNMP, HTTP JSON, AWS, Azure, Kubernetes), eliminując konieczność analizowania ich lokalnie na poszczególnych systemach. Umożliwia wykrywanie prób nieautoryzowanego dostępu, analizę logowań administracyjnych, korelację zdarzeń i detekcję anomalii, pełniąc rolę rozwiązania typu SIEM-lite. Wspiera również analizę operacyjną – diagnozowanie błędów aplikacji, monitorowanie wydajności oraz rozwiązywanie awarii usług.
Architektura systemu opiera się na trzech głównych komponentach:
- Graylog Server – warstwa aplikacyjna (API, Web UI, pipeline, alerty, zarządzanie indeksami),
- Data Node wykorzystujący silnik OpenSearch (wcześniej Elasticsearch) odpowiedzialny za indeksowanie i przechowywanie danych,
- MongoDB – przechowujący konfigurację, użytkowników i ustawienia systemowe.
System może pracować w trybie single node, w klastrze HA, w architekturze z wieloma Data Node lub z load balancerem. Wymagania sprzętowe zależą od liczby przetwarzanych wiadomości (msg/s) i retencji danych – od konfiguracji laboratoryjnych (2 rdzenie CPU, 4–6 GB RAM) po środowiska SOC z wieloma węzłami Data Node, 128 GB+ RAM i dyskami NVMe klasy enterprise. Zaleca się przeznaczenie maksymalnie 50% pamięci RAM na heap OpenSearch (nie więcej niż 32 GB).
Do głównych zalet należą: otwartoźródłowość, skalowalność, rozbudowany mechanizm pipeline processing, REST API, integracja z LDAP/AD oraz rozbudowany system alertów.
Artykuł przedstawia również kompletną procedurę instalacji na Ubuntu, obejmującą konfigurację MongoDB, Data Node, Graylog Server, ustawienia heap, konfigurację bezpieczeństwa (password_secret, root_password_sha2), uruchomienie usług systemowych oraz integrację z Proxmox poprzez rsyslog (Syslog UDP). Po poprawnej konfiguracji możliwe jest centralne odbieranie i analizowanie logów z serwera Proxmox w interfejsie webowym Graylog.
Bezpłatne warsztaty: NMAP – Skanowanie Urządzeń i Portów w Sieci
Dowiedz się, jak wykrywać urządzenia w sieci, skanować porty i identyfikować usługi przy użyciu narzędzia NMAP. Poznasz podstawy skanowania, analizę wyników oraz praktyczne zastosowania w audycie bezpieczeństwa i testach penetracyjnych.
Środa, 18 marca o 14:00

