Graylog Server è una suite software di gestione dei log open source pronta per l'impresa. Raccoglie registri da varie fonti e li analizza per scoprire e risolvere i problemi. Il server Greylog è fondamentalmente la combinazione di Elasticsearch, MongoDB e Graylog. Elasticsearch è un'applicazione open source molto popolare per archiviare testo e fornire funzionalità di ricerca molto potenti. MongoDB è un'applicazione open source per archiviare dati in formato NoSQL. Graylog raccoglie registri da varie fonti e fornisce una dashboard basata sul Web per la gestione e la ricerca nei registri. Graylog fornisce anche un'API REST sia per la configurazione che per i dati. Fornisce una dashboard configurabile che può essere utilizzata per visualizzare le metriche e osservare le tendenze utilizzando statistiche sul campo, valori rapidi e grafici da un'unica posizione centrale.
In questo tutorial imparerai a installare Graylog Server su Ubuntu 16.04. Questa guida è stata scritta per Graylog Server 2.3, ma potrebbe funzionare anche su versioni più recenti. Imparerai anche a installare Java, Elasticsearch e MongoDB. Proteggeremo anche l'istanza MongoDB e configureremo un proxy inverso Nginx per il dashboard e l'API basati sul web.
Prerequisiti
- Un'istanza del server Vultr Ubuntu 16.04 con almeno 4 GB di RAM.
- Un utente sudo .
In questo tutorial, useremo 192.0.2.1
come indirizzo IP pubblico del server e graylog.example.com
come nome di dominio puntato al server. Sostituisci tutte le occorrenze di 192.0.2.1
con il tuo indirizzo IP pubblico Vultr e graylog.example.com
con il tuo vero nome di dominio.
Aggiorna il tuo sistema di base usando la guida Come aggiornare Ubuntu 16.04 . Dopo aver aggiornato il sistema, procedere con l'installazione di Java.
Installa Java
Elasticsearch richiede Java 8 per funzionare. Supporta sia Oracle Java che OpenJDK, ma è sempre consigliabile utilizzare Oracle Java quando possibile. Aggiungi repository Oracle Java PPA:
sudo add-apt-repository ppa:webupd8team/java
Aggiorna i metadati del repository APT:
sudo apt update
Installa l'ultima versione stabile di Java 8, esegui:
sudo apt -y install oracle-java8-installer
Accettare il contratto di licenza quando richiesto. Se Java è stato installato correttamente, dovresti essere in grado di verificarne la versione.
java -version
Vedrai il seguente output.
user@vultr:~$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Impostare il JAVA_HOME
e altri valori predefiniti installando oracle-java8-set-default
. Correre:
sudo apt -y install oracle-java8-set-default
Eseguire il echo $JAVA_HOME
comando per verificare se la variabile di ambiente è impostata o meno.
user@vultr:~$ echo "$JAVA_HOME"
/usr/lib/jvm/java-8-oracle
Se non si ottiene l'output mostrato sopra, potrebbe essere necessario disconnettersi e accedere nuovamente alla shell.
Installa Elasticsearch
Elasticsearch è un'applicazione distribuita, in tempo reale, scalabile e altamente disponibile utilizzata per archiviare i registri e cercarli. Memorizza i dati negli indici e la ricerca tra i dati è molto veloce. Fornisce vari set di API, come l'API RESTful HTTP e l'API Java nativa. Elasticsearch può essere installato direttamente tramite il repository Elasticsearch. Aggiungi il repository APT Elasticsearch:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Importa la chiave PGP utilizzata per firmare i pacchetti. Ciò garantirà l'integrità dei pacchetti.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Aggiorna i metadati del repository APT.
sudo apt update
Installa il pacchetto Elasticsearch:
sudo apt -y install elasticsearch
Una volta installato il pacchetto, apri il file di configurazione predefinito di Elasticsearch.
sudo nano /etc/elasticsearch/elasticsearch.yml
Trova la riga seguente, decommentala e modifica il valore da my-application
a graylog
.
cluster.name: graylog
Puoi avviare Elasticsearch e abilitarlo ad avviarsi automaticamente all'avvio:
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Elasticsearch ora è in esecuzione sulla porta 9200. Verifica che funzioni correttamente eseguendo:
curl -XGET 'localhost:9200/?pretty'
Dovresti vedere un output simile al seguente.
[user@vultr ~]$ curl -XGET 'localhost:9200/?pretty'
{
"name" : "-kYzFA9",
"cluster_name" : "graylog",
"cluster_uuid" : "T3JQKehzSqmLThlVkEKPKg",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
Se riscontri errori, attendi qualche secondo e riprova, poiché Elasticsearch impiega del tempo a completare il processo di avvio. Elasticsearch ora è installato e funziona correttamente.
Installa MongoDB
MongoDB è un server di database NoSQL gratuito e open source. A differenza del database tradizionale che utilizza le tabelle per organizzare i propri dati, MongoDB è orientato ai documenti e utilizza documenti simili a JSON senza schemi. Graylog utilizza MongoDB per archiviare la sua configurazione e le sue meta informazioni. Può essere installato direttamente tramite il repository MongoDB. Importa la chiave GPG utilizzata per firmare il pacchetto. Ciò garantirà l'autenticità dei pacchetti.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Ora crea il file repository:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Aggiorna i metadati del repository APT.
sudo apt update
Installa il pacchetto MongoDB:
sudo apt -y install mongodb-org
Avviare il server MongoDB e abilitare l'avvio automatico.
sudo systemctl start mongod
sudo systemctl enable mongod
Installa il server Graylog
Scarica e l'ultimo repository per il server Graylog.
wget https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.deb
sudo dpkg -i graylog-2.3-repository_latest.deb
sudo apt update
Installa il pacchetto Graylog:
sudo apt install graylog-server
Il server Graylog è ora installato sul tuo server. Prima di poterlo avviare, dovrai configurare alcune cose.
Installa l' pwgen
utilità per generare password complesse.
sudo apt -y install pwgen
Ora genera un segreto per password complesse.
pwgen -N 1 -s 96
Verrà emesso in modo simile a:
[user@vultr ~]$ pwgen -N 1 -s 96
pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
Inoltre, genera un hash a 256 bit per la password admin
dell'utente root :
echo -n StrongPassword | sha256sum
Sostituisci StrongPassword
con la password che desideri impostare per l' admin
utente. Vedrai:
[user@vultr ~]$ echo -n StrongPassword | sha256sum
05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223 -
Apri il file di configurazione di Graylog:
sudo nano /etc/graylog/server/server.conf
Trova password_secret =
, copia e incolla la password generata tramite il pwgen
comando. Trova root_password_sha2 =
, copia e incolla l'hash SHA 256-bit convertito della tua password amministratore. Trova #root_email =
, commenta e fornisci il tuo indirizzo email. Rimuovi il commento e imposta il fuso orario su root_timezone
. Per esempio:
password_secret = pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
root_email = [email protected]
root_timezone = Asia/Kolkata
Abilitare l'interfaccia Graylog basata sul Web decommentando #web_enable = false
e impostando il suo valore su true
. Rimuovere anche il commento e modificare le seguenti righe come specificato.
rest_listen_uri = http://0.0.0.0:9000/api/
rest_transport_uri = http://192.0.2.1:9000/api/
web_enable = true
web_listen_uri = http://0.0.0.0:9000/
Salva il file ed esci dal tuo editor di testo.
Riavvia e abilita il servizio Graylog eseguendo:
sudo systemctl restart graylog-server
sudo systemctl enable graylog-server
Per impostazione predefinita, l'interfaccia Web di Graylog è in ascolto localhost
sulla porta 9000 e l'API è in ascolto sulla porta 9000 con URL /api
. In questo tutorial, useremo Nginx come proxy inverso in modo che l'applicazione possa accedere tramite la porta HTTP standard. Installa il web server Nginx eseguendo:
sudo apt -y install nginx
Aprire il file host virtuale predefinito digitando.
sudo nano /etc/nginx/sites-available/default
Sostituisci il contenuto esistente con le seguenti righe:
server
{
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name 192.0.2.1 graylog.example.com;
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/api;
proxy_pass http://127.0.0.1:9000;
}
}
Avvia Nginx e abilitalo all'avvio automatico all'avvio:
sudo systemctl restart nginx
sudo systemctl enable nginx
Conclusione
L'installazione e la configurazione di base del server Graylog sono ora complete. Ora puoi accedere al server Graylog su http://192.0.2.1
o http://graylog.example.com
se hai configurato DNS. Accedi utilizzando il nome utente admin
e la versione in testo normale della password che hai impostato in root_password_sha2
precedenza.
Congratulazioni: hai un server Graylog perfettamente funzionante installato sul tuo server Ubuntu 16.04.