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

Installation von Filebeat, Logstash, ElasticSearch und Kibana in Ubuntu 14.04

VORBEREITUNGEN

#Ref:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
Installieren Sie zuerst Java 8 in Ubuntu 14.04

# Ref:https://www.liquidweb.com/kb/how-to-install-oracle-java-8-on-ubuntu-14-04-lts/
apt-get install python-software-properties software-properties-common
apt-add-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
java -version

Ergebnis:
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Erleichtern Sie die Aktualisierung aller Pakete über APT-Repositories

apt-get install apt-transport-https
Speichern Sie die Repository-Definition unter /etc/apt/sources.list.d/elastic-5.x.list:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
apt-get update

FILEBEAT

Filebeat installieren

Filebeat liest Zeilen aus definierten Protokollen, formatiert sie richtig und leitet sie an Logstash weiter, während es einen nicht verstopfenden Pipeline-Stream aufrechterhält
Ref:https://github.com/elastic/beats/tree/master/filebeat
Referenz:https://www.elastic.co/guide/en/beats/filebeat/5.5/filebeat-getting-started.html
Referenz:https://www.elastic.co/products/beats/filebeat

apt-get install filebeat
mv /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.orig
touch /etc/filebeat/filebeat.yml
mcedit /etc/filebeat/filebeat.yml

(Inhalt)
————————

filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]

————————
service filebeat restart

LOGSTASH

Laden Sie das Logstash-Debian-Installationspaket herunter und konfigurieren Sie es

# Ref:https://www.elastic.co/downloads/logstash
apt-get install logstash

# Ergebnis:
.......
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash

Logstash vorbereiten

mcedit /etc/logstash/startup.options
(fügen Sie die folgende Zeile am Anfang hinzu)
LS_CONFIGS_DIR=/etc/logstash/conf.d/

(Passen Sie dann die folgende Zeile wie folgt an)
from:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR}"
an:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config ${LS_CONFIGS_DIR}"

Logstash starten/stoppen/neu starten
service logstash {start|stop|restart}

Logstash testen

cd /etc/logstash/ ; /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

Tippe:Hallo Welt
und drücke STRG-D

(Logstash fügt der Nachricht Zeitstempel und IP-Adressinformationen hinzu. Beenden Sie Logstash, indem Sie einen STRG-D-Befehl in der Shell ausführen, in der Logstash ausgeführt wird.)

Ergebnisse:

ERROR StatusLogger Keine log4j2-Konfigurationsdatei gefunden. Standardkonfiguration verwenden:Nur Fehler in der Konsole protokollieren.
WARNUNG:logstash.yml konnte nicht gefunden werden, das sich normalerweise in $LS_HOME/config oder /etc/logstash befindet. Sie können den Pfad mit –path.settings angeben. Weiterhin die Standardeinstellungen verwenden
Die log4j2-Konfiguration konnte unter Pfad //usr/share/logstash/config/log4j2.properties nicht gefunden werden. Verwenden der Standardkonfiguration, die sich an der Konsole anmeldet
11:22:59.822 [[main]-pipeline-manager] INFO logstash.pipeline – Starten der Pipeline {“id”=>”main”, “pipeline.workers”=>2 , „pipeline.batch.size“=>125, „pipeline.batch.delay“=>5, „pipeline.max_inflight“=>250}
11:22:59.847 [[Haupt]-Pipeline-Manager] INFO logstash.pipeline – Pipeline-Main gestartet
Das stdin-Plugin wartet nun auf Eingaben:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
11:22:59.946 [Api Webserver] INFO logstash.agent – ​​Logstash-API-Endpunkt erfolgreich gestartet {:port=>9601}
11:23:02.861 [LogStash::Runner] WARN logstash.agent – ​​Pipeline anhalten {:id=>” Haupt“}

Die Fehler und Warnungen sind vorerst in Ordnung. Die Hauptergebniszeile darüber ist signifikant:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
, die der Eingabezeichenfolge einen Zeitstempel und einen Servernamen hinzufügt (Test 1)

