Installation von Graylog2 mit Elasticsearch
Graylog2 ist ein zentralisiertes Log-Management und Log-Analyse-Framework basierend auf Elasticsearch und MongoDB. Elasticsearch ist ein verteilter Suchserver auf Basis von Lucene, der als OpenSource-Software verfügbar ist. Es ist eine Volltext-Suchmaschine, geschrieben in Java, mit einem HTTP-Web-Interface und es unterstützt JSON-Dokumente nativ. Elasticsearch kann verwendet werden, um alle Arten von Dokumenten zu durchsuchen und bietet eine skalierbare Such-und Echtzeit-Suche-Lösung. In diesem Howto führen wir durch die Installation von Gralog2 mit Elasticsearch und MongoDB. Als Betriebssystem basiert ein Ubuntu 15.10.
1. Installieren der MongoDB
MongoDB ist eine Dokumentenorientierte NoSQL-Datenbank. Das MongoDB-Dokumentenschema ähnelt JSON, es heißt BSON. Wir installieren MongoDB 3 aus den MongoDB Debian-Repositories. Fügen wir das Repository hinzu, aktualisieren und installieren es:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb https://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" > /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
Installieren wir MongoDB mit dem folgenden apt-Befehl:
sudo apt-get install mongodb-org
Als nächstes starten wir mongodb und aktivieren Sie es beim Booten starten:
sudo service mongod start
sudo update-rc.d mongod defaults
2.Installation von Java
Die gesamte Anwendung, die wir in diesem Tutorial verwenden werden, basiert auf Java. Für die Graylog-Installation benötigen wir Java 7 oder höher. Java 8 ist im ubuntu Repository verfügbar.
sudo apt-get install openjdk-8-jdk
Jetzt testen wir die Java Installation
java -version
Und hier die Ausgabe:
bashopenjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~14.04-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
3. Installation von Elasticsearch
Herunterladen und Hinzufügen des GPG-Schlüssels zum System:
sudo wget -qO - httpss://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Fügen wir jetzt das Elasticsearch-Repository zum sources.list.d-Verzeichnis hinzu und führen apt-get update aus:
echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
sudo apt-get update
``
Jetzt könne wir die Installation starten
```bash
sudo apt-get install elasticsearch
Wenn die Installation abgeschlossen ist, starten wir den Elastcisearch-Daemon:
sudo service elasticsearch start
sudo update-rc.d elasticsearch defaults
Jetzt könne wir mit den Anpassungen für Elasticsearch starten. Dazu editieren wir die Konfiguirationsdatei von Elasticsearch: /etc/elasticsearch/elasticsearch.yml
sed -i '/^#cluster.name/a cluster.name = graylog2' /etc/elasticsearch/elasticsearch.yml
sed -i '/^script.disable_dynamic/a script.disable_dynamic: true' /etc/elasticsearch/elasticsearch.yml
sed -i '/^#network.host/a network.host: localhost' /etc/elasticsearch/elasticsearch.yml
Erklärung: a) Wir passen den Cluster Namen an von default elasticsearch zu graylog2. b) Wir deeaktivieren dynamische Scripts und vermeiden Remote-Ausführung c) Wir setzen den network.host auf localhost damit der Cluster nicht extern verfügbar ist. Im Anschluss starten wir den Elasticsearch Service neu:
sudo service elasticsearch restart
Nun können wir den Elasticsearchcluster mit curl testen:
curl -XGET 'https://localhost:9200/'
curl -XGET 'https://localhost:9200/_cluster/health?pretty=true'
4. Installation des Graylog2 Server
Als nächstes laden wir uns das Graylog2 Packet herunter und konfigurieren den Service.
wget httpss://packages.graylog2.org/repo/packages/graylog-2.1-repository_latest.deb
sudo dpkg -i graylog-2.1-repository_latest.deb
sudo apt-get update
sudo apt-get install graylog-server
Bevor wir den Graylog2 starten können müssen wir die Konfiguration anpassen. Zuerst müssen wir uns die Bespielkonfigurationsdatei kopieren und umbennen. Danach müssen wir pwgen installieren und ein Random Passwort erstellen.
cp /etc/graylog/graylog.conf.example /etc/graylog/server/server.conf
sudo apt-get install pwgen
Jetzt erstelle wir uns das Passwort für password_secret
pwgen -N 1 -s 96
Damit passen wir die Graylog Konfigurationsdatei /etc/graylog/server/server.conf an:
sed -i '/^#password_secret/a password_secret = GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua' /etc/graylog/server/server.conf
Im nächsten Schritt legen wir uns das Admin Passwort für den Login in das Webinterface an.
echo -n mypassword | sha256sum
9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
sed -i '/^root_password_sha2/a root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1' /etc/graylog/server/server.conf
Zum Schluss nehmen wir noch ein paar kleinere Anpassungen vor: Deaktivieren von elasticsearch multicast search aktivieren des unicast hosts.
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = ["127.0.0.1:9300"]
Ändern von elasticsearch shards auf 1, weil wir alles auf diesem einzelnen Server installieren.
elasticsearch_shards = 1
elasticsearch_replicas = 0
Zum Abschluss starten wir den Graylog2 Server
service graylog2 start
sudo update-rc.d graylog defaults
5. Installation des Graylog2 Web-Interfaces
Ab der Version 2.x, wird keine zusätzliche Web-Interface-Komponente benötigt. Die Web-Schnittstelle wird direkt von Graylog-Server bedient. Wir konfigurieren die Graylog-Webschnittstelle, indem Sie die Datei server.conf bearbeiten.
sed -i '/^graylog2-server.uris/a graylog2-server.uris="https://127.0.0.1:12900/" ' /etc/graylog/server.conf
Wir generieren einen neuen Applikations-Secret für graylog-web mit pwgen:
pwgen -N 1 -s 96
zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE
und fügen diesen in dei Konfig ein.
sed -i '/^application.secret/a application.secret="zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE" ' /etc/graylog/server.conf
Ganz wichtig für die korrekte Anzeige der Zeitzone:
sed -i '/^timezone/a timezone="Europe/Berlin" '/etc/graylog/server.conf
Dann starten wir das Webinterface
sudo service graylog2 restart
6. Zugriff Graylog web interface:
Dazu geben wir im Browser der Wahl ein: https://Server-Adresse:9000. Der Login erfolgt mittels “admin” und dem konfigurietem root_password_sha2 Passwort in der server.conf.
Das wars! In der zweiten Runde gehts ans Konfigurieren von Graylog um diverse Dienste nach Graylog schreiben zu lassen. Sowie die benötigten Extraktoren um die Nachrichten in Felder zu zerlegen. Im dritten Teil zeigen wir euch wir man Dashboards baut und Streams nutzt um Alerts festzulegen.