- Sources (40) : https://vector.dev/docs/reference/configuration/sources/
- Sinks (51) : https://vector.dev/docs/reference/configuration/sinks/
- TOML ou YAML ou JSON : https://vector.dev/docs/reference/configuration/
- Multiarch : x86, ARM - Low memory - Golang - Windows, Linux, MacOS - Single binary
- Backed by Datadog
- Supporte les logs ET les metrics
config de base
# Random Syslog-formatted logs
[sources.dummy_logs]
type = "demo_logs"
format = "syslog"
interval = 1
# Parse Syslog logs
# See the Vector Remap Language reference for more info: https://vrl.dev
[transforms.parse_logs]
type = "remap"
inputs = ["dummy_logs"]
source = '''
. = parse_syslog!(string!(.message))
'''
# Print parsed logs to stdout
[sinks.print]
type = "console"
inputs = ["parse_logs"]
encoding.codec = "json"
# Vector's GraphQL API (disabled by default)
# Uncomment to try it out with the `vector top` command or
# in your browser at http://localhost:8686
[api]
enabled = true
address = "127.0.0.1:8686"
~/vector-demo/vector-bin/bin/vector -C ~/vector-demo/vector-bin/config/
Simple à configurer....
Real world example with elasticsearch
[sources.dummy_logs]
type = "demo_logs"
format = "json"
interval = 1
[sinks.es]
type = "elasticsearch"
inputs = ["dummy_logs"]
endpoints = [ "http://127.0.0.1:9200" ]
auth.strategy = "basic"
auth.user = "elastic"
auth.password = "changeme"
~/vector-demo/vector-bin/bin/vector -C ~/vector-demo/vector-bin/config-es/
Transformations de données
- Modifier avec VRL : https://vector.dev/docs/reference/vrl/
Langage avec de nombreuses fonctions, très bonne doc avec plein d'exemples
- Filtrer, réduire les champs, agréger plusieurs sources en une
- Rerouter vers des Sinks différents sur base de champs
- Support de lua
- Throttle, limiter le nombre de logs ingestés à la seconde
- Détecte les logs dupliqués pour éviter de l'ingestion doublon
Exemple 1 VRL
REPL (Read–eval–print loop) pour tester ses VRL
vector vrl
Shell pour tester sa configuration VRL sans les complications de debug en prod.
Surveiller ses logs
~/vector-demo/vector-bin/bin/vector top
1. Statistiques
~/vector-demo/vector-bin/bin/vector graph -C ~/vector-demo/vector-bin/config/
2. Graphique de la configuration
~/vector-demo/vector-bin/bin/vector tap
3. Voir en temps réel l'ingestion des logs
Gestion surplus de logs
Buffer :
- En mémoire
- Ou sur le disque
Que faire quand le buffer est full ?
- Bloquer tout nouveau log
- Drop les nouveaux logs
- Rediriger vers un autre buffer (mémoire ou disque)
Arrive lors de plusieurs cas :
- Sink ne répond plus
- Sink pas assez rapide pour ingester les logs
Contrôler Vector à distance
API pour contrôler Vector à distance, principalement pour récupérer des infos en lecture seule (metrics, metadata et topologie).
Dans le futur, reconfigurer complètement Vector depuis l'API.
Production in mind
Nombreux guides pour comment réussir une architecture d'agents Vector prêts pour la production :
- haute disponibilité
- architecture
- hardening
Vector
By Emilien Devos (c2c)
Vector
- 157