Logstash konfigurieren
# Hinweis:Diese Testkonfiguration erhält Eingaben von filebeat und gibt sie in eine Protokolldatei aus, die mit tail -f …..
mcedit /etc/logstash/conf.d/apache2.conf
(Inhalt)
input {
beats {
port => 5044
type => "apache"
}
}
filter {
if [type] == "apache" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
}
output {
file {
path => "/var/log/logstash_output.log"
}
}

Um die richtige Ausgabe an Elasticsearch zu senden, verwenden Sie stattdessen diese Ausgabekonfiguration:
———————————-
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}

Filebeat => Logstash mit SSL sichern

Ref:https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ssl-logstash.html#configuring-ssl-logstash
Hinweis:Die Eingabe per Hand ist unten fett dargestellt.

Bereiten Sie die Zertifikatsverzeichnisse vor:

mkdir -p /etc/logstash/certs/Logstash/ /etc/logstash/certs/Beats/
Client-Zertifikate für FileBeat erstellen:
/usr/share/elasticsearch/bin/x-pack/certgen

........
Let's get started...

Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Beats/certificate-bundle_Beats.zip
Enter instance name: Beats
Enter name for directories and files : Beats
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Beats/certificate-bundle_Beats.zip
geschrieben

Client-Zertifikate für Logstash erstellen:
/usr/share/elasticsearch/bin/x-pack/certgen

........
Let's get started...

Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip
Enter instance name: Logstash
Enter name for directories and files : Logstash
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip
geschrieben

Diese Datei sollte ordnungsgemäß gesichert werden, da sie die privaten Schlüssel für alle
Instanzen und die Zertifizierungsstelle enthält.

Nach dem Entpacken der Datei gibt es für jede Instanz ein Verzeichnis, das
das Zertifikat und den privaten Schlüssel enthält. Kopieren Sie das Zertifikat, den Schlüssel und das CA-Zertifikat
in das Konfigurationsverzeichnis des Elastic-Produkts, für das sie verwendet werden sollen
und befolgen Sie die Anweisungen zur SSL-Konfiguration im Produktleitfaden.

Für Clientanwendungen müssen Sie möglicherweise nur das CA-Zertifikat kopieren und
den Client so konfigurieren, dass er diesem Zertifikat vertraut.

Zertifikate extrahieren:
unzip /etc/logstash/certs/Beats/certificate-bundle_Beats.zip -d /etc/logstash/certs/Beats/
unzip /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip -d /etc/logstash/certs/Logstash/

Konvertieren Sie den Logstash-Schlüssel Logstash.key vom PKCS#1- in das PKCS#8-Format:
Grund:Die folgende Fehlermeldung in logstash.log ist aufgetreten, wenn das PKCS1-Format verwendet wurde:
[ERROR][logstash.inputs.beats ] Sieht so aus, als hätten Sie entweder einen ungültigen Schlüssel oder Ihr privater Schlüssel war es nicht im PKCS8-Format. {:exception=>java.lang.IllegalArgumentException:Datei enthält keinen gültigen privaten Schlüssel:/etc/logstash/certs/Logstash/Logstash/Logstash.key}

Siehe:https://github.com/spujadas/elk-docker/issues/112

Befehl:
openssl pkcs8 -in /etc/logstash/certs/Logstash/Logstash/Logstash.key -topk8 -nocrypt -out /etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8

Beats für SSL konfigurieren

Inhalt von /etc/filebeat/filebeat.yml
filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]
ssl.certificate_authorities: ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl.certificate: "/etc/logstash/certs/Beats/Beats/Beats.crt"
ssl.key: "/etc/logstash/certs/Beats/Beats/Beats.key"

Inhalt von /etc/logstash/conf.d/apache.conf
input {
beats {
port => 5044
ssl => true
ssl_certificate_authorities => ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl_certificate => "/etc/logstash/certs/Logstash/Logstash/Logstash.crt"
ssl_key => "/etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8"
ssl_verify_mode => "force_peer"
}
}

Starten Sie sowohl Logstash als auch Filebeat neu
service logstash restart
service filebeat restart

HINWEIS: Ich habe immer noch Probleme mit der SSL-Verbindung von Filebeat zu Logstash, wo Filebeat diesen Fehler ausgibt (/var/log/logstash/logstash-plain.log):
Interner TLS-Fehler.
Die folgende URL scheint einige ähnliche Probleme gefunden zu haben, aber aus Zeitmangel habe ich es noch nicht herausgefunden.
https://discuss.elastic.co/t/mutual-tls-filebeat-to-logstash-fails- with-remote-error-tls-internal-error/85271/3

