Zum Inhalt springen

Vector – High-Performance Observability Data Pipeline Cheatsheet

Vector – High-Performance Observability Data Pipeline Cheatsheet

Vector (von Datadog, Open-Source) ist eine High-Performance Observability Data Pipeline in Rust geschrieben. Sie sammelt Logs, Metrics und Traces von jeder Quelle, gestaltet sie durch Transformationen um und liefert sie zu jedem Sink – alles anbietagnositisch, so können Sie Backends wechseln ohne neu zu instrumentieren. Sie verwendet typischerweise einen Bruchteil der CPU und des Speichers von Logstash oder Fluentd, was zählt, wenn ein Agent auf jedem Node läuft.

Installation

MethodeBefehl
Installationsskript`curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.vector.dev
Debian/Ubuntu.deb von Vector Releases
macOS (Homebrew)brew install vectordotdev/brew/vector
Dockerdocker run -v $PWD/vector.yaml:/etc/vector/vector.yaml timberio/vector:latest-alpine
Überprüfenvector --version

Das Modell: Sources → Transforms → Sinks

# vector.yaml
sources:
  app_logs:
    type: file
    include: ["/var/log/app/*.log"]

transforms:
  parse:
    type: remap
    inputs: ["app_logs"]
    source: |
      . = parse_json!(.message)
      .env = "production"
      del(.password)

sinks:
  out:
    type: elasticsearch
    inputs: ["parse"]
    endpoints: ["http://es:9200"]
StageZweck
sourcesWoher Daten kommen
transformsParse, Filter, Bereichern, Redigieren, Aggregieren
sinksWohin Daten gehen
inputsVerdrahtet Komponenten in einen DAG

Häufige Quellen

QuelleSammelt
fileLog-Dateien (Tailing)
journaldSystemd Journal
kubernetes_logsPod-Logs mit K8s-Metadaten
docker_logsContainer-Logs
http_serverPush-Endpunkt
syslogSyslog über TCP/UDP
prometheus_scrapeScrapen Metrics-Endpunkte
opentelemetryOTLP-Aufnahme

Häufige Sinks

SinkSendet zu
elasticsearchElasticsearch/OpenSearch
lokiGrafana Loki
clickhouseClickHouse
aws_s3S3 (Archivierung)
prometheus_exporterExponieren Sie Metrics zum Scrapen
datadog_logs / splunk_hecVendor Backends
consoleStdout (Debugging)
blackholeVerwerfen (Testing)

VRL (Vector Remap Language)

Die remap-Transformation ist wo die meiste Arbeit stattfindet.

# Parse, bereichern, redigieren und drop noise
. = parse_json!(.message)
.timestamp = parse_timestamp!(.ts, "%+")
.service = "checkout"
del(.credit_card)
if .level == "debug" { abort }
VRL FunktionZweck
parse_json!, parse_regex!, parse_grok!Strukturieren Sie rohen Text
del(.field)Entfernen Sie ein Feld (PII-Redigierung)
to_int!, to_float!Typ-Konvertierung
abortFallen Sie das Event
merge, flattenReshape-Objekte

Nützliche Transformationen

TransformationTut
remapVRL-basierte Umgestaltung (das Workhorse)
filterBehalten Sie Events, die eine Bedingung erfüllen
routeTeilen Sie einen Stream in benannte Branches
aggregateRollen Sie Metrics über ein Intervall auf
throttleRate-limit laute Events
dedupeDrop Duplikate
sampleBehalten Sie einen Prozentsatz von Events

Vector operieren

BefehlBeschreibung
vector --config vector.yamlFühren Sie mit einer Konfiguration aus
vector validateÜberprüfen Sie Config vor Deployment
vector testFühren Sie Unit Tests aus, die in der Config definiert sind
vector topLive TUI des Durchsatzes pro Komponente
vector tap <component>Stream Events, die durch eine Komponente fließen
--watch-configHot-Reload bei Config-Änderung
# Debug, was eine Transformation tatsächlich ausgibt
vector tap parse

Zuverlässigkeit

FeatureNotiz
Disk BuffersÜberleben von Neustarts/Backpressure (buffer.type: disk)
AcknowledgementsEnd-to-End-Liefergarantien
Adaptive ConcurrencyAuto-Tunes Sink-Request-Rate
Health ChecksFail schnell bei unerreichbaren Sinks

Vector vs Alternativen

AspektVectorFluent BitLogstash
SpracheRustCJRuby/JVM
RessourcennutzungSehr niedrigSehr niedrigHoch
Transform SpracheVRL (reich)Lua/FilterRuby/Grok
DatentypenLogs, Metrics, TracesLogs, MetricsLogs
Am besten fürAnbieteragnositische PipelinesUltra-leichter Edge-AgentLegacy ELK Stacks

Füttert Sinks wie OpenObserve, Loki und Elasticsearch; vergleichen Sie mit Fluentd.

Ressourcen