320.06.70.037 [email protected]
Seleziona una pagina

Installazione e Configurazione di Graylog Server 5.2.5 con Web Gui su Ubuntu Server 22.04

da | Mar 22, 2024 | Graylog, Ubuntu | 0 commenti

Graylog è uno strumento di gestione dei Log e open source basato su Java, Elasticsearch/OpenSearch e MongoDB che può essere utilizzato per raccogliere, indicizzare e analizzare qualsiasi log server da una postazione centralizzata. Si può facilmente monitorare i SSH login e attività insolite per il debug di applicazioni e i registri utilizzando Graylog.

Graylog fornisce un linguaggio di query avanzate, abilità di avviso, una pipeline di elaborazione per la trasformazione dei dati e molto altro.

Graylog è costituito da tre componenti:

  • Elasticsearch/OpenSearch: Memorizza tutti i messaggi di in ingresso e fornire una struttura di ricerca.
  • MongoDB: È usato per database, memorizza le configurazioni e le meta-informazioni.
  • Graylog server: riceve ed elabora i messaggi da vari input e fornire un’interfaccia web per l’analisi e il monitoraggio.

Di seguito il tutorial che guida passo passo nell’installazione di Graylog 5.2.5 con Opensearch 2.5.0 e MongoDB 6.0.14 e OpenJDK 17

PRE REQUISITI

Un server con Ubuntu 22.04 come sistema operativo e minimo 4 GB di RAM e 2 vCPU
Un dominio valido che punta all’indirizzo IP del server
Privilegi utente: utente root o non root con privilegi sudo

AGGIORNAMENTO SISTEMA

Prima di iniziare con l’installazione aggiornare i pacchetti di sistema alle ultime versioni disponibili con il comando:


Quindi riavviare il server con il comando:

INSTALLAZIONE DELLE DIPENDENZE

Procedere con l’installazione delle dipendenze necessarie durante l’installazione di Graylog con i seguenti comando:

INSTALLAZIONE DI OPENSEARCH

Opensearch è un altro componente fondamentale nell’installazione di Graylog. È un motore di ricerca e analisi distribuito ampiamente utilizzato per la ricerca full-text, l’analisi dei log, l’analisi aziendale e l’analisi degli eventi di sicurezza.

In Graylog, Opensearch archivia, cerca e analizza registri e messaggi da fonti esterne.

Opensearch non è ospitato sui repository ufficiali di Ubuntu quindi lo installeremo dal repository Elasticsearch.

Per fare ciò scaricare e aggiungere la chiave GPG Elasticsearch con il comando:


Aggiungere il repository di Opensearch al sistema con il comando:


Aggiornare il repository con il comando:


Verificare tutte le versioni disponibili di OpenSearch con il comando:


Verificare dalla lista la versione stabile

ATTENZIONE: in questo tutorial installerò la versione 2.5.0

Dopo aver aggiornato la cache locale, installare Opensearch dal repository utilizzando il gestore pacchetti APT con il comando:


Una volta completata l’installazione, è necessario apportare alcune modifiche al file di configurazione principale di Opensearch.

Utilizzare l’editor di testo preferito per accedere al file. Io utilizzerò l’editor della riga di comando nano.

Eseguire il comando:


All’interno del file di configurazione individuare le seguenti righe e impostarle come di seguito:


NOTA BENE: io per comodità ho commentato tutto all’interno del file ed ho aggiunte tutte le righe al fondo del file

Se è tutto corretto dovremmo vedere una schermata come quella sovrastante

Salvare e chiudere il file di configurazione

Abilitare le opzioni JVM con il comando:

sudo nano /etc/opensearch/jvm.options

Aggiornare quindi le impostazioni Xms e Xmx con metà della memoria di sistema installata

-Xms2g
-Xmx2g

NOTA BENE: nel mio caso avendo una memoria di 4 GB ho impostato la metà e quindi 2G

Se è tutto corretto dovremmo vedere una schermata come quella sovrastante

Salvare e chiudere il file di configurazione

Configura i parametri del kernel in fase di runtime con i comandi:

sudo sysctl -w vm.max_map_count=262144
echo ‘vm.max_map_count=262144′ | sudo tee -a /etc/sysctl.conf

Ricaricare systemd per applicare la modifica e avviare Opensearch con i comandi:

sudo systemctl daemon-reload
sudo systemctl start opensearch.service

