Marvin Pascale

[B.Log]

01 Febbraio 2023

Graylog

Graylog Dashboard Negli ultimi anni si è sempre più sentito parlare di loging centralizzato e questo vociferare si è trasformato sempre più in un’esigenza concreta. I più grandi player hanno messo sul piatto le loro proposte (vedi Splunk, Datadog, LogDNA, ….) e per fortuna anche il mondo open non si è fatto attendere.

Ho installato per la prova volta Graylog Open nel 2012 e mi sono reso subito conto delle sue potenzialità; mette a disposizione diversi ingest per macinare log su log, indicizzarli e permettere quindi delle ricerche mirate avendoli a disposizione per il tempo che più ci aggrada.

Ci sono varie modalità di fruizione che vanno dal container docker, al cloud, alla macchina on-premise ma oggi vi mostrerò passo dopo passo l’installazione su una macchina virtuale basata su Red Hat 8 (RHEL compatibile).

NB: per le varie componenti del backend infrastrutturale (MongoDB e Elasticsearch) verrà mostrata l’installazione single-node ma entrambi gli engine offrono la possibilità di avere alta affidabilità e scalabilità orizzontale.

Installazione

Prerequisiti

MongoDB

Per quanto riguarda il database useremo una distribuzione MongoDB compatibile. Ho gia parlato di Percona Server for MongoDB e quindi non entrerò troppo nel dettaglio.

Aggiungiamo i repository, attiviamo, installiamo e avviamo la versione che ci interessa (MongoDB 5.x),

# dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# percona-release enable psmdb-50 release
# dnf install percona-server-mongodb
# systemctl enable --now mongod

Non ci sono particolari accorgimenti se non le solite raccomandazioni sulla sicurezza e il controllo degli accessi che sono già state trattate.

Elasticsearch

In questo caso opteremo per un progetto 100% open come Opensearch. Non ho ancora parlato di questo progetto nello specifico ma uscirà presto almeno un post a lui dedicato. Per ora ci limiteremo ad installare e avviare un’istanza singola.

Aggiungiamo i repository e carichiamo di metadati

# curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo
# rpm --import https://artifacts.opensearch.org/publickeys/opensearch.pgp
# dnf clean all && dnf repolist

Per installare l’ultima versione della 2 e la openjdk

# dnf install opensearch java-17-openjdk

A questo punto editiamo il file /etc/opensearch/opensearch.yml e prestiamo attenzione a questi parametri:

cluster.name: graylog
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
action.auto_create_index: false
plugins.security.disabled: true
network.host: 127.0.0.1  
discovery.type: single-node

NB: se queste variabili esistono modifichiamole e se mancano aggiungiamole.

Se siamo stati bravi l’avvio andrà liscio come l’olio

# systemctl enable --now opensearch

verifichiamo lo stato con

# systemctl status opensearch

Graylog

Attiviamo i repository e installiamo graylog

# rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-5.0-repository_latest.rpm
# dnf install graylog-server

Editiamo il file /etc/graylog/server/server.conf e impostiamo la chiave di cifratura e la password di accesso (password_secret e root_password_sha2). Non dimentichiamoci il bind:

....
http_bind_address = 0.0.0.0:9000
....

Per calcolare sia lo sha2 della root password che della secret c’è un comando molto comodo

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

Se abbiamo fatto tutto per bene

# systemctl daemon-reload
# systemctl enable --now graylog-server.service

Per concludere colleghiamoci all’interfaccia http://[IP-SERVER-LOG]:9000 e inseriamo le credenziali. Se non abbiamo specificato altro nel file di configurazione l’utente di default è admin.

Graylog Login

Configurazione

Come prima cosa andiamo nella sezione inputs e avviamo il syslog su protocollo TCP

Graylog Dashboard

A questo punto non ci resta che iniziare ad inviare i nostri log al server Graylog.

Esempio

Ecco un esempio di una login ssh come utente root registrata su Graylog. Con le giuste configurazioni è possibile ottenere delle registrazioni parlanti.

Graylog ssh login

Chiarimenti

Per non rendere il post troppo lungo e dispersivo, non sono stati trattati i temi della sicurezza per ogni singola componente che restano sempre estremamente importanti. Vi consiglio quindi di approfondire questi temi non solo per Graylog ma anche per Percona server for MongoDB e Opensearch.

Come detto in precedenza, tutte queste componenti offrono la possibilità di avere un cluster in HA per cui se hai esigenze particolari non temere; sarà possibile scalare orizzontalmente l’infrastruttura per assorbire grandi carichi di lavoro e offrire una resilienza ai dati.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: