GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Graylog Server su Ubuntu 20.04

Tutti i sistemi, le applicazioni e il software generano informazioni che vengono archiviate in file chiamati registri. Tali log devono essere costantemente monitorati per garantire il corretto funzionamento del sistema in oggetto e prevenire errori o rischi per la sicurezza. Sono spesso sparsi su più server e, all'aumentare del volume dei dati, la loro gestione diventa sempre più complessa.

Graylog è un sistema di gestione dei log di livello aziendale gratuito e open source che comprende Elasticsearch, MongoDB e un server Graylog. È costituito dal server principale, che riceve i dati dai suoi client installati su server diversi, nonché da un'interfaccia web, che viene utilizzata per visualizzare i dati raccolti dal server. Graylog è uno strumento simile come Splunk e LogStash.

In questo tutorial impariamo come installare Graylog 4 su Ubuntu 20.04 . Proteggeremo anche il server Graylog con un certificato SSL utilizzando Let's Encrypt.

Requisiti:

  • Macchina Ubuntu 20.04 o successiva
  • Hardware:4 core CPU, 8 GB di RAM, disco rigido SSD con IOPS elevato per l'archiviazione dei log di Elasticsearch
  • Ricerca elastica
  • MongoDB
  • Oracle Java SE 8 (OpenJDK 8 o versioni successive)

Fase 1:installa MongoDB su Ubuntu 20.04

Graylog utilizza MongoDB per archiviare i dati di configurazione come flussi, avvisi, utenti, impostazioni, ecc. Vengono archiviati solo i metadati e non i dati dei registri. Installiamo prima MongoDB su Ubuntu 20.04.

Innanzitutto, installa tutti i pacchetti di prerequisiti:

$ sudo apt update
$ sudo apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget

Ora importa la chiave GPG pubblica:

$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

Per creare un file di elenco di origine, digita:

$ sudo touch /etc/apt/sources.list.d/mongodb-org-5.0.list

Ora aggiungi la fonte del repository per Ubuntu 20.04:

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Ora aggiorna l'indice apt:

$ sudo apt update 

Per installare MongoDB su Ubuntu, digita:

$ sudo apt install mongodb-org

Il servizio MongoDB non si avvierà automaticamente al termine del processo di installazione. Per avviare il servizio e abilitarlo, digita:

$ sudo systemctl enable --now mongod.service

Verifica lo stato del servizio MongoDB:

$ sudo systemctl status mongod.service

Uscita:

● mongod.service - MongoDB Database Server
      Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
      Active: active (running) since Sun 2021-08-22 04:47:46 UTC; 3s ago
        Docs: https://docs.mongodb.org/manual
    Main PID: 17965 (mongod)
      Memory: 66.1M
      CGroup: /system.slice/mongod.service
              └─17965 /usr/bin/mongod --config /etc/mongod.conf
 Aug 22 04:47:46 li175-223 systemd[1]: Started MongoDB Database Server.

Quando l'output mostra che MongoDB è stato avviato e il servizio è attivo e funzionante.

Puoi controllare la versione di MongoDB installata

$ sudo mongod --version
db version v5.0.2
 Build Info: {
     "version": "5.0.2",
     "gitVersion": "6d9ec525e78465dcecadcff99cce953d380fedc8",
     "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
     "modules": [],
     "allocator": "tcmalloc",
     "environment": {
         "distmod": "ubuntu2004",
         "distarch": "x86_64",
         "target_arch": "x86_64"
     }
 }

L'output mostra che abbiamo installato MongoDB versione 5.0.2 .

Passaggio 2:installa Elasticsearch su Ubuntu 20.04

Graylog archivia tutti i dati di registro in Elasticsearch. Fare riferimento al sito Web ufficiale di Graylog per la versione supportata di elasticseach.

Elasticseach necessita di Java, viene fornito con la versione in bundle Java di OpenJDK

Importa la chiave GPG del repository:

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Quindi, aggiungi il repository Elasticsearch:

# echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Ora aggiorna il repository

$ sudo apt update

Infine, installa la versione opensource di elasticsearch digitando:

$ sudo apt install elasticsearch-oss

Modifica il file di configurazione di elasticsearch per impostare alcune informazioni come il nome del cluster, l'indirizzo IP su cui è in ascolto elasticsearch e il numero di porta

$ sudo vi /etc/elasticsearch/elasticsearch.yml
cluster.name: graylog-server
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
action.auto_create_index: false

I file e le directory di configurazione principali di Elasticsearch sono:

I dati vengono archiviati - directory /var/lib/elasticsearch.
File di configurazione - directory /etc/elasticsearch
Opzioni di avvio Java - /etc/default/elasticsearch file

Elasticsearch viene fornito con una versione in bundle di OpenJDK. Per utilizzare la tua versione di Java, imposta la variabile di ambiente ES_JAVA_HOME.

Puoi abilitare e avviare il servizio Elasticsearch utilizzando un comando:

$ sudo systemctl enable --now elasticsearch.service

Ora verifica che il servizio funzioni correttamente usando il seguente comando:

$ sudo systemctl status elasticsearch.service

Uscita:

