ELK Stack – Filebeat – Moduli

Published by Lello on

Filebeat fornisce una serie di moduli preconfigurati che permettono di pre-analizzare i file di log sulle macchine su cui è installato, inviarli ad Elaticsearch/Logstash, e visualizzarli su dashboard preconfezionate in Kibana. Questi moduli supportano formati di registro comuni quali Nginx, Apache 2, MySQL, …..

Prima di continuare, segnalo che i moduli di seguito analizzati sono compatibili con lo schema ECS di Elastic, uno schema open source sviluppato con il supporto della community degli utenti Elastic. ECS definisce un insieme comune di campi da utilizzare durante la memorizzazione dei dati degli eventi in Elasticsearch, come registri e metriche.

È possibile anche creare facilmente moduli personalizzati. Di seguito configureremo e abiliteremo alcuni moduli tra i principali di Filebeat.

Quando si eseguono i moduli, vengono effettuate delle operazioni a run-time:

  • vengono impostati i percorsi predefiniti per i file di registro (è possibile modificarli); 
  • ogni evento di registro su più righe viene inviato come singolo evento;
  • viene utilizzato il nodo Elasticsearch configurato in Filebeat per analizzare ed elaborare le linee di registro, modellando i dati in una struttura adatta per la visualizzazione in Kibana;
  • vengono fornite a Kibana le dashboard per la visualizzazione dei dati.
SYSTEM

Il modulo System raccoglie e analizza i registri creati dal servizio di logging di sistema delle comuni distribuzioni basate su Unix / Linux. È stato testato con i log delle principali distribuzioni; non è disponibile per Windows.

Abilitiamo il modulo con il comando:

# filebeat modules enable system

Editiamo il file /etc/filebeat/modules.d/system.yml, per adattarlo eventualmente alla configurazione della nostra macchina o aggiungere log personalizzati:

- module: system
  # Syslog
  syslog:
    enabled: true
    var.paths:
     - /var/log/messages
  # Authorization logs
  auth:
    enabled: true
    var.paths:
     - /var/log/secure
NETFLOW

Questo modulo permette la ricezione di record di flusso NetFlow su UDP; supporta le versioni 1, 5, 6, 7, 8 e 9 di NetFlow, nonché IPFIX. Per le versioni NetFlow precedenti alla 9, i campi vengono mappati automaticamente su NetFlow v9.

Abilitiamo il modulo con il comando:

# filebeat modules enable netflow

Editiamo il file /etc/filebeat/modules.d/netflow.yml:

- module: netflow
  log:
    enabled: true
    var:
      netflow_host: 192.168.xxx.xxx            <== indirizzo IP di binding
      netflow_port: 2055                       <== porta UDP di ricezione del flusso
      max_message_size: 10KiB                  <== grandezza massima del messaggio ricevuto tramite UDP (10KiB default)
      protocols: [ v5, v9, ipfix ]             <== protocolli permessi
      expiration_timeout: 30m                  <== timeout prima che una sessione idle o inutilzzata venga considerata expired (0=no expiration)
      queue_size: 8192                         <== numero max di pacchetti che possono essere accodati per essere processati
      detect_sequence_reset: true              <== Flag che controlla se Filebeat deve monitorare i numeri di sequenza nei pacchetti Netflow per reset del processo di esportazione
APACHE

Il modulo Apache analizza i file di log degli accessi e degli errori creati dal server HTTP Apache.

Abilitiamo il modulo con il comando:

# filebeat modules enable apache

Editiamo il file /etc/filebeat/modules.d/apache.yml:

- module: apache
  # Access logs
  access:
    enabled: true
    var.paths:
      - /var/log/apache/access.log*

  # Error logs
  error:
    enabled: true
    var.paths:
     - /var/log/apache/error.log*
MySQL

Il modulo MySQL raccoglie e analizza i file di errore e gli slow logs creati da MySQL; è compatibile con i log prodotti da MySQL (versione 5.5, 5.7 e 8(, MariaDB (versione 10.1, 10.2 10.3) e Percona (versione 5.7 e 8.0)

Abilitiamo il modulo con il comando:

# filebeat modules enable mysql

Editiamo il file /etc/filebeat/modules.d/mysql.yml:

- module: mysql
  error:
    enabled: true
    var.paths:
      - /var/log/mysql/error.log*
  slowlog:
    enabled: true
    var.paths:
      - /var/log/mysql/mysql-slow.log*

Prima di riavviare il servizio Filebeat, vediamo quali sono i moduli abilitati:

# filebeat modules list
Enabled:
apache
mysql
netflow
system

Disabled:
activemq
auditd
...
traefik
zeek

Procediamo con il riavvio di Filebeat:

# systemctl restart filebeat

Ora possiamo collegarci alla dashboard Kibana (per ora con utente admin) e  vedere che nella sezione “Discover” (indicata in rosso nell’immagine seguente), iniziano ad arrivare i dati configurati in filebeat.

Kibana Discover - Data

 

← ELK Stack – Filebeat

ELK Stack – Kibana Filebeat Dashboards →