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

So installieren Sie Elasticsearch Logstash Kibana (Elastic Stack) unter Ubuntu 18.04

In diesem Handbuch erfahren Sie, wie Sie den Elastic Stack unter Ubuntu 18.04 installieren. Elastischer Stapel , früher bekannt als ELK-Stack ist eine Sammlung oder ein Stapel kostenloser Open-Source-Software von Elastic Company, die für die zentralisierte Protokollierung entwickelt wurde.

Es ermöglicht das Suchen, Analysieren und Visualisieren von Protokollen aus verschiedenen Quellen in unzähligen Formaten. Die zentralisierte Protokollierung hilft bei der Identifizierung von Server- oder Anwendungsproblemen von einem gemeinsamen Punkt aus.

Elastische Stapelkomponenten

Elastic Stack besteht aus 4 Hauptkomponenten.

  1. Elasticsearch :Dies ist eine RESTful-Suchmaschine, die alle gesammelten Daten speichert oder hält
  2. Logstash :Dies ist die Komponente, die die Daten verarbeitet und für die elastische Suche parst
  3. Kibana :Dies ist eine Webschnittstelle, die Protokolle visualisiert
  4. Beats :Dies sind leichtgewichtige Datenversender, die Protokolle von Hunderten/Tausenden von Servern an den zentralen Server senden, auf dem ELK konfiguriert ist.

Sehen wir uns nun an, wie Sie den Elastic Stack auf Ubuntu 18.04 installieren können.

Voraussetzungen

Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass Sie über die folgende Infrastruktur verfügen.

  1. Ubuntu-Server 18.04 LTS mit Root-Zugriff und einem Nicht-Root-Benutzer plus ufw-Firewall. Das Folgende sollten die Mindestanforderungen des Servers sein.
    • Ubuntu 18.04 LTS
    • 4 GB Arbeitsspeicher
    • 2 CPUs
  2. Java 8 auf Ihrem System installiert, das von Elasticsearch und Logstash benötigt wird.
  3. NGINX ist auf Ihrem Server installiert, der später für die Handhabung von Kibana konfiguriert wird. Empfohlene Lektüre:Nginx unter Ubuntu 18.04 installieren

Nachdem dies gesagt ist, lassen Sie uns eintauchen und mit der Installation des Elastic-Stacks auf Ubuntu beginnen.

1. Installieren Sie Elasticsearch auf Ubuntu

Zunächst importieren wir den öffentlichen GPG-Schlüssel von Elasticsearch in APT. Elastic-Stack-Pakete werden normalerweise mit einem Elasticsearch-Signaturschlüssel signiert, um Ihr System vor Paket-Spoofing zu schützen. Außerdem werden authentifizierte Pakete vom Paketmanager als vertrauenswürdig angesehen.

Führen Sie zum Importieren des GPG-Schlüssels Folgendes aus:

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

Fügen Sie als Nächstes das Elastic-Repository zu sources.list.d hinzu Verzeichnis mit dem folgenden Befehl.

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

Die Ausgabe der beiden Befehle sieht wie folgt aus:

Ausgabe

Aktualisieren Sie nun das Repository des Systems mit dem folgenden Befehl.

sudo apt update

Beispielausgabe

Installieren Sie jetzt Elasticsearch mit dem folgenden Befehl.

sudo apt install elasticsearch

Ausgabe

2. Elasticsearch auf Ubuntu konfigurieren

Elasticsearch lauscht auf Port 9200. Wir werden jedoch den externen Zugriff einschränken, sodass externe Parteien nicht auf Daten zugreifen und den elastischen Cluster herunterfahren können. Allerdings werden wir einige Änderungen an der Elasticsearch-Konfigurationsdatei vornehmen, wie unten gezeigt

sudo nano /etc/elasticsearch/elasticsearch.yml

Suchen Sie network.host -Attribut, kommentieren Sie es aus und fügen Sie localhost hinzu als seinen Wert. Kommentieren Sie auch http.port aus Attribut.

Ausgabe


network.host: localhost
http.port: 9200

Als nächstes starten und aktivieren Sie den Elasticsearch-Dienst wie gezeigt.


sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Ausgabe

Zu diesem Zeitpunkt sollte Elasticsearch betriebsbereit sein. Sie können dies überprüfen, indem Sie den folgenden Befehl ausführen.

systemctl status elasticsearch

Ausgabe

Sie können auch netstat verwenden Befehl wie gezeigt.

netstat -pnltu

Sie können auch curl ausführen Befehl wie gezeigt.

curl -X GET "localhost:9200"

Ausgabe

