Sběr logů pomocí Elastic Agentů přes Fleet¶
Tento postup popisuje nasazení managovaných Elastic Agentů prostřednictvím Fleet Serveru s přesměrováním výstupu do LogMan.io Collectoru přes Logstash output. Agenty spravujete centrálně v Kibana Fleet, logy zpracovává pipeline LogMan.io.
Předpoklady¶
Před zahájením konfigurace je třeba mít k dispozici:
- LogMan.io Collector s povoleným Beats vstupem
- LogMan.io v26.12 nebo vyšší
- Elasticsearch a Kibana ve verzi 8.19 nebo vyšší (kompatibilní s nasazovaným Elastic Agentem)
- Přístup k certifikátové autoritě (CA) používané LogMan.io Collectorem
- Server, na kterém poběží Fleet Server
1. Příprava certifikátů pro Logstash vstup na Collectoru¶
Pro zabezpečenou komunikaci mezi Elastic Agenty (resp. Fleet Serverem) a LogMan.io Collectorem je nutné připravit serverový certifikát Collectoru a klientský certifikát pro Fleet Logstash output.
Kolektor obvykle certifikát již má. U integrovaných kolektorů může být vystaven na jinou IP adresu, než na kterou se zdroje připojují, a proto může být vhodné ho vystavit znovu.
1.1 Aktualizace serverového certifikátu Collectoru¶
Vygenerujte nový CSR s odpovídající IP adresou kolektoru:
openssl req -new \
-key ssl-server-key.pem \
-out server-new.csr \
-subj "/O=TeskaLabs/OU=LogMan.io Collector/CN={INGRESS_IP_ADDRESS}"
Vytvořte konfigurační soubor pro rozšíření certifikátu:
cat > server_ext.cnf << 'EOF'
[ v3_req ]
basicConstraints = critical, CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, keyAgreement
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
subjectAltName = DNS:10.44.170.82
EOF
Hodnotu subjectAltName upravte podle adresy vašeho Collectoru.
Podepište certifikát pomocí CA:
openssl x509 -req \
-in server-new.csr \
-CA ca-cert.pem \
-CAkey ca-key.pem \
-CAcreateserial \
-out server-new.crt \
-days 3650 \
-sha256 \
-extfile server_ext.cnf \
-extensions v3_req
Proveďte zálohu a náhradu stávajícího certifikátu:
cp ssl-server-cert.pem ssl-server-cert.pem.bak
cp ssl-server-key.pem ssl-server-key.pem.bak
cp server-new.crt ssl-server-cert.pem
Restartujte Collector, aby se nový certifikát načetl.
1.2 Vytvoření klientského certifikátu pro Logstash output¶
Vygenerujte klientský klíč a certifikát pro konfiguraci Fleet výstupu:
openssl genpkey -algorithm EC \
-pkeyopt ec_paramgen_curve:P-256 \
-out logstash-client-key.pem
openssl req -new \
-key logstash-client-key.pem \
-out logstash-client.csr \
-subj "/O=TeskaLabs Ltd/OU=LogMan.io Collector/CN=Logstash Client"
openssl x509 -req \
-in logstash-client.csr \
-CA ca-cert.pem \
-CAkey ca-key.pem \
-CAcreateserial \
-out logstash-client-cert.pem \
-days 3650 \
-extfile <(printf "keyUsage=digitalSignature\nextendedKeyUsage=clientAuth\n")
Soubory pro Fleet Settings
Soubory logstash-client-cert.pem, logstash-client-key.pem a ca-cert.pem budete potřebovat při konfiguraci Logstash výstupu ve Fleet Settings (krok 4).
2. Inicializace Fleet Serveru¶
Fleet Server je centrální komponenta, přes kterou Kibana spravuje Elastic Agenty. Inicializace probíhá v Kibana:
- Přejděte do Kibana → Fleet → Settings.
- Klikněte na Add a Fleet Server.
- V dialogu vyplňte:
- Name: název Fleet Serveru (např.
logman-node-1) - URL: veřejná IP adresa nebo hostname s portem
8220(např.https://10.20.30.40:8220)
- Name: název Fleet Serveru (např.
- Klikněte na Continue.
Po vytvoření Fleet Server policy se zobrazí instalační příkazy. Na cílovém Linux serveru spusťte:
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.19.12-linux-x86_64.tar.gz
tar xzvf elastic-agent-8.19.12-linux-x86_64.tar.gz
cd elastic-agent-8.19.12-linux-x86_64
sudo ./elastic-agent install \
--fleet-server-es=http://localhost:9200 \
--fleet-server-service-token=<VYGENEROVANÝ_TOKEN> \
--fleet-server-policy=<NÁZEV_POLICY> \
--fleet-server-port=8220
Instalační příkaz
Přesný příkaz včetně service tokenu a názvu policy vygeneruje Kibana. Hodnoty se liší pro každou instalaci.
Po úspěšné instalaci Fleet potvrdí připojení Fleet Serveru.
3. Konfigurace Fleet Server Policy¶
Po inicializaci Fleet Serveru upravte výchozí Fleet Server Policy, aby Fleet Server agent neodesílal vlastní logy a metriky přímo do Elasticsearch:
- Přejděte do Kibana → Fleet → Agent policies → Fleet Server Policy → Settings.
- V sekci Agent monitoring odškrtněte:
- Collect agent logs
- Collect agent metrics
Fleet Server pak slouží čistě jako správcovská komponenta.
4. Vytvoření Logstash výstupu¶
Přesměrujte data z Elastic Agentů do LogMan.io Collectoru prostřednictvím Logstash protokolu:
- Přejděte do Kibana → Fleet → Settings.
- V sekci Outputs klikněte na Add output.
- Vyplňte:
- Name:
logstash-collector(nebo jiný popisný název) - Type: Logstash
- Logstash hosts: IP adresa a port LogMan.io Collectoru (např.
10.20.30.40:5044) - Server SSL certificate authorities: obsah souboru
ca-cert.pem - Client SSL certificate: obsah souboru
logstash-client-cert.pem - Client SSL certificate key: obsah souboru
logstash-client-key.pem
- Name:
- Zaškrtněte Make this output the default for agent integrations.
- Klikněte na Save and apply settings.
V přehledu Outputs by měl být nový výstup typu Logstash s označením Agent integrations ve sloupci Default.
5. Vytvoření Agent policies pro sběr logů¶
Pro každý typ sběru nebo skupinu agentů vytvořte samostatnou Agent Policy:
- Přejděte do Kibana → Fleet → Agent policies.
- Klikněte na Create agent policy.
- Pojmenujte policy a nastavte:
- Output for integrations:
logstash-collector - Fleet Server: váš Fleet Server (např.
logman-node-1)
- Output for integrations:
- Přidejte požadované integrace (např. System, Windows, Custom logs).
Ověřte výstup u každé policy
U každé nové policy vždy ověřte, že je jako výstup nastaven logstash-collector, nikoli výchozí Elasticsearch output. Jinak logy obcházejí pipeline LogMan.io.
6. Instalace Elastic Agentů¶
Nainstalujte Elastic Agenty na cílové systémy a přiřaďte je k agent policies:
- Přejděte do Kibana → Fleet → Agents.
- Klikněte na Add agent.
- Vyberte příslušnou Agent Policy.
- Postupujte dle instalačních instrukcí pro daný operační systém (Linux, Windows, macOS).
Po úspěšné instalaci a enrollmentu se agent zobrazí ve Fleet a začne odesílat data přes Logstash output do LogMan.io Collectoru.
Architektura¶
graph LR
agent[Elastic Agent<br/>cílový host]
fleet[Fleet Server]
collector[LogMan.io Collector<br/>Beats vstup]
pipeline[LogMan.io<br/>pipeline]
kibana[Kibana<br/>Fleet]
agent --> fleet
fleet --> collector
collector --> pipeline
kibana --> fleet
kibana --> agent
Elastic Agenty jsou centrálně spravovány přes Kibana Fleet. Logy proudí přes Logstash protokol přímo do LogMan.io Collectoru a dále standardní zpracovatelskou pipeline LogMan.io.
Řešení problémů¶
- Fleet Server se nepřipojí: Ověřte dostupnost portu
8220a správnost service tokenu. - Agent neodesílá data: Zkontrolujte, zda má Agent Policy nastaven správný output (
logstash-collector) a zda je Collector dostupný na uvedené adrese a portu. - Chyby certifikátů: Ověřte, že klientský certifikát byl podepsán stejnou CA jako serverový certifikát Collectoru a že SAN odpovídá adrese, na kterou se agent připojuje.
- Logy se objevují v Elasticsearch místo v LogMan.io: Ve Fleet Settings musí být output
logstash-collectornastaven jako výchozí pro agent integrations.