Fluentd
Fluentd samler logger fra filer, containere, syslog, applikasjoner og mange andre kilder. Den innebygde HTTP-outputen sender dem til Fluentd-endepunktet i Status200, der de blir søkbare under Produkter → Logger.
Slik fungerer det
Fra Fluentd til Status200
Fluentd sender poster i bunker som JSON, med inntaksnøkkelen din i headeren x-status200-token og tjenestenavnet i x-status200-service-name. Status200 gjør hver post til en logg for den tjenesten, og oppretter tjenesten første gang den sender.
Før du begynner
- Installer Fluentd – se installasjonsveiledningen.
- Et Status200-prosjekt. I Status200 Cloud faktureres telemetri per inntatt GB – se priser – og et prosjekt på Free-planen trenger en betalingsmetode før det kan sende telemetri.
- En inntaksnøkkel for telemetri. Hvis du ikke har en:
Åpne inntaksnøklene
Gå til Produkter → Prosjektinnstillinger, åpne Telemetri og APM i sidemenyen, og velg Inntaksnøkler.

Opprett en nøkkel
Klikk på Opprett ingestion-nøkkel. Dialogen har allerede fylt inn navnet på nøkkelen og valgt Server – den typen nøkkel en applikasjon eller en collector sender med – så klikk på Opprett ingestion-nøkkel for å opprette den, eller gi den nytt navn først.
Kopier hemmeligheten
Den nye nøkkelen åpnes på sin egen side. Kopier Hemmelig nøkkel: Det er
YOUR_SERVICE_TOKENi konfigurasjonen nedenfor.
Konfigurer Fluentd
Konfigurasjonsfilen til Fluentd er vanligvis /etc/fluent/fluentd.conf, eller /etc/td-agent/td-agent.conf for den eldre td-agent-pakken.
Legg til en HTTP-output
Legg til en
<match>-seksjon som sender poster til Status200. ErstattYOUR_SERVICE_TOKENmed inntaksnøkkelen din ogYOUR_SERVICE_NAMEmed navnet loggene skal vises under – hvilket navn du vil:# Match all patterns <match **> @type http endpoint https://status200.ru/fluentd/logs open_timeout 2 headers {"x-status200-token":"YOUR_SERVICE_TOKEN", "x-status200-service-name":"YOUR_SERVICE_NAME"} content_type application/json json_array true <format> @type json </format> <buffer> flush_interval 10s chunk_limit_size 900k </buffer> </match>json_array truesender hver chunk i bufferen som én JSON-matrise, ogflush_interval 10ssender bufferen hvert 10. sekund.chunk_limit_size 900kholder hver request under 1 MB, det meste Status200 tar imot på dette endepunktet.Start Fluentd på nytt
Start Fluentd-tjenesten på nytt, slik at den laster den nye outputen.
Sjekk at loggene kommer frem
Noen sekunder etter neste tømming vises loggene under Produkter → Logger. Tjenesten står under Produkter → Tjenester – fantes den ikke fra før, oppretter Status200 den.
Fullstendig eksempel
Denne konfigurasjonen tar imot poster over forward-protokollen til Fluentd på port 24224 og sender alle til Status200:
####
## Source descriptions:
##
## built-in TCP input
## @see https://docs.fluentd.org/input/forward
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match **>
@type http
endpoint https://status200.ru/fluentd/logs
open_timeout 2
headers {"x-status200-token":"YOUR_SERVICE_TOKEN", "x-status200-service-name":"YOUR_SERVICE_NAME"}
content_type application/json
json_array true
<format>
@type json
</format>
<buffer>
flush_interval 10s
chunk_limit_size 900k
</buffer>
</match>For å sende ulike kilder som ulike tjenester bruker du én <match>-seksjon per tag, hver med sin egen x-status200-service-name.
Slik leses postene
Status200 leser disse feltene fra hver post:
| Loggfelt | Leses fra postens første tilstedeværende felt av | Merknader |
|---|---|---|
| Innhold | message, log, msg, body, text | Logglinjen. En post uten noen av dem lagres i sin helhet, som JSON. |
| Alvorlighetsgrad | level, severity, loglevel, log_level, priority, severityText, severity_text | Navn som trace, debug, info, notice, warn, error, critical og fatal, med store eller små bokstaver. Alle andre verdier lagres som Unspecified. |
| Trace-ID | trace_id, traceId, traceid | Kobler loggen til sitt trace. |
| Span-ID | span_id, spanId, spanid | Kobler loggen til sitt span. |
| Tjeneste | headeren x-status200-service-name | Fluentd når headeren ikke er satt. |
| Tid | — | Tidspunktet Status200 mottar posten. |
Alle andre felt blir en attributt med navnet fluentd. etterfulgt av feltnavnet, som du kan søke og filtrere på: Et felt container_name er @fluentd.container_name i loggutforskeren. Et nestet objekt flates ut med punktum, som fluentd.kubernetes.pod_name, og en liste lagres som JSON.
Fluentd-logger går gjennom loggpipelinene, drop-filtrene og maskeringsreglene dine som alle andre logger.
Selvhostet Status200
Erstatt https://status200.ru i endpoint med URL-en til Status200-instansen din: http(s)://YOUR_STATUS200_HOST/fluentd/logs.
Feilsøking
Fluentd logger 401 fra HTTP-outputen
Inntaksnøkkelen mangler, er ukjent eller utløpt. Sjekk verdien av x-status200-token i headers.
Fluentd logger 402 eller 422
402: I Status200 Cloud er prosjektet på Free-planen og har ingen betalingsmetode. Legg til en under Prosjektinnstillinger → Fakturering og fakturaer → Fakturering. 422: Nøkkelen er deaktivert, eller det er en nettlesernøkkel. Slå Aktivert på igjen i nøkkelens innstillinger, eller opprett en Server-nøkkel.
Fluentd logger 413
Requesten er over 1 MB, det meste Status200 tar imot på dette endepunktet. Sett chunk_limit_size 900k i <buffer>-seksjonen, som i konfigurasjonen ovenfor.
Loggene kommer under tjenesten Fluentd
Headeren x-status200-service-name mangler. Legg den til i headers i hver <match>-seksjon.
Logginnholdet viser hele posten som JSON
Status200 henter innholdet fra det første tilstedeværende feltet av message, log, msg, body eller text, og lagrer hele posten når den ikke har noen av dem. Gi feltet med logglinjen din nytt navn til ett av disse, for eksempel med filteret record_transformer i Fluentd.
Har du spørsmål eller trenger hjelp med konfigurasjonen, kan du skrive til oss på support@status200.ru.