Instalace Graylog Open na Debianu 12 (dvouserverové řešení)
Instalace Graylog Open na Debianu 12 (dvouserverové řešení)
V tomto článku si ukážeme instalaci Graylog Open podle oficiální dokumentace Graylog 7.0 pro Debian 12. Použijeme doporučené dvouserverové rozdělení rolí: na prvním serveru poběží Graylog server a MongoDB, na druhém Graylog Data Node.
Tento postup odpovídá základnímu produkčnímu nasazení typu core cluster, nikoliv vysoce dostupnému řešení. Je tedy vhodný tam, kde chceme oddělit vyhledávací vrstvu od aplikační vrstvy, ale nepotřebujeme plnou redundanci.
1. Příprava prostředí
Než začneme, připravíme si dva servery s Debianem 12:
graylog01- Graylog server + MongoDBgraylog02- Graylog Data Node
Je vhodné mít správně nastavené:
- DNS nebo alespoň záznamy v
/etc/hosts - synchronizaci času pomocí NTP
- firewall mezi servery
V minimální variantě budeme potřebovat povolit tyto porty:
- z administrátorského počítače na
graylog01:TCP/9000 - z
graylog02nagraylog01:TCP/27017 - z
graylog01nagraylog02:TCP/8999 - z
graylog01nagraylog02:TCP/9200
📌 V této architektuře neinstalujeme OpenSearch ručně. O vyhledávací vrstvu se stará Graylog Data Node.
1.1 Vygenerování sdíleného password_secret
Na jednom ze serverů si vygenerujeme tajný řetězec, který použijeme ve stejné podobě v server.conf i datanode.conf:
openssl rand -hex 32
Výstup si uložíme, například:
5dbd6f7a6f8d5f9cc1f1d0f4cb34b04fa5cbb6fcb2a80e4228f84c7f0c40d41d
1.2 Vygenerování hashovaného hesla správce
Na graylog01 si připravíme hash hesla pro účet admin:
echo -n 'SilneAdminHeslo' | sha256sum | cut -d' ' -f1
Tento hash použijeme později jako hodnotu root_password_sha2.
2. Instalace MongoDB na graylog01
Graylog 7.0 v tomto scénáři používá MongoDB pro metadata a konfiguraci. Na serveru graylog01 nejprve přidáme repozitář MongoDB 8.0:
wget -qO - https://www.mongodb.org/static/pgp/server-8.0.asc | sudo tee /etc/apt/trusted.gpg.d/mongodb-server-8.0.asc
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
Poté upravíme vazbu služby tak, aby byla dostupná i z druhého serveru:
# /etc/mongod.conf
net:
port: 27017
bindIp: 127.0.0.1,192.168.10.11
V ukázce je použita IP adresa 192.168.10.11; nahradíme ji skutečnou adresou serveru graylog01.
Službu spustíme a povolíme po startu systému:
sudo systemctl daemon-reload
sudo systemctl enable mongod.service
sudo systemctl restart mongod.service
sudo systemctl status mongod.service
Nakonec je vhodné balíčky MongoDB podržet, aby se neaktualizovaly neplánovaně:
sudo apt-mark hold mongodb-org
3. Instalace Graylog Data Node na graylog02
Graylog Data Node vyžaduje správně nastavený parametr vm.max_map_count:
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Pak přidáme Graylog repozitář a nainstalujeme balíček:
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
3.1 Konfigurace datanode.conf
Do souboru /etc/graylog/datanode/datanode.conf doplníme minimálně tyto hodnoty:
password_secret = <STEJNA_HODNOTA_Z_OPENSSL_RAND>
mongodb_uri = mongodb://graylog01:27017/graylog
opensearch_heap = 4g
📌 mongodb_uri upravíme podle skutečného hostname nebo IP serveru s MongoDB.
📌 password_secret musí být stejný jako na Graylog serveru.
📌 opensearch_heap nastavíme přibližně na polovinu RAM serveru, maximálně však podle sizingu výrobce.
Službu následně zapneme:
sudo systemctl daemon-reload
sudo systemctl enable graylog-datanode.service
sudo systemctl restart graylog-datanode.service
sudo systemctl status graylog-datanode.service
4. Instalace Graylog serveru na graylog01
Na serveru graylog01 přidáme stejný Graylog repozitář i pro aplikační část:
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-server
4.1 Nastavení Java heapu
V souboru /etc/default/graylog-server upravíme velikost heapu podle dostupné RAM. Příklad pro server s menší zátěží:
GRAYLOG_SERVER_JAVA_OPTS="-Xms1g -Xmx1g -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow"
📌 Obvykle volíme přibližně 50 % fyzické RAM, maximálně však podle doporučení Graylogu.
4.2 Konfigurace server.conf
V souboru /etc/graylog/server/server.conf nastavíme hlavní parametry:
password_secret = <STEJNA_HODNOTA_Z_OPENSSL_RAND>
root_password_sha2 = <HASH_ADMIN_HESLA_ZE_SHA256SUM>
http_bind_address = 0.0.0.0:9000
message_journal_max_age = 72h
message_journal_max_size = 90gb
Význam nejdůležitějších voleb:
password_secretje sdílené tajemství používané Graylogemroot_password_sha2je SHA-256 hash hesla účtuadminhttp_bind_addresszpřístupní webové rozhraní na portu9000message_journal_*určují velikost a dobu držení lokální fronty zpráv
Pokud MongoDB běží lokálně a výchozí mongodb_uri vám vyhovuje, není nutné ho měnit. V opačném případě ho nastavíme explicitně.
Graylog server spustíme:
sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl restart graylog-server.service
sudo systemctl status graylog-server.service
5. Dokončení instalace přes webové rozhraní
Po startu Graylog serveru sledujeme log:
sudo tail -f /var/log/graylog-server/server.log
V logu se po startu objeví jednorázové přihlašovací údaje pro úvodní preflight konfiguraci. Poté otevřeme v prohlížeči:
https://graylog01:9000/
V preflight kroku provedeme:
- přihlášení jednorázovými údaji z logu
- potvrzení nebo vytvoření certifikátů pro Data Node
- přiřazení Data Node k instalaci
- dokončení inicializace clusteru
Po dokončení preflightu se do Graylogu přihlašujeme standardně jako:
- uživatel:
admin - heslo: původní heslo, ze kterého jsme vytvořili
root_password_sha2
⚠ password_secret není heslo pro přihlášení do webového rozhraní.
6. Ověření funkčnosti
Po dokončení instalace ověříme, že běží všechny tři klíčové služby:
sudo systemctl status mongod
sudo systemctl status graylog-datanode
sudo systemctl status graylog-server
Zároveň zkontrolujeme:
- zda se Graylog web otevře na
https://graylog01:9000 - zda je v rozhraní vidět připojený Data Node
- zda nevznikají chyby v
/var/log/graylog-server/server.log - zda je možné vytvořit první input a index set
Pokud se Data Node nepřipojí, nejčastější příčinou bývá:
- chyba v
mongodb_uri - blokovaný port
27017,8999nebo9200 - rozdílná hodnota
password_secret - chybějící nebo špatně nastavený
vm.max_map_count
Shrnutí
✅ Dvouserverová instalace Graylog Open v základní podobě používá graylog01 pro Graylog + MongoDB a graylog02 pro Data Node
✅ MongoDB musí být z Data Node dostupné přes TCP/27017
✅ password_secret musí být stejný v server.conf i datanode.conf
✅ Data Node vyžaduje správně nastavený vm.max_map_count
✅ Dokončení instalace probíhá přes webový preflight na https://graylog01:9000