Een loggingsetup die schaalbaar, veilig en logisch is in de 21e eeuw. Dat is ons doel met ons krachtige trio:
- Fluentd: Het Zwitserse zakmes van logverzameling (oeps, ik bedoel het multitool van logverzameling – laten we de cliché-politie niet boos maken)
- Vector: De nieuwkomer die Fluentd het vuur aan de schenen legt
- Loki: Grafana's antwoord op "Wat als logs net zo cool waren als metrics?"
Stap 1: Afscheid nemen van Syslog (Niet huilen, het is voor het beste)
Allereerst moeten we de Syslog-pleister eraf trekken. Hier is een snelle checklist om ervoor te zorgen dat je klaar bent voor de grote overstap:
- Inventariseer al je Syslog-bronnen
- Identificeer eventuele aangepaste parsing- of routeringsregels
- Maak een back-up van je huidige Syslog-configuratie (voor de zekerheid)
- Informeer je team (en misschien wat pizza bestellen – veranderingen gaan beter met eten)
Stap 2: Fluentd instellen - De alleskunner van logs
Fluentd is onze eerste stop op dit logavontuur. Hier is waarom het geweldig is:
- Ondersteunt een breed scala aan invoer- en uitvoerplug-ins
- Behandelt gestructureerde en ongestructureerde data als een pro
- Lichtgewicht en geschreven in C (met Ruby voor plug-ins)
Laten we Fluentd installeren en starten:
# Installeer Fluentd (ervan uitgaande dat je op een Debian-gebaseerd systeem zit)
curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-focal-td-agent4.sh | sh
# Start de Fluentd-service
sudo systemctl start td-agent
Nu gaan we Fluentd configureren om logs van onze voormalige Syslog-clients te accepteren:
@type syslog
port 5140
tag system
@type forward
send_timeout 60s
recover_wait 10s
hard_timeout 60s
name loki_server
host 10.0.0.1
port 24224
Deze configuratie vertelt Fluentd om te luisteren naar Syslog-berichten op poort 5140 en ze door te sturen naar onze Loki-server. Simpel, toch?
Stap 3: Vector - De nieuwe sheriff in de stad
Hoewel Fluentd geweldig is, is Vector de coole nieuwkomer die de aandacht trekt. Het is razendsnel, gebruikt minder CPU en geheugen, en heeft een configuratie die je niet gek maakt. Laten we Vector aan onze mix toevoegen:
# Installeer Vector
curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | sh
# Start Vector
sudo systemctl start vector
Nu gaan we Vector configureren om samen te werken met Fluentd:
[sources.syslog]
type = "syslog"
address = "0.0.0.0:514"
mode = "tcp"
[transforms.parse_syslog]
type = "remap"
inputs = ["syslog"]
source = '''
. = parse_syslog!(.message)
'''
[sinks.loki]
type = "loki"
inputs = ["parse_syslog"]
endpoint = "http://10.0.0.1:3100"
encoding.codec = "json"
labels = {job = "vector_logs"}
Deze configuratie vertelt Vector om Syslog-invoer te accepteren, te parseren en vervolgens naar Loki te verzenden. Het is als Fluentd, maar met een vleugje "Ik heb net vijf espresso's gedronken" energie.
Stap 4: Loki - Waar logs sterren worden
Loki is het laatste stuk van onze logpuzzel. Het is als Prometheus, maar voor logs, en het werkt geweldig samen met Grafana. Laten we het instellen:
auth_enabled: false
server:
http_listen_port: 3100
ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 5m
chunk_retain_period: 30s
schema_config:
configs:
- from: 2020-05-15
store: boltdb
object_store: filesystem
schema: v11
index:
prefix: index_
period: 168h
storage_config:
boltdb:
directory: /tmp/loki/index
filesystem:
directory: /tmp/loki/chunks
limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
Deze configuratie stelt Loki in staat om logs van zowel Fluentd als Vector te accepteren. Het is als de coole club waar alle logs samenkomen.
De Grote Finale: Alles Samenbrengen
Nu we alle stukken op hun plaats hebben, laten we eens kijken hoe deze prachtige loggingsymfonie werkt:
- Je applicaties sturen logs naar Fluentd of Vector (of beide, we oordelen niet)
- Fluentd en Vector parseren, transformeren en sturen de logs door naar Loki
- Loki slaat de logs efficiënt op en maakt ze beschikbaar voor query's
- Je gebruikt Grafana om prachtige dashboards en waarschuwingen te maken op basis van je logs
En zo ben je van het log-equivalent van een klaptelefoon naar een state-of-the-art smartphone gegaan. Je logs zijn nu gestructureerd, doorzoekbaar en echt nuttig. Plus, je kunt je collega's imponeren met zinnen als "logaggregatie" en "observability pipeline".
Conclusie: Loggen naar de Toekomst
Overstappen van Syslog naar een moderne, gecentraliseerde logoplossing met Fluentd, Vector en Loki lijkt misschien een ontmoedigende taak, maar de voordelen zijn het waard. Je krijgt betere prestaties, verbeterde schaalbaarheid en de mogelijkheid om die speld in de loghooiberg te vinden wanneer je hem nodig hebt.
Onthoud, de reis van duizend logs begint met een enkel configuratiebestand. Dus ga ervoor, dappere logger, en moge je logs altijd in je voordeel zijn!
"Het enige dat erger is dan geen logs hebben, is logs hebben die je niet kunt begrijpen." - Elke DevOps Engineer Ooit
Nu, als je me wilt excuseren, ik heb wat logs te parseren. Gelukkig loggen!