● elasticsearch.service - Elasticsearch
      Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
      Active: active (running) since Sun 2021-08-22 12:38:24 UTC; 11min ago
        Docs: http://www.elastic.co
    Main PID: 19502 (java)
       Tasks: 41 (limit: 1071)
      Memory: 833.2M
      CGroup: /system.slice/elasticsearch.service
              ├─19502 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negat>
              └─19565 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
 Aug 22 12:38:24 li663-124 systemd[1]: Started Elasticsearch.

Premi q per uscire, torna al prompt dei comandi.

Elasticsearch per impostazione predefinita funziona sulla porta 9200 , dovresti aprirlo sul firewall.

$ sudo ufw allow 9200

Puoi controllare se funziona

$ sudo curl -XGET 'http://localhost:9200'
"name" : "Ubuntunode",
   "cluster_name" : "graylog-server",
   "cluster_uuid" : "sz3jP3rKTPWZlasWwD-rBg",
   "version" : {
     "number" : "7.10.2",
     "build_flavor" : "oss",
     "build_type" : "deb",
     "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
     "build_date" : "2021-01-13T00:42:12.435326Z",
     "build_snapshot" : false,
     "lucene_version" : "8.7.0",
     "minimum_wire_compatibility_version" : "6.8.0",
     "minimum_index_compatibility_version" : "6.0.0-beta1"
   },
   "tagline" : "You Know, for Search"
 }

Con l'output del comando, puoi vedere la riga "number": "7.10.2" mostra la versione elasticsearch.

Passaggio 3:installa Graylog su Ubuntu 20.04

Graylog raccoglie i log dai vari input e fornisce l'output all'interfaccia web che offre per gestire i log.

Per prima cosa, dovremo scaricare il file Graylog Repo usando il comando wget:

$ wget https://packages.graylog2.org/repo/packages/graylog-4.1-repository_1-3_all.deb

Per configurare il repository Graylog, digita:

$ sudo dpkg -i graylog-4.1-repository_1-3_all.deb 

Ora possiamo installare il server Graylog

$ apt update
$ sudo apt install graylog-server

Abilita e avvia il servizio del server graylog

$ sudo systemctl enable --now graylog-server.service

Modifica il file di configurazione

Ora dobbiamo impostare il password_secret e il valore hast del tuo graylog radice root_password_sha2 .

Per impostare un segreto per proteggere le password degli utenti, puoi utilizzare il comando pwgen:

$ pwgen -N 1 -s 96
8KOikhjxetTdcJ7qhtPlgtLgBqCX5y4vL36Ig423pqUQn32QatiecCcYol5UEw3XDzwgWDvcFOmMBJzkBZKC52aEpBrItwke

Ora, modifica il file di configurazione per impostare la password

$ sudo vi /etc/graylog/server/server.conf
password_secret = RlTRqWSBENLKeg89iAWlxSaf1zfqLvBW7VX5SH1d2ji3RMKyeXb8bmfOXLl3GaWkxp9oDRfvbjXiEr36AFd6T9CMmnjdG7dn

Ora dobbiamo definire il valore hash del tuo account con password di root Graylog

$ echo -n GraylogRootPassword | shasum -a 256
4b09467e174a03d5ebd720d514f57783ad1e03b4877fff5e0dc45356340ab215  -

Ora puoi copiarlo e incollarlo

sudo vi /etc/graylog/server/server.conf
root_password_sha2 = 4b09467e174a03d5ebd720d514f57783ad1e03b4877fff5e0dc45356340ab215

È possibile aggiungere ulteriori informazioni come l'indirizzo e-mail principale di Graylog e l'interfaccia di rete utilizzata dall'interfaccia HTTP di Graylog

root_email = "[email protected]"
root_timezone = UTC
http_bind_address = 0.0.0.0:9000

Dovresti aprire le porte sul firewall

$ sudo ufw allow 9000

Abilita e avvia il servizio del server graylog

$ sudo systemctl enable --now graylog-server.service

Puoi trovare i dati di registro per Graylog /var/log/graylog-server/server.log e utili per il debug o quando il server non si avvia.

Puoi vedere la home page inserendo l'ip pubblico del tuo server e il numero di porta dal tuo browser, ad esempio http:// :9000/. Il nome di accesso root predefinito di graylog è admin e la password è quella utilizzata per il valore hash

Fase 4:configurazione di Nginx come proxy di terminazione SSL (opzionale)

Si consiglia di proteggere l'interfaccia Web Graylog con HTTPS. Qui utilizzerà Nginx come proxy inverso e genererà un certificato SSL gratuito per il dominio utilizzando Let's Encrypt.

Per prima cosa, dovremo installare Nginx, quindi cerbot per il certificato Let's encrypt.

Ora installiamo Nginx

$ sudo apt install nginx

Ora consentiamo Nginx sul firewall

$ sudo ufw allow 'Nginx Full'

Ora modifichiamo il contenuto del nostro file di configurazione del nome di dominio. Non dimenticare di sostituire il nome del file con il tuo nome di dominio

