Configurazione del logging che sia scalabile, sicura e che abbia senso nel XXI secolo. Questo è il nostro obiettivo con il nostro trio potente:
- Fluentd: Il coltellino svizzero della raccolta dei log (ops, intendevo il multi-strumento della raccolta dei log – non facciamo arrabbiare la polizia dei cliché)
- Vector: Il nuovo arrivato che sta dando filo da torcere a Fluentd
- Loki: La risposta di Grafana alla domanda "E se i log fossero cool come le metriche?"
Passo 1: Dire Addio a Syslog (Non Piangere, È per il Meglio)
Prima di tutto, dobbiamo staccare il cerotto di Syslog. Ecco una lista di controllo rapida per assicurarti di essere pronto per il grande cambiamento:
- Fai un inventario di tutte le tue fonti Syslog
- Identifica eventuali regole di parsing o routing personalizzate
- Esegui un backup della tua configurazione Syslog attuale (per sicurezza)
- Avvisa il tuo team (e magari ordina della pizza – i cambiamenti sono migliori con il cibo)
Passo 2: Configurare Fluentd - Il Tuttofare dei Log
Fluentd è la nostra prima tappa in questa avventura di logging. Ecco perché è fantastico:
- Supporta una vasta gamma di plugin di input e output
- Gestisce dati strutturati e non strutturati come un campione
- Leggero e scritto in C (con Ruby per i plugin)
Mettiamo in funzione Fluentd:
# Installa Fluentd (supponendo che tu sia su un sistema basato su Debian)
curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-focal-td-agent4.sh | sh
# Avvia il servizio Fluentd
sudo systemctl start td-agent
Ora, configuriamo Fluentd per accettare log dai nostri ex client Syslog:
@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
Questa configurazione dice a Fluentd di ascoltare i messaggi Syslog sulla porta 5140 e di inoltrarli al nostro server Loki. Semplice, vero?
Passo 3: Vector - Il Nuovo Sceriffo in Città
Fluentd è fantastico, ma Vector è il nuovo arrivato che sta attirando l'attenzione. È velocissimo, usa meno CPU e memoria, e ha una configurazione che non ti farà venire voglia di strapparti i capelli. Aggiungiamo Vector al nostro mix:
# Installa Vector
curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | sh
# Avvia Vector
sudo systemctl start vector
Ora, configuriamo Vector per lavorare insieme a 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"}
Questa configurazione dice a Vector di accettare input Syslog, di analizzarlo e poi di inviarlo a Loki. È come Fluentd, ma con un pizzico di energia da "ho appena bevuto cinque espressi".
Passo 4: Loki - Dove i Log Diventano Stelle
Loki è l'ultimo pezzo del nostro puzzle di logging. È come Prometheus, ma per i log, e si integra perfettamente con Grafana. Configuriamolo:
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
Questa configurazione imposta Loki per accettare log sia da Fluentd che da Vector. È come il club cool dove tutti i log si ritrovano.
Il Gran Finale: Mettere Tutto Insieme
Ora che abbiamo tutti i pezzi al loro posto, vediamo come funziona questa bellissima sinfonia di logging:
- Le tue applicazioni inviano log a Fluentd o Vector (o entrambi, non giudichiamo)
- Fluentd e Vector analizzano, trasformano e inoltrano i log a Loki
- Loki memorizza i log in modo efficiente e li rende disponibili per le query
- Usi Grafana per creare bellissime dashboard e avvisi basati sui tuoi log
E proprio così, sei passato dall'equivalente dei log di un telefono a conchiglia a uno smartphone all'avanguardia. I tuoi log sono ora strutturati, ricercabili e davvero utili. Inoltre, puoi impressionare i tuoi colleghi con frasi come "aggregazione dei log" e "pipeline di osservabilità".
Conclusione: Logging nel Futuro
Migrare da Syslog a una soluzione di logging moderna e centralizzata con Fluentd, Vector e Loki potrebbe sembrare un compito arduo, ma i benefici ne valgono la pena. Avrai migliori prestazioni, scalabilità migliorata e la capacità di trovare davvero quell'ago nel pagliaio dei log quando ne hai bisogno.
Ricorda, il viaggio di mille log inizia con un singolo file di configurazione. Quindi vai avanti, coraggioso logger, e che i tuoi log siano sempre a tuo favore!
"L'unica cosa peggiore di non avere log è avere log che non puoi capire." - Ogni Ingegnere DevOps di Sempre
Ora, se mi scusate, ho dei log da analizzare. Buon logging!