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:

  1. Le tue applicazioni inviano log a Fluentd o Vector (o entrambi, non giudichiamo)
  2. Fluentd e Vector analizzano, trasformano e inoltrano i log a Loki
  3. Loki memorizza i log in modo efficiente e li rende disponibili per le query
  4. 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!