E’ possibile verificare lo stato di Opensearch con il comando:

sudo systemctl status opensearch.service

Abilitare l’avvio al boot di Opensearch con il comando:

sudo systemctl enable opensearch.service

E’ possibile inviare una richiesta GET al nodo utilizzando lo strumento da riga di comando curl per visualizzare informazioni dettagliate su Elasticsearch. Di seguito il comando:

curl -X GET http://localhost:9200

Se è tutto corretto dovremmo visualizzare un output comem mostrato nell’immagine sovrastante

INSTALLAZIONE DEL DATABASE MONGODB

Nel server Graylog, il database MongoDB memorizza le informazioni di configurazione e i dati dell’utente.

In questo tutorial installeremo MongoDB versione 7

Importare la chiave pubblica utilizzata dal sistema di gestione dei pacchetti

Installare gnupgcurl con il comando:

sudo apt-get install gnupg curl

Per importare la chiave GPG pubblica di MongoDB, eseguire il seguente comando:

curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg –dearmor

Creare un file di elenco per MongoDB in /etc/apt/sources.list.d/mongodb-org-6.0.list con il comando:

echo “deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Usare il comando seguente per ricaricare il database dei pacchetti locale:

sudo apt-get update

Installare l’ultima versione stabile di MongoDB con il comando:

sudo apt-get install -y mongodb-org

Il comando installa il server database MongoDB insieme ai componenti principali del database inclusi gli strumenti della shell.

Una volta completata l’installazione, verificare la versione di MongoDB installata con il comando:

mongod –version

Se è andato tutto a buon fine dovremmo vedere il seguente output:

db version v6.0.14
Build Info: {
“version”: “6.0.14”,
“gitVersion”: “25225db95574916fecab3af75b184409f8713aef”,
“openSSLVersion”: “OpenSSL 3.0.2 15 Mar 2022”,
“modules”: [],
“allocator”: “tcmalloc”,
“environment”: {
“distmod”: “ubuntu2204”,
“distarch”: “x86_64”,
“target_arch”: “x86_64”
}
}

Il servizio MongoDB è disabilitato al momento dell’installazione per impostazione predefinita ed è possibile verificarlo eseguendo il comando:

sudo systemctl status mongod

Dovremmo visualizzare il seguente output:

mongod.service – MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://docs.mongodb.org/manual

Abilitare MongoDB all’avvio con il comando:

sudo systemctl enable mongod

Avviare il servizio di MongoDB con il comando:

sudo systemctl start mongod

INSTALLAZIONE DI GRAYLOG SERVER

Ora siamo pronti per installare il server Graylog su Ubuntu.

Per impostazione predefinita, il pacchetto server Graylog non è disponibile sui repository Ubuntu. Pertanto, installeremo Graylog dal repository ufficiale Graylog.

Scaricare il pacchetto Graylog Debian con il comando:

wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb

Successivamente lanciare il comando dpkg per eseguire il pacchetto:

sudo dpkg -i graylog-5.2-repository_latest.deb

Quindi aggiornare l’APT cache e procedere con l’installazione di Garylog Server con il comando:

sudo apt-get update && sudo apt-get install graylog-server

Se è andato tutto a buon fine dovremmo vedere una schermata come l’immagine sovrastante

Una volta installato il server Graylog, è necessario generare una secret per proteggere le password degli utenti e una password crittografata per l’utente amministratore.

Per generare una password segreta per proteggere le password degli utenti, eseguire il comando seguente:

< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;

Dovremmo visualizzare un output con la secret:

0EAt9EsPRfy9TJR8gGhLSH7E1COAE-1MUGNOXe0Ebm8OuPjqinkyPID0PROb5RoWUJwEG3FymThkXrury6TgibHrrYVXnGvF

Successivamente generare una password crittografata per l’utente di accesso amministratore di Graylog con il comando:

echo -n “Enter Password: ” && head -1 </dev/stdin | tr -d ‘\n’ | sha256sum | cut -d” ” -f1

Inserire la password desiderata quindi premere Invio

Sotto la password inserita verrà visualizzata la stessa criptata.

nel mio caso visualizzo questo: fcba8051ec9c89dfa788d2e093b54765629bc153237a2a4d26c0ae959500b4c5

A questo punto copiare entrambe la password criptate e aprire il file di configurazione di Graylog /etc/graylog/server/server.conf con il seguente comando:

