GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie den Graylog-Server unter Ubuntu 20.04

Alle Systeme, Anwendungen und Software generieren Informationen, die in Dateien gespeichert werden, die als Protokolle bezeichnet werden. Diese Protokolle müssen ständig überwacht werden, um die ordnungsgemäße Funktion des betreffenden Systems sicherzustellen und Fehler oder Sicherheitsrisiken zu vermeiden. Sie sind oft über mehrere Server verstreut und mit zunehmender Datenmenge wird ihre Verwaltung immer komplexer.

Graylog ist ein kostenloses und quelloffenes Protokollverwaltungssystem für Unternehmen, das Elasticsearch, MongoDB und einen Graylog-Server umfasst. Es besteht aus dem Hauptserver, der Daten von seinen Clients empfängt, die auf verschiedenen Servern installiert sind, sowie einem Webinterface, mit dem die vom Server gesammelten Daten angezeigt werden. Graylog ist ein ähnliches Tool wie Splunk und LogStash.

In diesem Tutorial lernen wir, wie man Graylog 4 installiert auf Ubuntu 20.04 . Wir werden den Graylog-Server auch mit einem SSL-Zertifikat mit Let's Encrypt sichern.

Anforderungen:

  • Ubuntu 20.04-Rechner oder höher
  • Hardware – 4 CPU-Kerne, 8 GB RAM, SSD-Festplatte mit hohen IOPS für Elasticsearch-Protokollspeicherung
  • Elasticsearch
  • MongoDB
  • Oracle Java SE 8 (OpenJDK 8 oder höher)

Schritt 1:Installieren Sie MongoDB auf Ubuntu 20.04

Graylog verwendet MongoDB, um die Konfigurationsdaten wie Streams, Warnungen, Benutzer, Einstellungen usw. zu speichern. Nur die Metadaten werden gespeichert und nicht die Protokolldaten. Lassen Sie uns zuerst MongoDB auf Ubuntu 20.04 installieren.

Installieren Sie zuerst alle vorausgesetzten Pakete:

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

Importieren Sie nun den öffentlichen GPG-Schlüssel:

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

Um eine Quellenlistendatei zu erstellen, geben Sie Folgendes ein:

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

Fügen Sie nun die Repository-Quelle für Ubuntu 20.04 hinzu:

$ 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

Aktualisieren Sie nun den apt-Index:

$ sudo apt update 

Um MongoDB auf Ubuntu zu installieren, geben Sie Folgendes ein:

$ sudo apt install mongodb-org

Der MongoDB-Dienst wird nach Abschluss des Installationsvorgangs nicht automatisch gestartet. Um den Dienst zu starten und zu aktivieren, geben Sie Folgendes ein:

$ sudo systemctl enable --now mongod.service

Überprüfen Sie den Status des MongoDB-Dienstes:

$ sudo systemctl status mongod.service

Ausgabe:

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

Wie die Ausgabe zeigt, wurde MongoDB gestartet und der Dienst läuft.

Sie können die installierte Version von MongoDB überprüfen

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

Die Ausgabe zeigt, dass wir MongoDB Version 5.0.2 installiert haben .

Schritt 2:Installieren Sie Elasticsearch auf Ubuntu 20.04

Graylog speichert alle Protokolldaten in Elasticsearch. Informationen zur unterstützten Version von Elasticsearch finden Sie auf der offiziellen Website von Graylog.

Elasticsearch benötigt Java, es wird mit der gebündelten Java-Version von OpenJDK

geliefert

Importieren Sie den GPG-Schlüssel des Repositorys:

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

Fügen Sie als Nächstes das Elasticsearch-Repository hinzu:

# 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

Aktualisieren Sie nun das Repository

$ sudo apt update

Installieren Sie schließlich die Open-Source-Version von Elasticsearch, indem Sie Folgendes eingeben:

$ sudo apt install elasticsearch-oss

Ändern Sie die Elasticsearch-Konfigurationsdatei, um einige Informationen wie den Clusternamen, die IP-Adresse, die Elasticsearch überwacht, und die Portnummer festzulegen

$ 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

Die Hauptkonfigurationsdateien und das Hauptverzeichnis von Elasticsearch sind :

Daten werden gespeichert - Verzeichnis /var/lib/elasticsearch.
Konfigurationsdateien - Verzeichnis /etc/elasticsearch
Java-Startoptionen – /etc/default/elasticsearch-Datei

Elasticsearch wird mit einer gebündelten Version von OpenJDK geliefert. Um Ihre eigene Version von Java zu verwenden, setzen Sie die Umgebungsvariable ES_JAVA_HOME.

Sie können den Elasticsearch-Dienst mit einem Befehl aktivieren und starten:

$ sudo systemctl enable --now elasticsearch.service

Überprüfen Sie nun, ob der Dienst ordnungsgemäß ausgeführt wird, indem Sie den folgenden Befehl verwenden:

$ sudo systemctl status elasticsearch.service

Ausgabe:

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

Drücken Sie q zum Beenden und zurück zur Eingabeaufforderung.

Elasticsearch arbeitet standardmäßig auf dem Port 9200 , sollten Sie es auf der Firewall öffnen.

$ sudo ufw allow 9200

Sie können überprüfen, ob es funktioniert

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