$ sudo vim /etc/nginx/sites-available/websitefortesting.com.conf
server {
         listen 80;
         server_name websitefortesting.com;
         add_header Strict-Transport-Security max-age=2592000;
         rewrite ^ https://$server_name$request_uri? permanent;
         access_log /var/log/nginx/websitefortesting.com.access.log combined;     
         error_log  /var/log/nginx/websitefortesting.com.error.log;
 }

Ora attiviamolo

$ sudo ln -s /etc/nginx/sites-available/websitefortesting.com.conf /etc/nginx/sites-enabled/websitefortesting.com.conf

Quindi verifica se la configurazione va bene

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ora dobbiamo installare cerbot con il pacchetto necessario per nginx

$ sudo apt install certbot python3-certbot-nginx

Ora dobbiamo eseguire cerbot per Nginx

$ sudo certbot --nginx
 Saving debug log to /var/log/letsencrypt/letsencrypt.log
 Plugins selected: Authenticator nginx, Installer nginx
 Enter email address (used for urgent renewal and security notices) (Enter 'c' to
 cancel): [email protected]
 
 Please read the Terms of Service at
 https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
 agree in order to register with the ACME server at
 https://acme-v02.api.letsencrypt.org/directory
 
 (A)gree/(C)ancel: A
 
 Would you be willing to share your email address with the Electronic Frontier
 Foundation, a founding partner of the Let's Encrypt project and the non-profit
 organization that develops Certbot? We'd like to send you email about our work
 encrypting the web, EFF news, campaigns, and ways to support digital freedom.
 
 (Y)es/(N)o: N
 Which names would you like to activate HTTPS for?
 
 1: websitefortesting.com
 
 Select the appropriate numbers separated by commas and/or spaces, or leave input
 blank to select all options shown (Enter 'c' to cancel): 1
 Obtaining a new certificate
 Performing the following challenges:
 http-01 challenge for websitefortesting.com
Waiting for verification…
 Cleaning up challenges
 Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/websitefortesting.com.conf
 Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
 
 1: No redirect - Make no further changes to the webserver configuration.
 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
 new sites, or if you're confident your site works on HTTPS. You can undo this
 change by editing your web server's configuration.
 
 Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
 Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/websitefortesting.com.conf
 
 Congratulations! You have successfully enabled https://websitefortesting.com
 You should test your configuration at:
 https://www.ssllabs.com/ssltest/analyze.html?d=websitefortesting.com
 
 IMPORTANT NOTES:
 Congratulations! Your certificate and chain have been saved at:
 /etc/letsencrypt/live/websitefortesting.com/fullchain.pem
 Your key file has been saved at:
 /etc/letsencrypt/live/websitefortesting.com/privkey.pem
 Your cert will expire on 2021-11-18. To obtain a new or tweaked
 version of this certificate in the future, simply run certbot again
 with the "certonly" option. To non-interactively renew all of
 your certificates, run "certbot renew"
 If you like Certbot, please consider supporting our work by:
 Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 Donating to EFF:                    https://eff.org/donate-le 

Dall'output, puoi vedere la posizione dei certificati SSL e la chiave privata. Puoi utilizzare queste informazioni per configurare SSL per Nginx.

$ sudo vi /etc/nginx/sites-available/websitefortesting.com.conf
server {
         listen 80;
         server_name websitefortesting.com;
         add_header Strict-Transport-Security max-age=2592000;
         rewrite ^ https://$server_name$request_uri? permanent;
         access_log /var/log/nginx/websitefortesting.com.access.log combined;
         error_log  /var/log/nginx/websitefortesting.com.error.log;
 }
 server {
         listen 443 ssl; # managed by Certbot
         server_name websitefortesting.com;
         ssl_certificate /etc/letsencrypt/live/websitefortesting.com/fullchain.pem; # managed by Certbot
         ssl_certificate_key /etc/letsencrypt/live/websitefortesting.com/privkey.pem; # managed by Certbot
         include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
         ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
     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_pass http://127.0.0.1:9000;   
  }
 }

Ora verifichiamo di nuovo con

$ sudo nginx -t

E riavvia il servizio Nginx

$ sudo systemctl restart nginx.service 

Ora accedi al tuo URL Graylog utilizzando il nome di dominio con HTTPS.

Dopo il login, puoi vedere la tua home page

Conclusione

In questo tutorial abbiamo imparato come installare il server Graylog su Ubuntu 20.04, configurato SSL utilizzando Nginx come proxy inverso.

In caso di problemi durante il processo di configurazione, non esitare a commentare o porre domande nella sezione commenti.


Ubuntu
  1. Come installare Zimbra 8.6 su Ubuntu 14.04 Server

  2. Come installare Graylog Server su Ubuntu 16.04

  3. Come installare MongoDB su Ubuntu 18.04

  4. Come installare MongoDB su Ubuntu 18.04

  5. Come installare MongoDB su Ubuntu 22.04

Come installare Consul Server su Ubuntu 16.04

Come installare Zabbix su Ubuntu 18.04

Come installare MySQL 8.0 su Ubuntu 18.04

Come installare MongoDB su Ubuntu

Come installare Graylog Server su Ubuntu 21

Come installare MongoDB su Ubuntu 14.04