Graylog w Proxmox

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.

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

Sprawdź szczegóły: https://asdevops.pl/warsztaty/

 

 

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

Sprawdź szczegóły: https://asdevops.pl/warsztaty/

 

 

 

 

Darmowe warsztaty NMAP - Skanowanie Urządzeń i Portów W Sieci

X