X-Pack für Logstash

X-Pack für Logstash INSTALLIEREN

X-Pack ist eine Elastic Stack-Erweiterung, die Sicherheit, Warnungen, Überwachung, Berichterstellung, maschinelles Lernen und Grafikfunktionen in einem einfach zu installierenden Paket bündelt.
X-Pack bietet auch eine Überwachungs-Benutzeroberfläche für Logstash.

/usr/share/logstash/bin/logstash-plugin X-Pack installieren

Ergebnis:

Datei herunterladen:https://artifacts.elastic.co/downloads/logstash-plugins/x-pack/x-pack-5.5.2.zip
Herunterladen [===========================================================] 100 %
Installationsdatei:/tmp/studtmp-bc1c884de6d90f1aaa462364e5895b6b08b050f0b64587b4f5e0a8ec5300/x-pack-5.5.2.zip
Installation erfolgreich

X-Pack in Logstash konfigurieren:

Die während der Installation erstellten Standardeinstellungen funktionieren in den meisten Fällen am besten. Weitere Informationen finden Sie unter:
https://www.elastic.co/guide/en/logstash/5.5/settings-xpack.html

Um die Generierung von Überwachungsfehlermeldungen in logstash.log zu verhindern, bearbeiten Sie /etc/logstash/logstash.yml und fügen Sie am Ende die folgende Zeile hinzu:
(Ref:https://discuss.elastic.co/t/logstash- unterbricht-beim-deaktivieren-bestimmter-x-pack-features/89511)

xpack.monitoring.enabled: false

ElasticSearch

Installation:
apt-get install elasticsearch

Elastische Suche starten/beenden/neu starten:
/etc/init.d/elasticsearch {start|stop|restart}

So prüfen Sie, ob Elasticsearch gestartet wurde:
ps aux | grep $(cat /var/run/elasticsearch/elasticsearch.pid)

Ergebnisbeispiel (abgeschnitten):
elastic+ 10978 3.2 55.2 4622152 2319168 pts/3 Sl 15:44 0:10 /usr/lib/jvm/java-8-oracle/bin/java ........

Überprüfen Sie dann die Elasticsearch-Protokolldatei:
tail -f /var/log/elasticsearch/elasticsearch.log

HINWEIS 1:
Wenn Sie die Zeile sehen:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] max virtual memory areas vm.max_map_count [65530] is too low, erhöhen Sie auf mindestens [262144]
und das Ergebnis des folgenden Befehls ist leer,

grep vm.max_map_count /etc/sysctl.conf

Lösung:
Erhöhen Sie die maximalen virtuellen Speicherbereiche vm.max_map_count wie folgt auf 262144:
Fügen Sie die folgende Zeile in der Datei /etc/sysctl.conf hinzu

vm.max_map_count=262144

Und führen Sie den folgenden Befehl aus:
sysctl -w vm.max_map_count=262144
ODER
echo 262144 > /proc/sys/vm/max_map_count

Stellen Sie AUCH sicher, dass die Elasticsearch-Konfigurationsdatei (/etc/elasticsearch/jvm.options ) hat die folgenden Einträge:
-Xms2g
-Xmx2g

WICHTIG:
Wenn die folgenden Befehle fehlschlagen, kann dies daran liegen, dass einige virtuelle Server solche Änderungen im Kernel nicht zulassen:
zB.
sysctl -w vm.max_map_count=262144
sysctl:Berechtigung für Schlüssel „vm.max_map_count“ verweigert
echo 262144 > /proc/sys/vm/max_map_count
-bash:/proc/sys/vm/max_map_count:Zugriff verweigert

Die elastische Suche sollte trotzdem ausgeführt werden können, ist jedoch möglicherweise in der Leistung eingeschränkt und kann aufgrund dieser Einschränkungen andere Probleme haben.
Hierfür sind keine Lösungen für Strato-VM-Server bekannt.

