GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Graylog Server na Ubuntu 20.04

Všechny systémy, aplikace a software generují informace, které jsou uloženy v souborech nazývaných protokoly. Tyto protokoly je nutné neustále monitorovat, aby bylo zajištěno správné fungování daného systému a aby se předešlo chybám nebo bezpečnostním rizikům. Často jsou rozptýleny na několika serverech as rostoucím objemem dat je jejich správa stále složitější.

Graylog je bezplatný a open source systém správy protokolů podnikové úrovně, který zahrnuje Elasticsearch, MongoDB a server Graylog. Skládá se z hlavního serveru, který přijímá data od svých klientů nainstalovaných na různých serverech, a dále z webového rozhraní, které slouží k prohlížení dat shromážděných serverem. Graylog je podobný nástroj jako Splunk a LogStash.

V tomto tutoriálu se naučíme, jak nainstalovat Graylog 4 na Ubuntu 20.04 . Graylog server také zabezpečíme SSL certifikátem pomocí Let's Encrypt.

Požadavky:

  • Počítač Ubuntu 20.04 nebo novější
  • Hardware – 4 jádra CPU, 8 GB RAM, pevný disk SSD s vysokým IOPS pro ukládání protokolů Elasticsearch
  • Elasticsearch
  • MongoDB
  • Oracle Java SE 8 (OpenJDK 8 nebo vyšší)

Krok 1:Instalace MongoDB na Ubuntu 20.04

Graylog používá MongoDB k ukládání konfiguračních dat, jako jsou streamy, výstrahy, uživatelé, nastavení atd. Ukládají se pouze metadata a neukládají data protokolů. Nejprve nainstalujme MongoDB na Ubuntu 20.04.

Nejprve nainstalujte všechny nezbytné balíčky:

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

Nyní importujte veřejný klíč GPG:

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

Chcete-li vytvořit soubor se seznamem zdrojů, zadejte:

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

Nyní přidejte zdroj úložiště pro 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

Nyní aktualizujte apt index:

$ sudo apt update 

Chcete-li nainstalovat MongoDB na Ubuntu, zadejte:

$ sudo apt install mongodb-org

Služba MongoDB se po dokončení procesu instalace nespustí automaticky. Chcete-li službu spustit a povolit, zadejte:

$ sudo systemctl enable --now mongod.service

Ověřte stav služby MongoDB:

$ sudo systemctl status mongod.service

Výstup:

● 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.

Jak ukazuje výstup, MongoDB se spustil a služba je v provozu.

Můžete zkontrolovat verzi MongoDB, která je nainstalována

$ 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"
     }
 }

Výstup ukazuje, že jsme nainstalovali MongoDB verze 5.0.2 .

Krok 2:Nainstalujte Elasticsearch na Ubuntu 20.04

Graylog ukládá všechna data protokolu v Elasticsearch. Podporovanou verzi elasticseach najdete na oficiálních stránkách Graylogu.

Elasticseach potřebuje Javu, přichází s Java přibalenou verzí OpenJDK

Importujte klíč GPG úložiště:

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

Dále přidejte úložiště 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

Nyní aktualizujte úložiště

$ sudo apt update

Nakonec nainstalujte opensource verzi elasticsearch zadáním:

$ sudo apt install elasticsearch-oss

Upravte konfigurační soubor elasticsearch a nastavte některé informace, jako je název clusteru, IP adresa, na které elasticsearch naslouchá, a číslo portu

$ 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

Hlavní konfigurační soubory a adresář Elasticsearch jsou:

Data jsou uložena - adresář /var/lib/elasticsearch.
Konfigurační soubory - adresář /etc/elasticsearch
Možnosti spouštění Java - soubor /etc/default/elasticsearch

Elasticsearch přichází s přibalenou verzí OpenJDK. Chcete-li použít vlastní verzi Javy, nastavte proměnnou prostředí ES_JAVA_HOME.

Službu Elasticsearch můžete povolit a spustit jedním příkazem:

$ sudo systemctl enable --now elasticsearch.service

Nyní ověřte, že služba běží správně pomocí následujícího příkazu:

$ sudo systemctl status elasticsearch.service

Výstup:

● 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.

Stiskněte q pro ukončení, zpět do příkazového řádku.

Elasticsearch ve výchozím nastavení funguje na portu 9200 , měli byste jej otevřít na firewallu.

$ sudo ufw allow 9200

Můžete zkontrolovat, zda to funguje

$ 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"
 }

Na výstupu příkazu můžete vidět řádek "number": "7.10.2" zobrazit verzi elasticsearch.

