1. Les concepts #
Un graphe orienté.
Topologie #
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.yamlComposants courants #
| Type | Composants |
|---|---|
| Sources | file, kubernetes_logs, journald, syslog, http_server, kafka, opentelemetry, internal_metrics |
| Transforms | remap, filter, route, sample, dedupe, throttle, log_to_metric, aggregate |
| Sinks | loki, 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 5Bonne 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.