HINWEIS 2:
Wenn Sie die Zeile sehen:
[WARN ][i.n.u.i.MacAddressUtil ] Fehler beim Finden einer verwendbaren Hardwareadresse von den Netzwerkschnittstellen; mit zufälligen Bytes:……..

Lösung:
Kein Grund zur Sorge, die Genauigkeit der MAC-Adresse ist bei dieser Installation nicht so wichtig.

HINWEIS 3:
Wenn Sie die Zeile sehen:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] System Call Filters failed to install; Überprüfen Sie die Protokolle und korrigieren Sie Ihre Konfiguration oder deaktivieren Sie Systemaufruffilter auf eigenes Risiko
Wenn dieses Problem auftritt, wird Elasticsearch gestartet, aber nicht richtig initialisiert und höchstwahrscheinlich nicht richtig funktionieren.

Lösung:
Wenn auf Elasticsearch nur in einer geschützten Umgebung zugegriffen wird, sollte das Deaktivieren dieser Installation von Systemaufruffiltern kein Problem sein
durch Bearbeiten der Datei /etc/elasticsearch/elasticsearch.yml und Hinzufügen der folgenden Zeile:
bootstrap.system_call_filter: false
Elasticsearch neu starten:
service elasticsearch restart

————————————————————————

X-Pack für elastische Suche

X-Pack ist eine Elastic Stack-Erweiterung, die Sicherheit, Warnungen, Überwachung, Berichterstellung, maschinelles Lernen und Grafikfunktionen in einem einfach zu installierenden Paket bündelt.

Installation:
/usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

Ergebnisse:
-> Downloading x-pack from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.io.FilePermission \\.\pipe\* read,write
* java.lang.RuntimePermission accessClassInPackage.com.sun.activation.registries
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.RuntimePermission setFactory
* java.security.SecurityPermission createPolicy.JavaPolicy
* java.security.SecurityPermission getPolicy
* java.security.SecurityPermission putProviderProperty.BC
* java.security.SecurityPermission setPolicy
* java.util.PropertyPermission * read,write
* java.util.PropertyPermission sun.nio.ch.bugLevel write
* javax.net.ssl.SSLPermission setHostnameVerifier
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin forks a native controller @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
This plugin launches a native controller that is not subject to the Java
security manager nor to system call filters.

Continue with installation? [y/N]y
-> Installed x-pack

KIBANA

Kibana-Paket installieren
apt install kibana
Installieren Sie X-Pack für logstash
X-Pack ist eine Elastic Stack-Erweiterung, die Sicherheit, Warnungen, Überwachung, Berichterstellung, maschinelles Lernen und Grafikfunktionen in einem einfach zu installierenden Paket bündelt.
/usr/share/kibana/bin/kibana-plugin install x-pack
Integriertes Benutzerpasswort ändern
Ref:https://www.elastic.co/guide/en/x-pack/5.5/setting-up-authentication.html#reset-built-in- Benutzer-Passwörter
Passwörter ändern

curl -XPUT 'localhost:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "elasticpassword"
}
'

curl -XPUT 'localhost:9200/_xpack/security/user/kibana/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "kibanapassword"
}
'

curl -XPUT 'localhost:9200/_xpack/security/user/logstash_system/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "logstashpassword"
}
'

Aktualisieren Sie den Kibana-Server mit dem neuen Passwort /etc/kibana/kibana.yml
elasticsearch.password: kibanapassword
Aktualisieren Sie die Logstash-Konfiguration mit dem neuen Passwort /etc/logstash/logstash.yml
xpack.monitoring.elasticsearch.password: logstashpassword
Standardpasswortfunktion deaktivieren /etc/elasticsearch/elasticsearch.yml
xpack.security.authc.accept_default_password: false

Kibana starten/stoppen/neu starten
service kibana {start|stop|restart}


Ubuntu
  1. Installieren des ELK-Stacks unter Ubuntu 14.04

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

  3. Installation und Einrichtung von Php und Nginx unter Ubuntu 20.04

  4. Erstellen und Installieren von Ibus-Typing-Booster auf Ubuntu?

  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

Installation von Ubuntu 18.04 LTS [Desktop und Server]

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

Die 23 besten Dinge, die nach der Installation von Ubuntu 18.04 und 18.10 zu tun sind

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