sudo nano /etc/graylog/server/server.conf

All’interno del file di configurazione cercare password_secret quindi incollare la prima secret generata

Dovremmo visualizzare un output come mostrato nell’immagine sovrastante

Sempre all’interno del file cercare root_password_sha2 e incollare la seconda secret creata

Dovremmo visualizzare un output come mostrato nell’immagine sovrastante

All’interno del file cercare la riga #http_bind_address = 127.0.0.1:9000 quindi decommentarla

Al posto dell’IP 127.0.0.1 inserire l’IP fisico del server

Dovremmo visualizzare un output come mostrato nell’immagine sovrastante

Salvare e chiudere il file di configurazione

Fare un reload di systemd con il comando:

sudo systemctl daemon-reload

Quindi avviare il servizio di Graylog con il comando:

sudo systemctl start graylog-server.service

Per verificare lo stato di Garylog eseguire il comando:

sudo systemctl status graylog-server.service

Se è tutto OK dovremmo vedere il servizio Attivo come mostrato nell’immagine sovrastante

Abilitare l’avvio del servizio di Gryalog all avvio del sistema con il comando:

sudo systemctl enable graylog-server.service

CONFIGURAZIONE DI NGINX COME REVERSE PROXY

Graylog può fungere da frontend e non richiede un server web.

Tuttavia è preferibile configurare un server web come reverse proxy per la porta da 80 a 9000, su cui Graylog è in ascolto.

Ciò semplifica anche la configurazione di un certificato SSL per Graylog.

In questo tutorial utilizzerò Nginx come opzione preferita per un server web.

Per installare Nginx, eseguire il comando:

sudo apt install nginx

Una volta installato creare un file host virtuale per Graylog con il comando:

sudo nano /etc/nginx/sites-available/graylog.conf

Aggiungere queste righe di codice e assicurarsi di specificare l’IP server Graylog per l’attributo proxy_pass.

server {
listen 80;
server_name NOME-SERVER-GRAYLOG;

location /
{
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/;
proxy_pass http://IP-SERVER-GRAYLOG:9000;
}

}

Modificare i seguenti parametri:

NOME-SERVER-GRAYLOG: Inserire il nome FQDN del server Graylog

IP-SERVER-GRAYLOG: Inserire l’IP del server Graylog

Salvare c chiudere il file di configurazione

Verificare che la sintassi del file di configurazione sia OK con il comando:

sudo nginx -t

Se è tutto OK dovremmo visualizzare il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Abilitare il Virtual Host file con il comando:

sudo ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/

Eliminare il file dell’host virtuale predefinito con il comando:

sudo rm -rf /etc/nginx/sites-enabled/default

Applicare le modifiche riavviando il servizio di Nginx con il comando:

sudo systemctl restart nginx

Quindi verificare lo stato di Nginx con il comando:

sudo systemctl status nginx

Se è tutto OK dovremmo vedere il servizio Attivo come mostrato nell’immagine sovrastante

ACCESSO ALL’INTERFACCIA WEB DI GRAYLOG

A questo punto aprire da un qualsiasi browser il link

http://IP-DEL-SERVER

Se è andato tutto a buon fine dovremmo vedere la pagina di Login di Graylog
Inserire admin e la password definita in precendeza quindi cliccare Sign In

Dopo essere entrati dovremmo visualizzare la Dashboard di Graylog

TOOL PER EVENTUALI PROBLEMATICHE

In alcuni casi dopo aver terminato l’installazione di Graylog non viene visualizzata la pagina di login ma un a finestra di popup dove inserire user e password.

Ovviamente inserendo le credenziali non funziona nulla.

In questo caso può tornare utile il seguente comando:

tail -f /var/log/graylog-server/server.log

Dopo aver eseguito il comando seguire le istruzioni per sbloccare il problema dovuto quasi sempre a Elasticsearch o Opensearch

Raffaele Chiatto

Scritto da Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360°…
Mi sono avvicinato al mondo dell’informatica nel lontano 1996 con Windows 95 e da allora non ho più smesso di dedicarmi allo studio ed approfondimento di questo settore.
Laureato in Ingegneria Informatica nel 2009, lavoro nel campo dell’IT dal lontano 2001.

Link – Friends

Infrastrutture IT

English School

Act for Change

Graphic and Web solution

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Translate »