Přeskočit obsah

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:

  1. Přejděte do Kibana → Fleet → Settings.
  2. Klikněte na Add a Fleet Server.
  3. 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)
  4. 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:

  1. Přejděte do Kibana → Fleet → Agent policies → Fleet Server Policy → Settings.
  2. 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:

  1. Přejděte do Kibana → Fleet → Settings.
  2. V sekci Outputs klikněte na Add output.
  3. 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
  4. Zaškrtněte Make this output the default for agent integrations.
  5. 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:

  1. Přejděte do Kibana → Fleet → Agent policies.
  2. Klikněte na Create agent policy.
  3. Pojmenujte policy a nastavte:
    • Output for integrations: logstash-collector
    • Fleet Server: váš Fleet Server (např. logman-node-1)
  4. 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:

  1. Přejděte do Kibana → Fleet → Agents.
  2. Klikněte na Add agent.
  3. Vyberte příslušnou Agent Policy.
  4. 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 8220 a 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-collector nastaven jako výchozí pro agent integrations.