Logstash mit Elasticsearch und Kibana: Unterschied zwischen den Versionen

Aus Cowwwiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Mit Logstash, Elasticsearch und Kibana ist es nun für jedermann möglich die eigenen Logs zu analysieren und auszuwerten. Alle verwendeten Tools sind Open Sou…“)
 
Keine Bearbeitungszusammenfassung
Zeile 41: Zeile 41:




== Logstash ==
Als nächstes richten wir Logstash ein. In diesem Tutorial wird Logstash als Server fungieren, in dem es die über das Lumberjack-Protokoll geschickten Logs der anderen Systeme entgegennimmt, strukturiert und schließlich an Elasticsearch schickt.
Bevor Logstash installiert werden kann, muss eine Java-Umgebung eingerichtet sein. Das funktioniert auch prima mit OpenJDK und erfordert kein Oracle-Java.
apt-get install openjdk-7-jre
Zur Installation von Logstash benötigt man wieder ein PPA. Der GPG-Key hingegen ist der gleiche, wie wir ihn bereits bei der Einrichtung von Elasticsearch verwendet haben. Daher muss nun lediglich die Paketquelle hinzugefügt werden:
echo "deb http://packages.elasticsearch.org/logstash/1.4/debian stable main" > /etc/apt/sources.list.d/logstash.list
apt-get update && apt-get install logstash
Die Logstash-Konfigurationen werden im Verzeichnis <code>/etc/logstash/conf.d</code> abgelegt. Statt einem großen File werden wir die Konfiguration wie folgt strukturieren:
{| class="wikitable"
|+Logstash Konfigurationsdateien
|-
|01-lumberjack-input
|Listener für den Logstash-Forwarder. Nimmt Logs der anderen Systeme entgegen.
|-
|10-syslog-filter
|Filter, um Syslog-Nachrichten zu strukturieren
|-
|20-apache-filter
|Filter, um Apache-Nachrichten zu strukturieren
|-
|99-elasticsearch-output
|Strukturierter Output soll an Elasticsearch gereicht werden
|}
<span style="color:red">'''Hinweis:'''</span> Die Zahlenpräfixe dienen dazu, dass Logstash die Konfigurationen in der Reihenfolge abarbeitet. Alle Filter-Konfigurationen sollten sich deshalb zwischen dem Input und dem Output befinden.


= Quellen =
= Quellen =
Zeile 49: Zeile 85:


https://www.digitalocean.com/community/tutorials/adding-logstash-filters-to-improve-centralized-logging
https://www.digitalocean.com/community/tutorials/adding-logstash-filters-to-improve-centralized-logging
http://www.logstash.net/docs/1.4.2/repositories

Version vom 16. November 2014, 10:51 Uhr

Mit Logstash, Elasticsearch und Kibana ist es nun für jedermann möglich die eigenen Logs zu analysieren und auszuwerten. Alle verwendeten Tools sind Open Source und somit kostenfrei. Grenzen sind der Auswertung so gut wie keine gesetzt. Voraussetzung ist allerdings, dass man sich mit seinen Logs auseinandersetzt und sie strukturiert. Je strukturierter die Logs, desto besser lassen sich später die Daten verknüpfen und auswerten.

Voraussetzungen

Es gibt mehrere Möglichkeiten, wie Logstash, Elasticsearch und Kibana zusammenarbeiten wollen. In diesem Tutorial wird die Konfiguration wie folgt aussehen:

  • Server, z. B. logstashserver
    • elasticsearch
    • logstash
  • Clients, z. B. webserver
    • logstash-forwarder


Logstash benötigt Java. Wer auf seinen Clients Java schon installiert hat, kann auf den Logstash-Forwarder verzichten und Logstash direkt auf dem Client installieren. Logstash würde dann von den Clients in Elasticsearch schreiben. Wenn man nicht überall Java installieren möchte, kann man nach diesem Tutorial vorgehen. Anstelle von Logstash wird nämlich auf den Clients ein sog. Logstash-Fowarder eingerichtet, welcher über das Lumberjack-Protokoll (Port 5000 tcp) die Logs an den Logstash-Server schickt. Der Logstash-Server muss für diesen Zweck eine Input-Konfiguration besitzen und verarbeitet die Logs dann mit den entsprechenden Filtern und schickt sie an Elasticsearch.

Installation

Dieses Tutorial ist auf Basis von Ubuntu 12.04 LTS aufgesetzt. Mit anderen apt-basierten Systemen sollte das Vorgehen ähnlich laufen.

Elasticsearch

Bevor sich Elasticsearch installieren lässt, muss ein PPA hinzugefügt werden. Dazu wird zuerst der GPG-Key hinzugefügt und anschließend die neue Paketquelle in die Apt-Listen hinzugefügt:

wget -qO - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb http://packages.elasticsearch.org/elasticsearch/1.4/debian stable main" > /etc/apt/sources.list.d/elasticsearch.list
apt-get update && apt-get install elasticsearch


Nach der Installation sollten folgende Hardeningmaßnahmen vorgenommen werden. Dazu wird die Datei /etc/elasticsearch/elasticsearch.yml geöffnet und um folgende Parameter ergänzt bzw. angepasst:

script.disable_dynamic: true
network.host: localhost


Elasticsearch ist nun einsatzbereit und kann über das Init-Script gestartet werden. Damit es beim Booten automatisch startet muss der Service allerdings noch in die entsprechenden Run-Level eingetragen werden

update-rc.d elasticsearch defaults 95 10


Logstash

Als nächstes richten wir Logstash ein. In diesem Tutorial wird Logstash als Server fungieren, in dem es die über das Lumberjack-Protokoll geschickten Logs der anderen Systeme entgegennimmt, strukturiert und schließlich an Elasticsearch schickt.

Bevor Logstash installiert werden kann, muss eine Java-Umgebung eingerichtet sein. Das funktioniert auch prima mit OpenJDK und erfordert kein Oracle-Java.

apt-get install openjdk-7-jre


Zur Installation von Logstash benötigt man wieder ein PPA. Der GPG-Key hingegen ist der gleiche, wie wir ihn bereits bei der Einrichtung von Elasticsearch verwendet haben. Daher muss nun lediglich die Paketquelle hinzugefügt werden:

echo "deb http://packages.elasticsearch.org/logstash/1.4/debian stable main" > /etc/apt/sources.list.d/logstash.list
apt-get update && apt-get install logstash


Die Logstash-Konfigurationen werden im Verzeichnis /etc/logstash/conf.d abgelegt. Statt einem großen File werden wir die Konfiguration wie folgt strukturieren:

Logstash Konfigurationsdateien
01-lumberjack-input Listener für den Logstash-Forwarder. Nimmt Logs der anderen Systeme entgegen.
10-syslog-filter Filter, um Syslog-Nachrichten zu strukturieren
20-apache-filter Filter, um Apache-Nachrichten zu strukturieren
99-elasticsearch-output Strukturierter Output soll an Elasticsearch gereicht werden


Hinweis: Die Zahlenpräfixe dienen dazu, dass Logstash die Konfigurationen in der Reihenfolge abarbeitet. Alle Filter-Konfigurationen sollten sich deshalb zwischen dem Input und dem Output befinden.

Quellen

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-repositories.html

https://www.digitalocean.com/community/tutorials/how-to-use-logstash-and-kibana-to-centralize-and-visualize-logs-on-ubuntu-14-04

https://www.digitalocean.com/community/tutorials/adding-logstash-filters-to-improve-centralized-logging

http://www.logstash.net/docs/1.4.2/repositories