GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Elastic Stack (Elasticsearch, Logstash und Kibana) unter CentOS 8

Elasticsearch ist eine Open-Source-Suchmaschine, die auf Lucene basiert und in Java entwickelt wurde. Es bietet eine verteilte und mandantenfähige Volltextsuchmaschine mit einer HTTP-Dashboard-Webschnittstelle (Kibana). Die Daten werden mit einem JSON-Dokumentenschema abgefragt, abgerufen und gespeichert. Elasticsearch ist eine skalierbare Suchmaschine, mit der nach allen Arten von Textdokumenten, einschließlich Protokolldateien, gesucht werden kann. Elasticsearch ist das Herzstück des „Elastic Stack“ oder ELK Stack.

Logstash ist ein Open-Source-Tool zum Verwalten von Ereignissen und Protokollen. Es bietet Echtzeit-Pipelining für Datenerfassungen. Logstash sammelt Ihre Protokolldaten, konvertiert die Daten in JSON-Dokumente und speichert sie in Elasticsearch.

Kibana ist ein Open-Source-Datenvisualisierungstool für Elasticsearch. Kibana bietet eine hübsche Dashboard-Weboberfläche. Es ermöglicht Ihnen, Daten von Elasticsearch zu verwalten und zu visualisieren. Es ist nicht nur schön, sondern auch mächtig.

In diesem Tutorial zeigen wir Ihnen Schritt für Schritt die Installation und Konfiguration des ‚Elastic Stack‘ auf dem CentOS 8 Server. Wir installieren und richten Elasticsearch, Logstash und Kibana ein. Und dann richten Sie den Beats-'Filebeat' auf Client-Ubuntu- und CentOS-Systemen ein.

Voraussetzungen

  • CentOS 8 64 Bit mit 4 GB RAM - elk-master
  • CentOS 8 64 Bit mit 1 GB RAM – client01
  • Ubuntu 18.04 64 Bit mit 1 GB RAM – client02

Was wir tun werden:

  • Elastic Repository zum CentOS 8-Server hinzufügen
  • Installieren und konfigurieren Sie Elasticsearch
  • Kibana-Dashboard installieren und konfigurieren
  • Nginx als Reverse-Proxy für Kibana einrichten
  • Logstash installieren und konfigurieren
  • Filebeat installieren und konfigurieren
  • Testen

Schritt 1 – Elastic-Repository hinzufügen

Zuerst werden wir den Elasticsearc-Schlüssel und das Repository zum CentOS 8-Server hinzufügen. Mit dem von elastic.co bereitgestellten Elasticsearch-Repository können wir elastische Produkte installieren, darunter Elasticsearch, Logstash, Kibana und Beats.

Fügen Sie den elastischen Schlüssel mit dem folgenden Befehl zum System hinzu.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Gehen Sie danach in das Verzeichnis ‚/etc/yum.repos.d‘ und erstellen Sie eine neue Repository-Datei ‚elasticsearch.repo‘.

cd /etc/yum.repos.d/
vim elasticsearch.repo

Fügen Sie das Elasticsearch-Repository unten ein.

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Speichern und schließen.

Überprüfen Sie nun alle verfügbaren Repositorys auf dem System mit dem folgenden dnf-Befehl.

dnf repolist

Und Sie erhalten das Elasticsearch-Repository, das dem CentOS 8-Server hinzugefügt wurde.

Daher können Sie Elastic-Produkte wie Elasticsearch, Logstash und Kibana usw. installieren.

Schritt 2 – Elasticsearch installieren und konfigurieren

In diesem Schritt installieren und konfigurieren wir Elasticsearch.

Installieren Sie das Elasticsearch-Paket mit dem folgenden dnf-Befehl.

sudo dnf install elasticsearch -y

Gehen Sie nach Abschluss der Installation in das Verzeichnis „/etc/elasticsearch“ und bearbeiten Sie die Konfigurationsdatei „elasticsearch.yml“ mit dem vim-Editor.

cd /etc/elasticsearch/
vim elasticsearch.yml

Entkommentieren Sie die folgenden Zeilen und ändern Sie den Wert für jede Zeile wie folgt.

network.host: 127.0.0.1
http.port: 9200