Groß! Wir haben die Installation und Konfiguration von Elasticsearch abgeschlossen. Als nächstes werden wir Logstash installieren und konfigurieren.

3. Logstash installieren und konfigurieren

Die zweite Komponente des Elastic-Stacks, die wir installieren werden, ist Logstash. Logstash wird für das Sammeln und Zentralisieren von Protokollen von verschiedenen Servern mit Filebeat Data Shipper verantwortlich sein. Anschließend werden Syslog-Daten gefiltert und an Elasticsearch weitergeleitet.

Lassen Sie uns zunächst bestätigen, dass OpenSSL ausgeführt wird. Führen Sie dazu aus.

openssl version -a

Ausgabe

Führen Sie den folgenden Befehl aus, um Logstash zu installieren.

sudo apt install logstash -y

Ausgabe

Als nächstes bearbeiten Sie /etc/hosts Datei und fügen Sie Folgendes hinzu.

18.224.44.11  elk-master

Wobei 18.224.44.11 die IP-Adresse des masterELk-Servers ist.

Wir werden dann den SSL-Zertifikatsschlüssel generieren, um die Übertragung der Protokolldaten vom Client-Filebeat zum Logstash-Server zu sichern.

Erstellen Sie dazu zunächst ein neues SSL-Verzeichnis unter dem Logstash-Konfigurationsverzeichnis „/etc/logstash“ und navigieren Sie in dieses Verzeichnis.


mkdir -p /etc/logstash/ssl
cd /etc/logstash/

Jetzt können Sie das SSL-Zertifikat wie unten gezeigt generieren.

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

Als Nächstes erstellen wir neue Konfigurationsdateien für logstash. Wir erstellen eine Konfigurationsdatei ‚filebeat-input.conf‘ als Eingabedatei von filebeat, ‚syslog-filter.conf‘ für die Syslog-Verarbeitung und schließlich eine ‚output-elasticsearch.conf‘-Datei, um die Elasticsearch-Ausgabe zu definieren.

Navigieren Sie zum Logstash-Verzeichnis und erstellen Sie eine „filebeat-input.conf“ im Verzeichnis „conf.d“.

cd /etc/logstash/
vim conf.d/filebeat-input.conf

Fügen Sie die folgende Konfiguration ein.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

Speichern und beenden Sie den Texteditor.

Für die Syslog-Verarbeitungsprotokolldaten verwenden wir das Filter-Plugin namens „grok“ zum Parsen der Syslog-Dateien.

Erstellen Sie eine neue Konfiguration „syslog-filter.conf“.

vim conf.d/syslog-filter.conf

Fügen Sie die Konfiguration unten ein.


filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Speichern und beenden Sie den Texteditor.

Erstellen Sie abschließend eine Konfigurationsdatei mit dem Namen „output-elasticsearch.conf“ für die Ausgabe von Elasticsearch.

vim conf.d/output-elasticsearch.conf

Fügen Sie den folgenden Inhalt ein.


output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

Speichern und beenden Sie den Texteditor.

Wenn das gesagt und getan ist, aktivieren und starten Sie den Logstash-Dienst.

sudo systemctl enable logstash
sudo systemctl start logstash

Führen Sie den Befehl aus, um zu überprüfen, ob Logstash ausgeführt wird.

sudo systemctl status logstash

Beispielausgabe

Sie können auch netstat verwenden Befehl wie gezeigt.

netstat -pnltu

4. Kibana unter Ubuntu installieren und konfigurieren

Als nächstes werden wir Kibana mit dem folgenden Befehl installieren.

sudo apt install kibana -y

Ausgabe

Als nächstes werden wir ein paar Änderungen an der Kibana-Konfigurationsdatei vornehmen.

vim /etc/kibana/kibana.yml

Suchen Sie die folgenden Attribute und kommentieren Sie sie aus.


server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"

Speichern und beenden Sie den Texteditor.

Aktivieren und starten Sie dann den Kibana-Dienst:


sudo systemctl enable kibana
sudo systemctl start kibana

Ausgabe

Sie können mit netstat bestätigen, dass Kibana auf dem Standardport 5601 ausgeführt wird Befehl wie gezeigt.

netstat -pnltu

Ausgabe

5. Installieren und Konfigurieren von NGINX als Reverse-Proxy für Kibana

Wir verwenden NGINX als Reverse-Proxy für Kibana-Dashboards. Sie müssen Nginx und „Apache2-utils“ wie unten gezeigt installieren.

sudo apt install nginx apache2-utils -y

Ausgabe

Erstellen Sie als Nächstes eine neue virtuelle Hostdatei mit dem Namen kibana.