Krok 3:Nainstalujte Graylog na Ubuntu 20.04

Graylog shromažďuje protokoly z různých vstupů a poskytuje výstup do webového rozhraní, které nabízí ke správě protokolů.

Nejprve si budeme muset stáhnout soubor Graylog Repo pomocí příkazu wget:

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

Chcete-li nakonfigurovat úložiště Graylog, zadejte:

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

Nyní můžeme nainstalovat Graylog server

$ apt update
$ sudo apt install graylog-server

Povolte a spusťte službu serveru graylog

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

Upravit konfigurační soubor

Nyní musíme nastavit password_secret a hast hodnotu vašeho root graylog root_password_sha2 .

Chcete-li nastavit tajemství pro zabezpečení uživatelských hesel, můžete použít příkaz pwgen:

$ pwgen -N 1 -s 96
8KOikhjxetTdcJ7qhtPlgtLgBqCX5y4vL36Ig423pqUQn32QatiecCcYol5UEw3XDzwgWDvcFOmMBJzkBZKC52aEpBrItwke

Nyní upravte konfigurační soubor a nastavte heslo

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

Nyní musíme definovat hash hodnotu vašeho účtu s heslem roota Graylog

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

Nyní jej můžete zkopírovat a vložit

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

Můžete přidat další informace, jako je kořenová e-mailová adresa Graylog a síťové rozhraní používané rozhraním Graylog HTTP

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

Měli byste otevřít porty na vašem firewallu

$ sudo ufw allow 9000

Povolte a spusťte službu serveru graylog

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

Můžete najít data protokolu pro Graylog /var/log/graylog-server/server.log a jsou užitečná pro ladění nebo když se server nespustí.

Domovskou stránku můžete zobrazit zadáním veřejné IP vašeho serveru a čísla portu z vašeho prohlížeče, tj. http:// :9000/. Výchozí přihlašovací jméno root pro graylog je admin a heslo je to, které se používá pro hodnotu hash

Krok 4:Konfigurace Nginx jako proxy pro ukončení SSL (volitelné)

Doporučuje se zabezpečit vaše webové rozhraní Graylog pomocí HTTPS. Zde použije Nginx jako reverzní proxy a vygeneruje bezplatný certifikát SSL pro doménu pomocí Let's Encrypt.

Nejprve budeme muset nainstalovat Nginx a poté cerbot pro certifikát let's encrypt.

Nyní nainstalujme Nginx

$ sudo apt install nginx

Nyní povolme Nginx na firewallu

$ sudo ufw allow 'Nginx Full'

Nyní upravíme obsah našeho konfiguračního souboru názvu domény. Nezapomeňte nahradit název souboru názvem vaší domény

$ 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;
 }

Nyní jej aktivujme

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

Poté ověřte, zda je konfigurace v pořádku

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

Nyní musíme nainstalovat cerbot s balíčkem nezbytným pro nginx

$ sudo apt install certbot python3-certbot-nginx

Nyní musíme spustit cerbot pro 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 

Z výstupu můžete vidět umístění SSL certifikátů a soukromého klíče. Tyto informace můžete použít ke konfiguraci SSL pro 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;   
  }
 }

Nyní znovu ověřte pomocí

$ sudo nginx -t

A restartujte službu Nginx

$ sudo systemctl restart nginx.service 

Nyní přistupujte ke své adrese URL Graylog pomocí názvu domény s HTTPS.

Po přihlášení uvidíte svou domovskou stránku

Závěr

V tomto tutoriálu jsme se naučili, jak nainstalovat server Graylog na Ubuntu 20.04, nakonfigurovaný SSL pomocí Nginx jako reverzního proxy.

Pokud se během procesu nastavení setkáte s nějakými problémy, neváhejte je komentovat nebo se na něco zeptat v sekci komentářů.


Ubuntu
  1. Jak nainstalovat Zimbru 8.6 na server Ubuntu 14.04

  2. Jak nainstalovat Graylog Server na Ubuntu 16.04

  3. Jak nainstalovat MongoDB na Ubuntu 18.04

  1. Jak nainstalovat MongoDB na Ubuntu 18.04

  2. Jak nainstalovat MongoDB na Ubuntu 18.04

  3. Jak nainstalovat MongoDB na Ubuntu 22.04

  1. Jak nainstalovat MySQL na Ubuntu 18.04

  2. Jak nainstalovat Minecraft Server na Ubuntu 18.04

  3. Jak nainstalovat Nginx na Ubuntu 20.04