Speichern und schließen.

Optional:

Sie können die elastische Suche optimieren, indem Sie die JVM-Konfigurationsdatei „jvm.options“ bearbeiten und die Heap-Größe basierend auf Ihrem verfügbaren Arbeitsspeicher einrichten.

Bearbeiten Sie die JVM-Konfiguration „jvm.options“ mit dem vim-Editor.

vim jvm.options

Ändern Sie die minimale/maximale Heap-Größe über die Xms- und Xmx-Konfiguration wie unten beschrieben.

-Xms512m
-Xmx512m

Speichern und schließen.

Laden Sie als Nächstes die Konfiguration des systemd-Managers neu und fügen Sie den Elasticsearch-Dienst zur Startzeit hinzu.

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch

Starten Sie dann den Elasticsearch-Dienst.

sudo systemctl start elasticsearch

Infolgedessen läuft die elastische Suche hinter der lokalen IP-Adresse „127.0.0.1“ mit dem Standardport „9200“ auf dem CentOS 8-Server.

Sie können die elastische Suche mit dem folgenden Curl-Befehl überprüfen.

curl -XGET 'http://127.0.0.1:9200/?pretty'

Und unten ist das Ergebnis, das Sie erhalten werden.

Schritt 3 – Kibana Dashboard installieren und konfigurieren

Nach der Installation von Elasticsearch werden wir das Kibana Dashboard auf dem CentOS 8-Server installieren und konfigurieren.

Installieren Sie das Kibana-Dashboard mit dem folgenden dnf-Befehl.

sudo dnf install kibana

Gehen Sie nach Abschluss der Installation in das Verzeichnis „/etc/kibana“ und bearbeiten Sie die Konfigurationsdatei „kibana.yml“.

cd /etc/kibana/
vim kibana.yml

Entkommentieren und ändern Sie die Konfiguration einiger Zeilen wie unten.

server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"

Speichern und schließen.

Fügen Sie als Nächstes den Kibana-Dienst zum Systemstart hinzu und starten Sie den Kibana-Dienst.

sudo systemctl enable kibana
sudo systemctl start kibana

Der Kibana-Dienst läuft auf dem CentOS 8-Server, überprüfen Sie ihn mit den folgenden Befehlen.

systemctl status kibana
netstat -plntu

Und Sie erhalten das Ergebnis wie folgt.

Als Ergebnis ist der Kibana-Dienst aktiv und läuft standardmäßig über den TCP-Port „5601“.

Schritt 4 – Einrichten von Nginx als Reverse-Proxy für Kibana

In diesem Schritt installieren wir den Nginx-Webserver und richten ihn als Reverse-Proxy für das Kibana-Dashboard ein.

Installieren Sie Nginx und httpd-tools mit dem folgenden dnf-Befehl.

sudo dnf install nginx httpd-tools

Gehen Sie nach Abschluss der Installation in das Verzeichnis „/etc/nginx/conf.d“ und erstellen Sie eine neue Konfigurationsdatei „kibana.conf“.

cd /etc/nginx/conf.d/
vim kibana.conf

Fügen Sie die folgende Konfiguration ein.

