Wie man Elastic Stack auf Ubuntu 18.04 LTS installiert
Elasticsearch ist eine Open-Source-Suchmaschine auf Basis von Lucene, entwickelt in Java. Es bietet eine verteilte und mandantenfähige Volltextsuchmaschine mit einer HTTP Dashboard Webschnittstelle (Kibana). Die Daten werden in einem JSON-Dokumentschema abgefragt, abgerufen und gespeichert. Elasticsearch ist eine skalierbare Suchmaschine, mit der Sie nach allen Arten von Textdokumenten, einschließlich Protokolldateien, suchen können. Die elastische Suche ist das Herzstück des „Elastic Stack“ oder ELK Stacks.
Logstash ist ein Open-Source-Tool zur Verwaltung von Ereignissen und Protokollen. Es bietet Echtzeit-Pipelining für die Datenerfassung. 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 die Verwaltung und Visualisierung von Daten aus der Elastischen Suche. Es ist nicht nur schön, sondern auch kraftvoll.
In diesem Tutorial zeige ich Ihnen, wie Sie Elastic Stack auf einem Ubuntu 18.04 Server zur Überwachung von Serverlogs installieren und konfigurieren. Dann zeige ich Ihnen, wie Sie’Elastic Beats‘ auf einem Ubuntu 18.04 und einem CentOS 7 Client-Server installieren und konfigurieren.
Voraussetzungen
- 3 Server
- Ubuntu 18.04 mit 4GB Ram/Speicher als’elk-master‘ – 10.0.15.10
- Ubuntu 18.04 mit 512MB/1GB Ram/Memory als’elk-client01′ – 10.0.15.21
- CentOS 7.5 mit 512MB/1GB Ram/Memory als’elk-client02′ – 10.0.15.22
- Root-Rechte
Was werden wir tun?
- Elastischen Stapel installieren
- Java installieren
- ElasticSearch installieren und konfigurieren
- Installation und Konfiguration von Kibana
- Nginx als Reverse Proxy für Kibana installieren und konfigurieren
- Logstash installieren und konfigurieren
- Installation und Konfiguration von Filebeat auf Ubuntu 18.04
- Installation und Konfiguration von Filebeat auf CentOS 7.5
- Prüfung
Schritt 1 – Installieren des elastischen Stapels
In diesem ersten Schritt werden wir den ‚Elastic Stack‘ auf dem ‚elk-master‘ Server installieren und konfigurieren, also führen Sie alle Befehle und Schritte für diesen Schritt nur auf dem ‚elk-master‘ Server aus. Wir werden jede Komponente des elastischen Stapels installieren und konfigurieren, einschließlich Elasticsearch, Logstash Shipper und Kibana Dashboard mit Nginx Webserver.
Java installieren
Für die Bereitstellung des Elastic Stacks ist Java erforderlich. Für die elastische Suche ist Java 8 erforderlich. Es wird empfohlen, das Oracle JDK 1.8 zu verwenden, und wir werden Java 8 aus einem PPA-Repository installieren.
Installieren Sie die Pakete ’software-properties-common‘ und ‚apt-transport-https‘ und fügen Sie dann das PPA ‚webupd8team‘ Java-Repository hinzu. Führen Sie unten die Befehle „apt install“ und „add-apt-repository“ aus.
sudo apt install software-properties-common apt-transport-https -y sudo add-apt-repository ppa:webupd8team/java -y
Installieren Sie nun den java8-Installer.
sudo apt install oracle-java8-installer -y
Nachdem die Installation abgeschlossen ist, überprüfen Sie die Java-Version.
java -version
Java 1.8 auf dem System installiert.
Als nächstes werden wir die Java-Umgebung konfigurieren. Überprüfen Sie die Java-Binärdatei mit dem folgenden Befehl.
update-alternatives --config java
Und Sie erhalten die Java-Binärdatei im Verzeichnis‘/usr/lib/jvm/java-8-oracle‚.
Erstellen Sie nun die Profildatei’java.sh‘ unter dem Verzeichnis’profile.d‘.
vim /etc/profile.d/java.sh
Fügen Sie die Konfiguration der Java-Umgebung unten ein.
#Set JAVA_HOME JAVA_HOME="/usr/lib/jvm/java-8-oracle" export JAVA_HOME PATH=$PATH:$JAVA_HOME export PATH
Speichern und beenden.
Machen Sie die Datei ausführbar und laden Sie die Konfigurationsdatei.
chmod +x /etc/profile.d/java.sh source /etc/profile.d/java.sh
Überprüfen Sie nun die Java-Umgebung mit dem folgenden Befehl.
echo $JAVA_HOME
Und du bekommst das Java-Verzeichnis, das sich im Verzeichnis‘/usr/lib/jvm/java-8-oracle‚ befindet.
Elastische Suche installieren
Nach der Installation von Java werden wir die erste Komponente des Elastic Stack installieren, wir werden die elasticsearch installieren.
Fügen Sie den elastischen Stapelschlüssel hinzu und fügen Sie das elastische Repository dem System hinzu.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Aktualisieren Sie nun das Repository und installieren Sie das Paket elasticsearch mit dem folgenden Befehl.
sudo apt update sudo apt install elasticsearch -y
Nachdem die Installation abgeschlossen ist, gehen Sie in das Verzeichnis’/etc/elasticsearch‘ und bearbeiten Sie die Konfigurationsdatei’elasticsearch.yml‘.
cd /etc/elasticsearch/ vim elasticsearch.yml
Entkommentieren Sie die Zeile’network.host‘ und ändern Sie den Wert in’localhost‘, und entkommentieren Sie die Zeile’http.port‘ für die Konfiguration des elastischen Suchports.
network.host: localhost http.port: 9200
Speichern und beenden.
Starten Sie nun den elasticsearch-Dienst und lassen Sie ihn jedes Mal beim Systemstart starten.
systemctl start elasticsearch systemctl enable elasticsearch
Die elasticsearch ist nun betriebsbereit, überprüfen Sie sie mit dem netstat-Befehl netstat und den folgenden Rollbefehlen.
netstat -plntu curl -XGET 'localhost:9200/?pretty'
Sie erhalten nun die elasticsearch Version ‚6.2.4‘ läuft auf dem Standard-Port’9200′.
Die Installation der elastischen Suche ist abgeschlossen.
Installation und Konfiguration des Kibana Dashboards
Die zweite Komponente ist ein kibana Dashboard. Wir werden das Kibana Dashboard aus dem elastischen Repository installieren und den kibana-Dienst so konfigurieren, dass er auf der lokalen Host-Adresse läuft.
Installieren Sie das Kibana Dashboard mit dem Befehl apt unten.
sudo apt install kibana -y
Gehen Sie nun in das Verzeichnis’/etc/kibana‘ und bearbeiten Sie die Konfigurationsdatei’kibana.yml‘.
cd /etc/kibana/ vim kibana.yml
Entkommentieren Sie diese Zeilen’server.port‘,’server.host‘ und’elasticsearch.url‘.
server.port: 5601 server.host: "localhost" elasticsearch.url: "http://localhost:9200"
Speichern und beenden.
Starten Sie nun den kibana-Dienst und aktivieren Sie ihn, damit er jederzeit beim Systemstart gestartet werden kann.
sudo systemctl enable kibana sudo systemctl start kibana
Das kibana Dashboard ist nun unter der Adresse’localhost‘ und dem Standardport’5601′ lauffähig. Überprüfen Sie dies mit dem untenstehenden netstat-Befehl.
netstat -plntu
Die Installation des Kibana Dashboards ist abgeschlossen.
Nginx als Reverse-Proxy für Kibana installieren und konfigurieren
In diesem Tutorial werden wir den Nginx-Webserver als Reverse-Proxy für das Kibana Dashboard verwenden.
Installieren Sie Nginx und die Pakete ‚apache2-utils‘ auf dem System.
sudo apt install nginx apache2-utils -y
Nachdem die Installation abgeschlossen ist, gehen Sie in das Konfigurationsverzeichnis von ‚/etc/nginx‘ und erstellen Sie eine neue virtuelle Hostdatei namens’kibana‘.
cd /etc/nginx/ vim sites-available/kibana
Fügen Sie die Konfiguration des virtuellen Nginx-Hosts unten ein.
server { listen 80; server_name elastic-stack.io; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.kibana-user; location / { proxy_pass http://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.
Als nächstes werden wir einen neuen Webserver für die Basisauthentifizierung für den Zugriff auf das Kibana Dashboard erstellen. Wir werden die Basisauthentifizierung mit dem Befehl htpasswd wie folgt erstellen.
sudo htpasswd -c /etc/nginx/.kibana-user elastic Type the elastic user password
Aktiviere den virtuellen kibana-Host und teste die gesamte nginx-Konfiguration.
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/ nginx -t
Stellen Sie sicher, dass kein Fehler vorliegt, starten Sie nun den Nginx-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet werden kann.
systemctl enable nginx systemctl restart nginx
Die Installation und Konfiguration von Nginx als Reverse-Proxy für das Kibana Dashboard ist abgeschlossen.
Logstash installieren und konfigurieren
Die letzte Komponente für den Elastic Stack für diese Anleitung ist der’Logstash‘. Wir werden Logsatash installieren und konfigurieren, um Serverprotokolle aus Client-Quellen mit filebeat zu zentralisieren, dann alle Daten zu filtern und zu transformieren (Syslog) und sie in den Speicher zu transportieren (Elasticsearch).
Bevor Sie Logstash installieren, stellen Sie sicher, dass Sie die OpenSSL-Version Ihres Servers überprüfen.
openssl version -a
Für dieses Handbuch verwenden wir die OpenSSL ‚1.0.2o‘. Wenn Sie immer noch die OpenSSL-Version 1.1.2 verwenden, erhalten Sie eine Fehlermeldung bei der logstash und filebeat SSL-Verbindung.
Installieren Sie logstash mit dem Befehl apt unten.
sudo apt install logstash -y
Nach Abschluss der Installation generieren wir den SSL-Zertifikatsschlüssel, um den Logdatentransfer vom Client filebeat zum Logstash-Server zu sichern.
Bearbeiten Sie die Datei ‚/etc/hosts‘ mit vim.
vim /etc/hosts
Fügen Sie die folgende Konfiguration hinzu.
10.0.15.10 elk-master elk-master
Speichern und beenden.
Erstellen Sie nun ein neues SSL-Verzeichnis unter dem logstash-Konfigurationsverzeichnis ‚/etc/logstash‘ und gehen Sie zu diesem Verzeichnis.
mkdir -p /etc/logstash/ssl cd /etc/logstash/
Erzeugen Sie das SSL-Zertifikat für Logstash mit dem Befehl openssl wie unten beschrieben.
openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt
Die SSL-Zertifikatsdateien für Logstash wurden im Verzeichnis’/etc/logstash/ssl‘ erstellt.
Als nächstes werden wir neue Konfigurationsdateien für logstash erstellen. Wir erstellen eine Konfigurationsdatei ‚filebeat-input.conf‘ als Eingabedatei von filebeat, ’syslog-filter.conf‘ für die Syslog-Verarbeitung und dann eine ‚output-elasticsearch.conf‘ Datei, um die Ausgabe der Elasticsearch zu definieren.
Gehen Sie in das Konfigurationsverzeichnis von logstash und erstellen Sie die neuen Konfigurationsdateien ‚filebeat-input.conf‘ im Verzeichnis ‚conf.d‘.
cd /etc/logstash/ vim conf.d/filebeat-input.conf
Fügen Sie dort 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.
Für die Syslog-Verarbeitungslogdaten verwenden wir das Filter-Plugin namens’grok‘, um die Syslog-Dateien zu analysieren.
Erstellen Sie eine neue Konfiguration’syslog-filter.conf‘.
vim conf.d/syslog-filter.conf
Fügen Sie dort 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 beenden.
Und für die Ausgabe der elasticsearch erstellen wir die Konfigurationsdatei namens’output-elasticsearch.conf‘.
vim conf.d/output-elasticsearch.conf
Fügen Sie dort die folgende Konfiguration 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.
Wenn dies erledigt ist, starten Sie den logstash-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
sudo systemctl enable logstash sudo systemctl start logstash
Überprüfen Sie den logstash-Dienst mit den folgenden Befehlen netstat und systemctl.
netstat -plntu systemctl status logstash
Und der Logstash-Dienst ist nun einsatzbereit. Läuft auf der öffentlichen IP-Adresse mit Port’5443′.
Die Installation von Elastic Stack ist abgeschlossen.
Schritt 2 – Installieren und Konfigurieren von Filebeat unter Ubuntu 18.04
In diesem Schritt konfigurieren wir den Ubuntu 18.04 Client ‚elk-client01‘, indem wir die Elastic Beats Datenverlader ‚Filebeat‘ darauf installieren.
Bevor wir den Filebeat auf dem System installieren, müssen wir die Datei’/etc/hosts‘ bearbeiten und die Datei’logstash-forwarder.crt‘ auf den Server’elk-client01′ herunterladen.
Bearbeiten Sie die Datei ‚/etc/hosts‘ mit dem vim editor.
vim /etc/hosts
Fügen Sie dort die folgende Konfiguration ein.
10.0.15.10 elk-master elk-master
Speichern und beenden.
Kopieren Sie die logstash-Zertifikatsdatei ‚logstash-forwarder.crt‘ mit dem Befehl scp.
scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .
Als nächstes installieren Sie die Elastic Beats ‚Filebeat‘, indem Sie den elastischen Schlüssel hinzufügen und das elastische Repository hinzufügen.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Aktualisieren Sie das Repository und installieren Sie das Paket’filebeat‘ mit dem untenstehenden Befehl apt.
sudo apt update sudo apt install filebeat -y
Nachdem die Installation abgeschlossen ist, gehen Sie in das Verzeichnis ‚/etc/filebeat‘ und bearbeiten Sie die Konfigurationsdatei ‚filebeat.yml‘.
cd /etc/filebeat/ vim filebeat.yml
Aktivieren Sie nun die Filebeat-Suchmaschinen, indem Sie den Zeilenwert „enabled“ auf „true“ ändern.
enabled: true
Definieren Sie Systemprotokolldateien, die an den Logstash-Server gesendet werden sollen. Für dieses Handbuch werden wir die ssh-Logdatei „auth.log“ und die syslog-Datei hinzufügen.
paths: - /var/log/auth.log - /var/log/syslog
Richten Sie die Ausgabe auf logstash ein, indem Sie die standardmäßige Ausgabe von’elasticsearch‘ kommentieren und die logstash-Ausgabezeile wie unten beschrieben entkommentieren.
output.logstash: # The Logstash hosts hosts: ["elk-master:5443"] ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]
Speichern und beenden.
Als nächstes müssen wir die Datei’filebeat.reference.yml‘ bearbeiten, um Filebeat-Module zu aktivieren, und wir werden das Modul’syslog‘ aktivieren.
vim filebeat.reference.yml
Aktivieren Sie das syslog Systemmodul für filebeat wie unten beschrieben.
- module: system # Syslog syslog: enabled: true
Speichern und beenden.
Kopieren Sie die Logstash-Zertifikatsdatei ‚logstash-forwarder.crt‘ in das Verzeichnis’/etc/filebeat‘.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt
Die Installation und Konfiguration von Filebeat ist abgeschlossen. Starten Sie nun den filebeat-Dienst und lassen Sie ihn jedes Mal beim Systemstart starten.
systemctl start filebeat systemctl enable filebeat
Überprüfen Sie den filebeat-Dienst mit den folgenden Befehlen.
systemctl status filebeat tail -f /var/log/filebeat/filebeat
Die Filebeat-Versender sind unter dem Server Ubuntu 18.04 in Betrieb.
Schritt 3 – Installation und Konfiguration von Filebeat auf CentOS 7.5
In diesem Schritt konfigurieren wir den CentOS 7.5 Client’elk-client02′, indem wir die Elastic Beats Datenverlader’Filebeat‘ darauf installieren.
Bevor wir den Filebeat auf dem System installieren, müssen wir die Datei’/etc/hosts‘ bearbeiten und die Datei’logstash-forwarder.crt‘ auf den Server’elk-client02′ herunterladen.
Bearbeiten Sie die Datei ‚/etc/hosts‘ mit vim.
vim /etc/hosts
Füge die Konfiguration unten ein.
10.0.15.10 elk-master elk-master
Speichern und beenden.
Kopieren Sie die logstash-Zertifikatsdatei ‚logstash-forwarder.crt‘ mit dem Befehl scp.
scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .
Als nächstes installieren Sie die Elastic Beats ‚Filebeat‘, indem Sie den elastischen Schlüssel hinzufügen und das elastische Repository hinzufügen.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch cat <<EOF > /etc/yum.repos.d/elastic.repo [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
Installieren Sie filebeat mit dem Befehl yum unten.
yum install filebeat -y
Nachdem die Installation abgeschlossen ist, gehen Sie in das Verzeichnis ‚/etc/filebeat‘ und bearbeiten Sie die Konfigurationsdatei ‚filebeat.yml‘.
cd /etc/filebeat/ vim filebeat.yml
Aktivieren Sie nun die Filebeat-Suchmaschinen, indem Sie den Wert der aktivierten Zeile auf „true“ ändern.
enabled: true
Definieren Sie Systemprotokolldateien, die an den Logstash-Server gesendet werden sollen. Für dieses Handbuch werden wir die ssh-Logdatei „auth.log“ und die syslog-Datei hinzufügen.
paths: - /var/log/secure - /var/log/messages
Richten Sie die Ausgabe auf logstash ein, indem Sie die standardmäßige Ausgabe von’elasticsearch‘ kommentieren und die logstash-Ausgabezeile wie unten beschrieben entkommentieren.
output.logstash: # The Logstash hosts hosts: ["elk-master:5443"] ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]
Speichern und beenden.
Als nächstes müssen wir die Datei’filebeat.reference.yml‘ bearbeiten, um Filebeat-Module zu aktivieren, und wir werden das Modul’syslog‘ aktivieren.
vim filebeat.reference.yml
Aktivieren Sie das syslog Systemmodul für filebeat wie unten beschrieben.
- module: system # Syslog syslog: enabled: true
Speichern und beenden.
Kopieren Sie die Logstash-Zertifikatsdatei ‚logstash-forwarder.crt‘ in das Verzeichnis’/etc/filebeat‘.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt
Die Installation und Konfiguration von Filebeat ist abgeschlossen. Starten Sie nun den filebeat-Dienst und fügen Sie ihn zur Bootzeit hinzu.
systemctl start filebeat systemctl enable filebeat
Überprüfen Sie den filebeat-Dienst mit den folgenden Befehlen.
systemctl status filebeat tail -f /var/log/filebeat/filebeat
Die Filebeat-Versender sind unter dem CentOS 7.5-Server lauffähig.
Schritt 4 – Prüfung
Öffnen Sie Ihren Webbrowser und geben Sie den Domain-Namen des elastischen Stapels ein, meiner ist:’elastic-stack.io‘.
Sie werden aufgefordert, den Benutzernamen und das Passwort von der Basisauthentifizierung bis zum Kibana Dashboard einzugeben.
Gib den Benutzernamen ‚elastic‘ mit deinem Passwort ein.
Jetzt erhalten Sie das schöne kibana Dashboard, klicken Sie auf die Schaltfläche’Indexmuster einrichten‘ auf der rechten Seite.
Definieren Sie das Indexmuster’filebeat-*‘ und klicken Sie auf die Schaltfläche’Next Step‘.
Wählen Sie für den Feldnamen „Zeitfilter“ den „@Zeitstempel“ und klicken Sie auf „Indexmuster erstellen“.
Und das Filebeat-Indexmuster wurde erstellt.
Als nächstes werden wir versuchen, die Protokollinformationen für das SSH-Login auf jedem Client-Server ‚elk-client01‘ Ubuntu-System und ‚elk-client02‘ CentOS-System zu erhalten.
Klicken Sie im Kibana Dashboard auf das Menü „Entdecken“, um alle Serverprotokolle anzuzeigen.
Setzen Sie den ‚beat.hostname‘ auf den Server ‚elk-client01′, die ’source‘ ist die Datei ‚/var/log/auth.log‘, und Sie erhalten das Ergebnis wie unten gezeigt.
Und im Folgenden finden Sie die Beispielprotokolldetails für SSH failed password aus der Datei’auth.log‘.
Für den CentOS-Server „elk-client02“ stellen Sie den ‚beat.hostname‘ auf den Server „elk-client02“ ein, die ’source‘ ist die Datei „/var/log/secure“ und Sie erhalten das Ergebnis wie unten gezeigt.
Und im Folgenden finden Sie die Beispielprotokolldetails für ein fehlgeschlagenes SSH-Passwort aus der Datei „secure“.
Die Installation und Konfiguration des Elastic Stacks und des Elastic Beat’Filebeat‘ wurden erfolgreich abgeschlossen.