Bei der Ausgabe des Befehls sehen Sie die Zeile "number": "7.10.2" zeigt die Elasticsearch-Version.

Schritt 3:Installieren Sie Graylog auf Ubuntu 20.04

Graylog sammelt die Protokolle aus den verschiedenen Eingaben und stellt die Ausgabe der Weboberfläche zur Verfügung, die es zur Verwaltung der Protokolle anbietet.

Zuerst müssen wir die Graylog Repo-Datei mit dem wget-Befehl herunterladen:

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

Um das Graylog-Repository zu konfigurieren, geben Sie Folgendes ein:

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

Jetzt können wir den Graylog-Server

installieren
$ apt update
$ sudo apt install graylog-server

Aktivieren und starten Sie den Graylog-Serverdienst

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

Bearbeiten Sie die Konfigurationsdatei

Jetzt müssen wir das password_secret setzen und den Hast-Wert Ihres Root-Graylogs root_password_sha2 .

Um ein Geheimnis zum Sichern der Benutzerkennwörter festzulegen, können Sie den Befehl pwgen verwenden:

$ pwgen -N 1 -s 96
8KOikhjxetTdcJ7qhtPlgtLgBqCX5y4vL36Ig423pqUQn32QatiecCcYol5UEw3XDzwgWDvcFOmMBJzkBZKC52aEpBrItwke

Bearbeiten Sie nun die Konfigurationsdatei, um das Passwort festzulegen

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

Wir müssen jetzt den Hashwert Ihres Graylog-Root-Passwortkontos definieren

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

Jetzt können Sie es kopieren und einfügen

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

Sie können zusätzliche Informationen wie die Graylog-Root-E-Mail-Adresse und die von der Graylog-HTTP-Schnittstelle verwendete Netzwerkschnittstelle hinzufügen

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

Sie sollten die Ports Ihrer Firewall öffnen

$ sudo ufw allow 9000

Aktivieren und starten Sie den Graylog-Serverdienst

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

Sie finden die Protokolldaten für Graylog /var/log/graylog-server/server.log und sind nützlich für die Fehlersuche oder wenn der Server nicht startet.

Sie können die Homepage sehen, indem Sie die öffentliche IP Ihres Servers und die Portnummer Ihres Browsers eingeben, dh http:// :9000/. Der Standard-Root-Anmeldename von Graylog ist admin und das Passwort ist dasjenige, das für den Hashwert verwendet wird

Schritt 4:Konfigurieren von Nginx als SSL-Terminierungsproxy (optional)

Es wird empfohlen, Ihre Graylog-Weboberfläche mit HTTPS zu sichern. Hier wird Nginx als Reverse-Proxy verwendet und mit Let’s Encrypt ein kostenloses SSL-Zertifikat für die Domain generiert.

Zuerst müssen wir Nginx installieren, dann cerbot für das let's encrypt-Zertifikat.

Jetzt installieren wir Nginx

$ sudo apt install nginx

Lassen Sie uns nun Nginx in der Firewall zulassen

$ sudo ufw allow 'Nginx Full'

Lassen Sie uns nun den Inhalt unserer Domänennamen-Konfigurationsdatei bearbeiten. Vergessen Sie nicht, den Dateinamen durch Ihren Domainnamen zu ersetzen

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

Jetzt aktivieren wir es

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

Überprüfen Sie dann, ob die Konfiguration in Ordnung ist

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

Jetzt müssen wir cerbot mit dem für nginx notwendigen Paket installieren

$ sudo apt install certbot python3-certbot-nginx

Jetzt müssen wir cerbot für Nginx ausführen

$ 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 

In der Ausgabe können Sie den Speicherort von SSL-Zertifikaten und den privaten Schlüssel sehen. Sie können diese Informationen verwenden, um SSL für Nginx zu konfigurieren.

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

Jetzt überprüfen wir noch einmal mit

$ sudo nginx -t

Und starten Sie den Nginx-Dienst neu

$ sudo systemctl restart nginx.service 

Greifen Sie nun über den Domainnamen mit HTTPS auf Ihre Graylog-URL zu.

Nach der Anmeldung können Sie Ihre Startseite sehen

Schlussfolgerung

In diesem Tutorial haben wir gelernt, wie man den Graylog-Server auf Ubuntu 20.04 installiert und SSL mit Nginx als Reverse-Proxy konfiguriert.

Wenn Sie während des Einrichtungsvorgangs auf Probleme stoßen, können Sie im Kommentarbereich gerne einen Kommentar hinterlassen oder Fragen stellen.


Ubuntu
  1. So installieren Sie Zimbra 8.6 auf einem Ubuntu 14.04-Server

  2. So installieren Sie den Graylog-Server unter Ubuntu 16.04

  3. So installieren Sie MongoDB unter Ubuntu 18.04

  4. So installieren Sie MongoDB auf Ubuntu 18.04

  5. So installieren Sie MongoDB unter Ubuntu 22.04

So installieren Sie Consul Server unter Ubuntu 16.04

So installieren Sie Zabbix unter Ubuntu 18.04

So installieren Sie MySQL 8.0 auf Ubuntu 18.04

So installieren Sie MongoDB auf Ubuntu

So installieren Sie den Graylog-Server unter Ubuntu 21

So installieren Sie MongoDB unter Ubuntu 14.04