Graylog è uno strumento software gratuito e open source per la gestione dei registri che può essere utilizzato per monitorare i registri dei sistemi di rete dal server centrale. Utilizza Elasticsearch per archiviare i dati dei registri e fornire funzionalità di ricerca e MongoDB per archiviare le metainformazioni. Ti aiuta a monitorare, cercare e analizzare una grande quantità di dati in un semplice formato leggibile.
In questo tutorial, ti mostreremo come installare Graylog sul server Ubuntu 20.04.
Prerequisiti
- Un server che esegue Ubuntu 20.04.con minimo 4 GB di RAM
- Una password di root è configurata su.
Per iniziare
Innanzitutto, dovrai aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornarli tutti con il seguente comando:
apt-get update -y
Dopo aver aggiornato tutti i pacchetti, dovrai anche installare alcune dipendenze nel tuo server. Puoi installarli tutti con il seguente comando:
apt-get install apt-transport-https gnupg2 uuid-runtime pwgen curl dirmngr -y
Una volta installate tutte le dipendenze necessarie, puoi procedere al passaggio successivo.
Installa Java
Graylog richiede che Java sia installato nel tuo server. Se non è installato, puoi installarlo con il seguente comando:
apt-get install openjdk-11-jre-headless -y
Una volta installato Java, è possibile verificare la versione installata di Java eseguendo il comando seguente:
java -version
Dovresti ottenere il seguente output:
openjdk version "11.0.8" 2020-07-14 OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura Elasticsearch
Graylog utilizza Elasticsearch per archiviare i log provenienti dalla risorsa esterna. Quindi dovrai installare Elasticsearch nel tuo sistema.
Per impostazione predefinita, l'ultima versione di Elasticsearch non è disponibile nel repository predefinito di Ubuntu. Quindi dovrai aggiungere il repository Elasticsearch nel tuo sistema.
Innanzitutto, scarica e aggiungi la chiave GPG di Elasticsearch con il seguente comando:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Successivamente, aggiungi il repository Elasticsearch con il seguente comando:
echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Successivamente, aggiorna il repository e installa Elasticsearch con il seguente comando:
apt-get update -y
apt-get install elasticsearch-oss -y
Dopo aver installato Elasticsearch, dovrai modificare il file di configurazione di Elasticsearch e definire il nome del cluster. Puoi farlo con il seguente comando:
nano /etc/elasticsearch/elasticsearch.yml
Definisci il nome del tuo cluster in graylog e aggiungi l'altra riga come mostrato di seguito:
cluster.name: graylog action.auto_create_index: false
Salva e chiudi il file quando hai finito. Quindi, avvia il servizio Elasticsearch e abilitalo all'avvio all'avvio con il seguente comando:
systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearch
Puoi anche verificare lo stato del servizio Elasticsearch con il seguente comando:
systemctl status elasticsearch
Dovresti ottenere il seguente output:
? elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2020-09-05 08:41:18 UTC; 9s ago Docs: http://www.elastic.co Main PID: 7085 (java) Tasks: 17 (limit: 2353) Memory: 1.1G CGroup: /system.slice/elasticsearch.service ??7085 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -> Sep 05 08:41:18 ubuntu2004 systemd[1]: Started Elasticsearch.
Ora verifica la risposta di Elasticcsearch con il seguente comando:
curl -X GET http://localhost:9200
Dovresti ottenere il seguente output:
{ "name" : "vzg8H4j", "cluster_name" : "graylog", "cluster_uuid" : "6R9SlXxNSUGe6aclcJa9VQ", "version" : { "number" : "6.8.12", "build_flavor" : "oss", "build_type" : "deb", "build_hash" : "7a15d2a", "build_date" : "2020-08-12T07:27:20.804867Z", "build_snapshot" : false, "lucene_version" : "7.7.3", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
Installa il server MongoDB
Graylog usa MongoDB come database. Quindi dovrai installare il database MongoDB sul tuo server. Puoi installarlo con il seguente comando:
apt-get install mongodb-server -y
Una volta installato MongoDB, avvia il servizio MongoDB e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl start mongodb
systemctl enable mongodb
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura Graylog
Per impostazione predefinita, il pacchetto Graylog non è disponibile nel repository predefinito di Ubuntu. Quindi dovrai installare il repository graylog sul tuo server.
Puoi scaricare il pacchetto del repository Graylog con il seguente comando:
wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb
Una volta completato il download, installa il pacchetto scaricato con il seguente comando:
dpkg -i graylog-3.3-repository_latest.deb
Quindi, aggiorna il repository e installa il server Graylog con il seguente comando:
apt-get update -y
apt-get install graylog-server -y
Dopo aver installato il server Graylog, dovrai generare un segreto per proteggere le password degli utenti. Puoi generarlo con il seguente comando:
pwgen -N 1 -s 96
Dovresti vedere il seguente output:
Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c
Successivamente, dovrai anche generare una password sicura per l'utente amministratore Graylog. Avrai bisogno di questa password per accedere all'interfaccia web di Graylog. Puoi generarlo con il seguente comando:
echo -n password | sha256sum
Dovresti vedere il seguente output:
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 -
Ora, modifica il file di configurazione principale di Graylog e definisci entrambe le password:
nano /etc/graylog/server/server.conf
Incolla entrambe le password che hai generato sopra come mostrato di seguito:
password_secret = Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c root_password_sha2 = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
Successivamente, dovrai anche definire un indirizzo di collegamento del tuo server come mostrato di seguito:
http_bind_address = 127.0.0.1:9000
Salva e chiudi il file al termine, quindi avvia il servizio Graylog e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl daemon-reload
systemctl start graylog-server
systemctl enable graylog-server
Successivamente, puoi verificare lo stato del server Graylog utilizzando il seguente comando:
systemctl status graylog-server
Dovresti vedere il seguente output:
? graylog-server.service - Graylog server Loaded: loaded (/lib/systemd/system/graylog-server.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2020-09-05 08:50:16 UTC; 15min ago Docs: http://docs.graylog.org/ Main PID: 8693 (graylog-server) Tasks: 156 (limit: 2353) Memory: 865.0M CGroup: /system.slice/graylog-server.service ??8693 /bin/sh /usr/share/graylog-server/bin/graylog-server ??8726 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX> Sep 05 08:50:16 ubuntu2004 systemd[1]: Started Graylog server.
Puoi anche verificare il registro del server Graylog con il seguente comando:
tail -f /var/log/graylog-server/server.log
Una volta che il server Graylog è stato avviato correttamente, dovresti ottenere il seguente output:
2020-09-05T08:51:36.473Z INFO [ServerBootstrap] Services started, startup times in ms: {InputSetupService [RUNNING]=59, JobSchedulerService [RUNNING]=105, GracefulShutdownService [RUNNING]=106, OutputSetupService [RUNNING]=110, BufferSynchronizerService [RUNNING]=111, UrlWhitelistService [RUNNING]=153, JournalReader [RUNNING]=166, KafkaJournal [RUNNING]=222, MongoDBProcessingStatusRecorderService [RUNNING]=240, ConfigurationEtagService [RUNNING]=259, EtagService [RUNNING]=302, StreamCacheService [RUNNING]=306, LookupTableService [RUNNING]=376, PeriodicalsService [RUNNING]=655, JerseyService [RUNNING]=58701} 2020-09-05T08:51:36.477Z INFO [ServerBootstrap] Graylog server up and running.
A questo punto, il server Graylog viene avviato e rimane in ascolto sulla porta 9000.
Configura Nginx come proxy inverso per Graylog
Successivamente, dovrai installare e configurare Nginx come proxy inverso per accedere al server Graylog.
Innanzitutto, installa il server Nginx con il seguente comando:
apt-get install nginx -y
Dopo aver installato il server Nginx, crea un nuovo file di configurazione dell'host virtuale Nginx con il seguente comando:
nano /etc/nginx/sites-available/graylog.conf
Aggiungi le seguenti righe:
server { listen 80; server_name graylog.example.org; 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://127.0.0.1:9000; } }
Salva e chiudi il file quando hai finito. Quindi, verifica Nginx per eventuali errori di sintassi con il seguente comando:
nginx -t
Dovresti ottenere il seguente output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Quindi, abilita il file di configurazione dell'host virtuale Nginx con il seguente comando:
ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/
Infine, riavvia il servizio Nginx per applicare le modifiche:
systemctl restart nginx
Successivamente, verifica lo stato del Graylog con il seguente comando:
systemctl status nginx
Dovresti ottenere il seguente output:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-09-05 09:07:50 UTC; 20s ago Docs: man:nginx(8) Process: 9408 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 9419 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 9423 (nginx) Tasks: 3 (limit: 2353) Memory: 10.2M CGroup: /system.slice/nginx.service ??9423 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??9424 nginx: worker process ??9425 nginx: worker process Sep 05 09:07:50 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server... Sep 05 09:07:50 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.
Accedi all'interfaccia Web Graylog
Ora apri il tuo browser web e digita l'URL http://graylog.example.com. Verrai reindirizzato alla pagina di accesso di Graylog come mostrato di seguito:
Fornisci il nome utente e la password dell'amministratore e fai clic su Accedi pulsante. Dovresti vedere la dashboard Graylog nella pagina seguente:
Ora, fai clic su Sistema>> Panoramica . Dovresti vedere lo stato del server Graylog nella pagina seguente:
Conclusione
Congratulazioni! hai installato e configurato correttamente il server Graylog con Nginx come proxy inverso su Ubuntu 20.04. Ora puoi esplorare il Graylog e creare un input per ricevere i log Rsyslog da fonti esterne. Sentiti libero di chiedermi se hai domande.