# 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....
[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/
- 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
vector vrl
Shell pour tester sa configuration VRL sans les complications de debug en prod.
~/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
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
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.
Nombreux guides pour comment réussir une architecture d'agents Vector prêts pour la production :
- haute disponibilité
- architecture
- hardening