server {
    listen 80;
 
    server_name elk.hakase-labs.io;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass http://127.0.0.1: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 schließen.

Als nächstes müssen wir die grundlegende Authentifizierung zum Sichern des Kibana-Zugriffs erstellen. Ändern Sie den „hakase“-Benutzer durch Ihren eigenen und führen Sie den htpasspwd-Befehl wie unten beschrieben aus.

sudo htpasswd -c /etc/nginx/.kibana-user hakase
TYPE YOUR PASSWORD

Geben Sie Ihr Passwort ein und testen Sie die nginx-Konfiguration.

nginx -t

Stellen Sie sicher, dass kein Fehler vorliegt.

Fügen Sie nun den nginx-Dienst zum Systemstart hinzu und starten Sie den nginx-Dienst.

systemctl enable nginx
systemctl start nginx

Als Ergebnis sind die Installation und Konfiguration von Nginx als Reverse-Proxy für Kibana Dashboard abgeschlossen.

Schritt 5 – Logstash installieren und konfigurieren

In diesem Schritt installieren und konfigurieren wir logstash the log shipper. Wir installieren Logstash, richten die Eingabe-Beats ein, richten die Syslog-Filterung mit dem Logstash-Plugin namens „grok“ ein und richten dann die Ausgabe für Elasticsearch ein.

Installieren Sie Logstash mit dem folgenden dnf-Befehl.

sudo dnf install logstash

Gehen Sie nach Abschluss der Installation in das Verzeichnis „/etc/logstash“ und bearbeiten Sie die JVM-Konfigurationsdatei „jvm.options“ mit dem vim-Editor.

cd /etc/logstash/
vim jvm.options

Ändern Sie die minimale/maximale Heap-Größe über die Xms- und Xmx-Konfiguration wie unten beschrieben.

-Xms512m
-Xmx512m

Speichern und schließen.

Gehen Sie als Nächstes in das Verzeichnis „/etc/logstash/conf.d“ und erstellen Sie die Konfigurationsdatei für die Beats-Eingabe namens „input-beat.conf“.

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

Fügen Sie die folgende Konfiguration ein.

input {
  beats {
    port => 5044
  }
}

Speichern und schließen.

Erstellen Sie nun die Konfigurationsdatei ‚syslog-filter.conf‘.

vim syslog-filter.conf

Fügen Sie die folgende Konfiguration 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 schließen.

Und erstellen Sie dann die Ausgabekonfiguration für Elasticsearch 'output-elasticsearch.conf'.

vim output-elasticsearch.conf

Fügen Sie die folgende Konfiguration ein.

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

Speichern und schließen.

Fügen Sie als Nächstes den Logstash-Dienst zum Systemstart hinzu und starten Sie den Logstash-Dienst.

systemctl enable logstash
systemctl start logstash

Der Logstash-Dienst ist aktiv und läuft, überprüfen Sie dies mit den folgenden Befehlen.

systemctl status logstash
netstat -plntu

Und Sie erhalten das Ergebnis wie folgt.

Infolgedessen läuft der logstash-Protokollversender auf dem CentOS 8-Server mit dem Standard-TCP-Port „5044“. Und die grundlegende Elastic Stack-Installation ist abgeschlossen, und wir sind bereit, unsere Protokolle an den Elastic (ELK Stack)-Server zu senden und zu überwachen.

Schritt 6 – Installieren Sie Filebeat auf dem Client

In diesem Schritt zeigen wir Ihnen, wie Sie den Filebeat auf dem Ubuntu- und CentOS-System einrichten. Wir werden einen Filebeat installieren und konfigurieren, um Protokolle von beiden Servern an den Logstash auf dem elastischen Server zu senden.

- Installieren Sie Filebeat auf CentOS 8

Fügen Sie den Elasticsearch-Schlüssel mit dem folgenden Befehl zum CentOS 8-System hinzu.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Gehen Sie nun in das Verzeichnis ‚/etc/yum.repos.d‘ und erstellen Sie die Datei ‚elasticsearch.repo‘ mit dem vim-Editor.

cd /etc/yum.repos.d/
vim elasticsearch.repo

Fügen Sie die folgende Konfiguration ein.

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Speichern und schließen.

Installieren Sie nun den Filebeat mit dem untenstehenden dnf-Befehl.

sudo dnf install filebeat

Warten Sie, bis die Filebeat-Installation abgeschlossen ist.

- Installieren Sie Filebeat auf Ubuntu 18.04

Installieren Sie zunächst die apt-transport-https-Pakete.

sudo apt install apt-transport-https

Fügen Sie danach den Elasticsearch-Schlüssel und das Repository mit den folgenden Befehlen hinzu.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Aktualisieren Sie nun alle Repositories und installieren Sie Filebeat auf dem Ubuntu-System mit dem folgenden apt-Befehl.

sudo apt update
sudo apt install filebeat

Warten Sie, bis die Filebeat-Installation abgeschlossen ist.

- Filebeat konfigurieren

Die Filebeat-Konfiguration befindet sich im Verzeichnis „/etc/filebeat“. Wechseln Sie in das filebeat-Verzeichnis und bearbeiten Sie die Konfigurationsdatei ‚filebeat.yml‘.

cd /etc/filebeat/
vim filebeat.yml

Deaktivieren Sie nun die standardmäßige Elasticsearch-Ausgabe wie unten beschrieben.

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

Aktivieren Sie dann die Logstash-Ausgabe und geben Sie die IP-Adresse des Logstash-Hosts an.

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

Speichern und schließen.

Als nächstes müssen wir Filebeat-Module aktivieren. Führen Sie den folgenden filebeat-Befehl aus, um die Liste der filebeat-Module abzurufen.

filebeat modules list

Aktivieren Sie das Modul „System“ mit dem folgenden Befehl.

filebeat modules enable system

Das Filebeat-Systemmodul wurde mit der Konfigurationsdatei „modules.d/system.yml“ aktiviert.

Bearbeiten Sie die Systemmodulkonfiguration mit dem vim-Editor.

cd /etc/filebeat/
vim modules.d/system.yml

Entkommentieren Sie den Pfad der Syslog-Datei und der SSH-Autorisierungsdatei.

Für das CentOS-System:

  # Syslog
  syslog:
    enabled: true
    var.paths: ["/var/log/messages"]

  # Authorization logs
  auth:
    enabled: true
    var.paths: ["/var/log/secure"]

Für das Ubuntu-System:

  # Syslog
  syslog:
    enabled: true
    var.paths: ["/var/log/syslog"]

  # Authorization logs
  auth:
    enabled: true
    var.paths: ["/var/log/auth.log"]

Speichern und schließen.

Fügen Sie nun den Filebeat-Dienst zum Systemstart hinzu und starten Sie den Dienst.

systemctl enable filebeat
systemctl start filebeat

Der Filebeat-Dienst ist aktiv und läuft, Sie können dies mit dem folgenden Befehl überprüfen.

systemctl status filebeat

Und Ihnen wird das Ergebnis wie folgt angezeigt.

Unten ist das Ergebnis vom CentOS 8-Server.

Und unten ist vom Ubuntu Server 18.04.

Als Ergebnis wurde die Verbindung zwischen filebeat und dem Logstash-Dienst auf der Elastic-Stack-Server-IP-Adresse „10.5.5.12“ hergestellt.

Schritt 7 – Testen

Öffnen Sie Ihren Webbrowser und geben Sie den Domänennamen der Elastic Stack-Installation in die Adressleiste ein.

http://elk.hakase-labs.io/

Melden Sie sich jetzt beim Kibana-Dashboard mit dem Basisauthentifizierungskonto an, das Sie erstellt haben.

Und Sie erhalten das Kibana-Dashboard wie folgt.

Stellen Sie nun eine Verbindung zu den Elasticsearch-Indexdaten her, die automatisch erstellt wurden, nachdem der Filebeat mit dem Logstash verbunden wurde. Klicken Sie auf 'Mit Ihrem Elasticsearch-Index verbinden ' Link.

Erstellen Sie die Datei „filebeat-* ' Indexmuster und klicken Sie auf 'Nächster Schritt ' Schaltfläche.

Wählen Sie als Filternamen „@timestamp ' filtern und auf 'Indexmuster erstellen klicken '.

Und die 'filebeat-* ' Indexmuster erstellt wurde, klicken Sie auf 'Entdecken ' Menü auf der linken Seite.

Und Sie erhalten die Protokolldaten von Filebeat-Clients wie folgt.

Protokolle für das CentOS 8-System.

Protokoll für das Ubuntu-System.

Als Ergebnis wurden die im Filebeat-Systemmodul definierten Protokolldaten an den Elastic-Stack-Server gesendet.

Und die Elastic Stack-Installation und -Konfiguration auf CentOS 8 wurde erfolgreich abgeschlossen.


Cent OS
  1. So installieren Sie Elasticsearch und Kibana unter Linux

  2. So installieren Sie Elasticsearch, Logstash und Kibana 4 auf CentOS 7 / RHEL 7

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

  4. So installieren Sie den ELK-Stack unter CentOS 7

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

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 (Elasticsearch, Logstash und Kibana) unter Ubuntu 20.04

So installieren Sie den ELK-Stack unter CentOS 7

So installieren Sie den ELK-Stack unter CentOS 8

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