Elasticsearch ist ein verteilter Suchserver auf Basis von Lucene, der als OpenSource-Software verfügbar ist. Es ist eine in Java geschriebene Volltextsuchmaschine mit einer HTTP-Weboberfläche und unterstützt nativ JSON-Dokumente. Elasticsearch kann zum Durchsuchen aller Arten von Dokumenten verwendet werden und bietet eine skalierbare Such- und Echtzeit-Suchlösung. Elasticsearch wird von vielen großen Organisationen wie Mozilla, Netflix, Stack Exchange usw. verwendet.
Graylog2 ist ein zentralisiertes Protokollverwaltungs- und Protokollanalyse-Framework, das auf Elasticsearch und MongoDB basiert. Es ist in der Lage, Protokollmeldungen aus verschiedenen Quellen zu analysieren und zu kumulieren.
In diesem Tutorial werde ich Sie durch die Installation von Graylog2, Elasticsearch und MongoDB führen. Ich werde Ubuntu 15.10 für diese Installation verwenden.
Voraussetzung
- Ubuntu 15.10 – 64 Bit
- 4 GB Arbeitsspeicher
- Root-Berechtigungen
Schritt 1 – MongoDB installieren
MongoDB ist eine dokumentenorientierte NoSQL-Datenbank. Das MongoDB-Dokumentenschema ähnelt JSON, es heißt BSON. Wir werden MongoDB 3 aus den MongoDB-Debian-Repositories installieren.
Repository hinzufügen, aktualisieren und installieren:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" > /etc/apt/sources.list.d/mongodb-org-3.0.list
apt-get update
Installieren Sie MongoDB mit dem folgenden apt-Befehl:
apt-get install mongodb-org
Starten Sie als Nächstes mongodb und aktivieren Sie es so, dass es beim Booten gestartet wird:
systemctl start mongod
systemctl enable mongod
Schritt 2 – Java installieren
Alle Anwendungen, die wir in diesem Tutorial verwenden, basieren auf Java, also müssen wir es jetzt installieren :). Für die Graylog-Installation benötigen wir Java 7 oder höher. Java 7 ist im Ubuntu-Repository verfügbar, also installieren wir es mit diesem apt-Befehl:
apt-get install openjdk-7-jre
Prüfen Sie nun die Java-Version:
java -version
Und Sie sollten die Java-Version erhalten:
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
Schritt 3 – Elasticsearch installieren
In diesem Tutorial werden wir die Elasticsearch-Version 1.7 installieren.
Laden Sie den GPG-Schlüssel herunter und fügen Sie ihn dem System hinzu:
sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Fügen Sie nun das Elasticsearch-Repository zum Verzeichnis sources.list.d hinzu und führen Sie apt-get update:
ausecho "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" > /etc/apt/sources.list.d/elasticsearch.list
apt-get update
Installieren Sie nun die elastische Suche:
sudo apt-get install elasticsearch
Und wenn die Installation abgeschlossen ist, starten Sie den Elastcisearch-Daemon und aktivieren Sie ihn so, dass er beim Booten gestartet wird:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Die Installation von Elastisearch ist abgeschlossen und der Daemon wurde gestartet. Jetzt ist es an der Zeit, es zu konfigurieren.
Bearbeiten Sie die Konfigurationsdatei im Verzeichnis „/etc/elasticsearch/“ mit vim:
vim /etc/elasticsearch/elasticsearch.yml
Entkommentieren Sie die Zeile „cluster.name“ und ändern Sie den Wert in „graylog2“.
cluster.name = graylog2
Fügen Sie die folgende Konfiguration für Produktionsserver hinzu, um dynamische Skripts zu deaktivieren und die Remote-Ausführung zu vermeiden:
script.disable_dynamic: true
Speichern Sie die Datei und beenden Sie sie.
Starten Sie dann Elasticsearch neu und testen Sie es mit dem Curl-Befehl:
systemctl restart elasticsearch
Ich teste Elasticsearch mit einer Curl-Verbindung zu Port 9200:
curl -XGET 'http://localhost:9200/'
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Schritt 4 – Installieren Sie den Graylog2-Server
Der nächste Schritt ist die Installation des Graylog2-Servers. Ich werde Graylog 1.3.2 für diese Installation verwenden. Laden Sie Graylog2 mit dem Befehl wget herunter, extrahieren Sie es und konfigurieren Sie es dann.
Bevor wir mit der Installation von pwgen beginnen, benötigen wir pwgen, um das zufällige Passwort zu generieren.
pwgen installieren:
apt-get install pwgen
Generieren Sie nun das neue Passwort mit dem Befehl:
pwgen -N 1 -s 96
Mein Geheimcode:
GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
und generieren Sie einen neuen sha256-Hash mit dem folgenden Befehl:
echo -n mypassword | sha256sum
Dies ist mein Passwort:
9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
Gehen Sie als Nächstes in das Verzeichnis /opt/ und laden Sie den Graylog-Server mit dem Befehl wget herunter:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.3.2.tgz
Extrahieren Sie Graylog-Server und benennen Sie das Verzeichnis in Graylog2:
umtar -xzvf graylog-1.3.2.tgz
mv graylog-1.3.2/ graylog/
Der Graylog-Server wird heruntergeladen und wir verwenden das /opt/-Verzeichnis für seine Installation.
Erstellen Sie zum Konfigurieren des Graylog-Servers ein neues Graylog-Verzeichnis und kopieren Sie die Beispielkonfigurationsdatei des Graylog-Servers in die Datei "server.conf".
mkdir -p /etc/graylog/server/
cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.conf
Bearbeiten Sie die Konfiguration:
vim /etc/graylog/server/server.conf
Fügen Sie das mit pwgen generierte Passwort in die Zeile password_secret ein:
password_secret = GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
Fügen Sie Ihr generiertes sha256-Passwort ein, dieses Passwort wird für die Anmeldung beim Graylog-Admin-Dashboard verwendet:
root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
Deaktivieren Sie die Elasticsearch-Multicast-Suche und fügen Sie die Unicast-Hosts hinzu.
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
Ändern Sie die Elasticsearch-Shards auf 1, da wir alles auf diesem einzelnen Server installieren.
elasticsearch_shards = 1
elasticsearch_replicas = 0
Speichern und beenden Sie die Datei.
Starten Sie nun den Graylog-Server, indem Sie die bin-Datei im Graylog-Verzeichnis ausführen:
cd /opt/graylog/bin/
./graylogctl start
Jetzt können Sie die Log-Datei des Graylog-Servers im Log-Verzeichnis sehen, beobachten Sie sie mit dem tail-Befehl:
tail -f /opt/graylog/log/
Sollte dies in der Protokolldatei zu sehen sein:
Started REST API at <http://127.0.0.1:12900/>
Graylog2 up and running.
Dies bedeutet, dass der Graylog-Server ordnungsgemäß gestartet wurde.
Schritt 5 - Installieren Sie Graylog-Web
Laden Sie die Graylog-Webschnittstelle mit dem Befehl wget in das Verzeichnis /opt/directory:
heruntercd /opt/
wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.3.2.tgz
Extrahieren Sie das Graylog-Webinterface und benennen Sie es in "graylog-web" um.
tar -xzvf graylog-web-interface-1.3.2.tgz
mv graylog-web-interface-1.3.2/ graylog-web/
Generieren Sie dann mit pwgen:
einen neuen Anwendungsgeheimcode für Graylog-Webpwgen -N 1 -s 96
Das ist mein Geheimnis:
zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE
Gehen Sie in das Graylog-Web-Verzeichnis und bearbeiten Sie die Konfigurationsdatei:
cd graylog-web/
vim graylog
Fügen Sie in der Zeile „graylog2-server.uris“ die Adresse des Graylog2-Servers hinzu:
graylog2-server.uris="http://127.0.0.1:12900/"
Fügen Sie in der Zeile application.secret den zuvor generierten Geheimcode ein:
application.secret="zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE"
Speichern Sie die Datei und beenden Sie sie.
Starten Sie nun Graylog-Web:
cd /opt/graylog-web/bin/
./graylog-web-interface -Dhttp.port=8080
Graylog-Web läuft auf Port 8080.
Besuchen Sie Ihren Server - http://myipaddress:8080/
Melden Sie sich nun mit dem Benutzer „admin“ und Ihrem sha256-Passwort an.
Der Graylog2-Server mit Elasticsearch und Graylog-Webinterface wurde installiert.
Schlussfolgerung
Elasticsearch ist eine verteilte Server-Suchmaschine mit HTTP-Schnittstelle und JSON-Unterstützung. Wir können damit in allen Logdateien eines Servers suchen, wenn wir es zusammen mit Graylog verwenden. Graylog ist eine Software zur Protokollverwaltung und -analyse, die auf Elasticsearch und mongoDB basiert. Wir können Elasticsearch, Graylog und MongoDB verwenden, um einen verteilten Protokollserver aufzubauen.