vim /etc/nginx/vim sites-available/kibana

Fügen Sie den folgenden Inhalt in die virtuelle Hostdatei ein


server {
    listen 80;
 
    server_name localhost;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass https://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Speichern und beenden Sie den Texteditor. Empfohlene Lektüre:NGINX-Standortrichtlinie.

Erstellen Sie als Nächstes eine Basisauthentifizierung für das Kibana-Dashboard mit htpasswd Befehl wie gezeigt.

sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password

Ausgabe

Im obigen Beispiel ist der Benutzername elastisch und das Passwort ist das, was Sie angeben.

Aktivieren Sie als Nächstes die Konfiguration des virtuellen Kibana-Hosts und testen Sie die Nginx-Konfiguration.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t

Ausgabe

Aktivieren Sie den Nginx-Server ohne Fehler und starten Sie ihn neu.


systemctl enable nginx
systemctl restart nginx

6. Installation und Konfiguration von Filebeat

In diesem Schritt konfigurieren wir den Filebeat Data Shipper auf unserem Elk-Master-Server. Dadurch werden alle Syslog-Meldungen an Logstash weitergeleitet, die von Kibana verarbeitet und visualisiert werden.

Um Filebeat zu installieren, führen Sie Folgendes aus:

sudo apt install filebeat

Als nächstes öffnen Sie die Filebeat-Konfigurationsdatei.

sudo vim /etc/filebeat/filebeat.yml

Wir werden Logstash verwenden, um eine zusätzliche Verarbeitung der von Filebeat erfassten Daten durchzuführen. Filebeat wird nicht benötigt, um Daten direkt an Elasticsearch zu senden. Suchen und kommentieren Sie daher den Elasticsearch-Abschnitt wie gezeigt.


#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

Gehen Sie als Nächstes zum Logstash-Bereich und kommentieren Sie wie gezeigt aus.


output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

Aktivieren Sie die Filebeat-Prospektoren, indem Sie den Zeilenwert „enabled“ auf „true“ ändern.

enabled: true

Geben Sie die Systemprotokolldateien an, die an den Logstash-Server gesendet werden sollen. In diesem Beispiel fügen wir die SSH-Protokolldatei „auth.log“ und die Syslog-Datei hinzu.


  paths:
    - /var/log/auth.log
    - /var/log/syslog

Speichern und beenden.

Kopieren Sie abschließend die Logstash-Zertifikatsdatei – logstash-forwarder.crt – nach /etc/filebeat Verzeichnis.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

Starten und aktivieren Sie nun filebeat.


systemctl start filebeat
systemctl enable filebeat

So prüfen Sie den Status des Filebeat-Laufs:

systemctl status filebeat

Ausgabe

7. Testen des Elasticsearch-Stacks

Um unseren Elastic-Stack zu testen, öffnen Sie Ihren Browser und durchsuchen Sie die IP Ihres Servers, gefolgt von Port 5601, dem Port, den Kibana abhört.

ip-address:5601

Geben Sie den Benutzernamen und das Passwort ein und später wird der folgende Bildschirm angezeigt.

Klicken Sie auf die Registerkarte „Entdecken“ und dann auf „Filebeat“. Die folgende Benutzeroberfläche wird angezeigt, die Ihnen ein Live-Streaming von visualisierten Daten bietet.

Herzliche Glückwünsche! Sie haben den Elastic Stack und den Elastic Beat „Filebeat“ erfolgreich auf Ihrem Ubuntu 18.04-System installiert und konfiguriert.


Linux
  1. So installieren Sie Elasticsearch und Kibana unter Linux

  2. So installieren Sie Elasticsearch unter Ubuntu 18.04

  3. So installieren Sie Elasticsearch, Logstash und Kibana 4 auf Ubuntu 14.04 / 15.04

  4. Installieren Sie Elasticsearch, Logstash und Kibana auf Ubuntu 20.04

  5. So installieren und konfigurieren Sie Elasticsearch unter Ubuntu 18.04

So installieren Sie Elasticsearch, Logstash und Kibana (ELK Stack) unter CentOS 7 / RHEL 7

ELK Stack auf Ubuntu 16.04 einrichten – Installieren Sie ElasticSearch, Logstash und Kibana auf Ubuntu 16.04

So installieren Sie Elasticsearch, Logstash und Kibana (ELK Stack) unter Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie ELK Stack auf Ubuntu 18.04

So installieren Sie ELK Stack (Elasticsearch, Logstash und Kibana) unter Ubuntu 20.04

So installieren Sie den ELK-Stack unter Ubuntu 18.04 LTS