RousselTMLEARNING

Observabilité

Vector : sources, transforms, sinks et topologie

Les concepts de Vector (sources, transforms, sinks), la configuration YAML, les composants courants, les tampons disque et les outils d'exploitation (validate, top, tap).

1. Les concepts #

Un graphe orienté.

Topologie #

Topologie Vector
Chaque composant déclare ses entrées (inputs) : Vector construit le graphe.

Vector organise le traitement en un graphe : des sources produisent des événements (logs, métriques ou traces), des transforms les modifient, des sinks les envoient. Chaque composant indique ses inputs, ce qui permet d'aiguiller un même flux vers plusieurs destinations.

2. Configuration #

YAML, TOML ou JSON.

Exemple #

# vector.yaml
api:
  enabled: true
  address: 0.0.0.0:8686

sources:
  app:
    type: file
    include: [/var/log/app/*.log]

transforms:
  parse:
    type: remap
    inputs: [app]
    source: |
      . = parse_json!(.message)
      .level = downcase(string!(.level))
      del(.password)

  erreurs:
    type: filter
    inputs: [parse]
    condition: .level == "error"

sinks:
  loki:
    type: loki
    inputs: [parse]
    endpoint: http://loki:3100
    encoding: { codec: json }
    labels: { app: "{{ app }}", level: "{{ level }}" }
    buffer: { type: disk, max_size: 268435488, when_full: block }

  alerte_console:
    type: console
    inputs: [erreurs]
    encoding: { codec: json }
vector validate vector.yaml
vector --config vector.yaml

Composants courants #

TypeComposants
Sourcesfile, kubernetes_logs, journald, syslog, http_server, kafka, opentelemetry, internal_metrics
Transformsremap, filter, route, sample, dedupe, throttle, log_to_metric, aggregate
Sinksloki, elasticsearch, aws_s3, kafka, clickhouse, prometheus_exporter, datadog_logs, console

3. Exploiter Vector #

Voir ce qui circule.

Outils #

vector top                       # débit et erreurs par composant, en direct
vector tap parse                 # afficher les événements qui sortent de « parse »
vector tap --outputs-of 'parse' --limit 5
Bonne Pratique : vector tap est l'outil de mise au point le plus utile : il montre les événements réels à n'importe quel endroit du graphe, sans rien modifier.

La source internal_metrics expose les métriques de Vector lui-même (événements reçus et envoyés, erreurs, taille des tampons), à envoyer vers Prometheus avec le sink prometheus_exporter.

Articles liés

Collecteurs de logs légers : Fluent Bit, Vector et les autres

Pourquoi un collecteur de logs, ce qui distingue les agents légers (Fluent Bit, Vector) des collecteurs histo…

Fluent Bit : pipeline, configuration et plugins essentiels

Les concepts de Fluent Bit (inputs, parsers, filters, tags et match, buffer, outputs), la configuration YAML,…

Fluent Bit sur Kubernetes : DaemonSet, multiline, tampon et supervision

Déployer Fluent Bit sur Kubernetes avec Helm, enrichir avec le filtre kubernetes, gérer les logs multilignes,…

Pour aller plus loin