Ein Artikel von Fluentd
Überblick
Mit Elasticsearch, Fluentd und Kibana (EFK) können Sie Protokolldaten erfassen, indizieren, suchen und visualisieren. Dies ist eine großartige Alternative zur proprietären Software Splunk, mit der Sie kostenlos loslegen können, für die jedoch eine kostenpflichtige Lizenz erforderlich ist, sobald sich das Datenvolumen erhöht.
Dieses Tutorial zeigt Ihnen, wie Sie eine Protokolllösung mit drei Open-Source-Softwarekomponenten erstellen: http://www.elasticsearch.org [Elasticsearch], Fluentd und http: // www. kibana.org [Kibana].
Voraussetzungen
-
Tröpfchen mit * Ubuntu 14.04 *
-
Benutzer mit den Berechtigungen sudo
Installieren und Konfigurieren von Elasticsearch
Java bekommen
Elasticsearch erfordert Java. Der erste Schritt ist die Installation von Java.
sudo apt-get update
sudo apt-get install openjdk-7-jre-headless --yes
Überprüfen Sie, ob Java tatsächlich installiert wurde. Run:
java -version
Die Ausgabe sollte wie folgt aussehen:
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
Elasticsearch bekommen
Laden Sie anschließend das Deb-Paket von Elasticsearch wie folgt herunter und installieren Sie es.
sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.deb
sudo dpkg -i elasticsearch-1.2.2.deb
Elasticsearch absichern
Bis Version 1.2 war die dynamische Skriptfunktion von Elasticsearch standardmäßig aktiviert. Da in diesem Tutorial das Kibana-Dashboard für den Zugriff über das öffentliche Internet eingerichtet ist, deaktivieren Sie dynamisches Scripting, indem Sie die folgende Zeile am Ende von "+ /etc/elasticsearch/elasticsearch.yml +" anhängen:
script.disable_dynamic: true
Elasticsearch starten
Starten Sie Elasticsearch mit dem folgenden Befehl.
sudo service elasticsearch start
Kibana installieren und konfigurieren
Kibana bekommen
Wechseln Sie in Ihr Home-Verzeichnis:
cd ~
Wir werden Kibana wie folgt herunterladen:
curl -L https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz | tar xzf -
sudo cp -r kibana-3.1.0 /usr/share/
Kibana konfigurieren
Da Kibana anstelle des Standard-Ports 9200 Port 80 für die Kommunikation mit Elasticsearch verwendet, muss die Datei + config.js +
von Kibana aktualisiert werden.
Öffnen Sie + / usr / share / kibana-3.1.0 / config.js +
und suchen Sie nach der folgenden Zeile:
elasticsearch: "http://"+window.location.hostname+":",
und ersetzen Sie es durch die folgende Zeile:
elasticsearch: "http://"+window.location.hostname+":",
Installieren und Konfigurieren von Nginx (Proxy Server)
Wir werden Nginx als Proxy-Server verwenden, um den Zugriff auf das Dashboard aus dem öffentlichen Internet (mit grundlegender Authentifizierung) zu ermöglichen.
Installieren Sie Nginx wie folgt:
sudo apt-get install nginx --yes
Kibana stellt eine gute Standard-nginx.conf bereit, die wir leicht modifizieren werden.
Installieren Sie zunächst die Konfigurationsdatei wie folgt:
wget https://assets.digitalocean.com/articles/fluentd/nginx.conf
sudo cp nginx.conf /etc/nginx/sites-available/default
Hinweis: Die Originaldatei stammt aus diesem Kibana GitHub-Repository.
Bearbeiten Sie dann + / etc / nginx / sites-available / default +
wie folgt (Änderungen sind rot markiert):
#
# Nginx proxy for Elasticsearch + Kibana
#
# In this setup, we are password protecting the saving of dashboards. You may
# wish to extend the password protection to all paths.
#
# Even though these paths are being called as the result of an ajax request, the
# browser will prompt for a username/password on the first request
#
# If you use this, you'll want to point config.js at http://FQDN:80/ instead of
# http://FQDN:9200
#
server {
listen *:80 ;
server_name ;
access_log ;
location / {
root /usr/share/;
index index.html index.htm;
}
Starten Sie nginx abschließend wie folgt neu:
$ sudo service nginx restart
Jetzt sollten Sie das generische Kibana-Dashboard unter der IP-Adresse oder Domäne Ihres Servers mit Ihrem bevorzugten Browser anzeigen können.
image: https://assets.digitalocean.com/articles/fluentd/kibana_welcome.png [Kibana Welcome]
Installation und Konfiguration von Fluentd
Lassen Sie uns abschließend https://www.fluentd.org [Fluentd] installieren. Wir werden td-agent verwenden, die Paketversion von Fluentd, die von http://www.treasuredata.com [Treasure Data] erstellt und verwaltet wird.
Installation von Fluentd über das td-agent-Paket
Installieren Sie Fluentd mit den folgenden Befehlen:
wget http://packages.treasuredata.com/2/ubuntu/trusty/pool/contrib/t/td-agent/td-agent_2.0.4-0_amd64.deb
sudo dpkg -i td-agent_2.0.4-0_amd64.deb
Plugins installieren
Wir brauchen ein paar Plugins:
-
out_elasticsearch: Mit diesem Plugin kann Fluentd Daten an Elasticsearch streamen.
-
outrecordreformer: Mit diesem Plugin können wir Daten in einem nützlicheren Format verarbeiten.
Die folgenden Befehle installieren beide Plugins (das erste apt-get ist für out_elasticsearch: es erfordert + make +
und + libcurl +
)
sudo apt-get install make libcurl4-gnutls-dev --yes
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer
Als Nächstes konfigurieren wir Fluentd so, dass Syslog-Nachrichten abgehört und an Elasticsearch gesendet werden. Öffnen Sie + / etc / td-agent / td-agent.conf +
und fügen Sie die folgenden Zeilen oben in die Datei ein:
<source>
type syslog
port 5140
tag system
</source>
<match system.*.*>
type record_reformer
tag elasticsearch
facility ${tag_parts[1]}
severity ${tag_parts[2]}
</match>
<match elasticsearch>
type copy
<store>
type stdout
</store>
<store>
type elasticsearch
logstash_format true
flush_interval 5s #debug
</store>
</match>
Fluentd starten
Starten Sie Fluentd mit folgendem Befehl:
sudo service td-agent start
Weiterleitung des rsyslog-Verkehrs an Fluentd
Ubuntu 14.04 wird mit rsyslogd ausgeliefert. Es muss neu konfiguriert werden, um Syslog-Ereignisse an den Port weiterzuleiten, den Fluentd überwacht (in diesem Beispiel Port 5140).
Öffnen Sie "+ / etc / rsyslog.conf " (Sie müssen " sudo +" verwenden) und fügen Sie die folgende Zeile oben hinzu
*.* @127.0.0.1:5140
Starten Sie rsyslogd nach dem Speichern und Verlassen des Editors wie folgt neu:
sudo service rsyslog restart
Einrichten von Kibana Dashboard-Bedienfeldern
Die Standardanzeigen von Kibana sind sehr allgemein gehalten. Es wird daher empfohlen, sie anzupassen. Hier zeigen wir zwei Methoden.
Methode 1: Verwenden einer Vorlage
Das Fluentd-Team bietet eine alternative Kibana-Konfiguration an, die mit diesem Setup besser funktioniert als die Standardkonfiguration. Führen Sie den folgenden Befehl aus, um diese alternative Konfiguration zu verwenden:
wget -O default.json https://assets.digitalocean.com/articles/fluentd/default.json
sudo cp default.json /usr/share/kibana-3.1.0/app/dashboards/default.json
Hinweis: Die ursprüngliche Konfigurationsdatei stammt vom GitHub gist des Autors.
Wenn Sie Ihre Kibana-Dashboard-Homepage unter der URL Ihres Servers aktualisieren, sollte Kibana jetzt so konfiguriert sein, dass Histogramme nach Syslog-Schweregrad und -Einrichtung sowie aktuelle Protokollzeilen in einer Tabelle angezeigt werden.
Methode 2: Manuelles Konfigurieren
Rufen Sie die IP-Adresse oder Domäne Ihres Servers auf, um das Kibana-Dashboard anzuzeigen.
image: https://assets.digitalocean.com/articles/fluentd/kibana_welcome.png [Kibana Welcome]
Es gibt einige Starter-Vorlagen. Wählen Sie jedoch die leere Vorlage mit dem Namen "* Leeres Dashboard: Ich kann sie problemlos selbst konfigurieren *", die unten im Begrüßungstext angezeigt wird.
image: https://assets.digitalocean.com/articles/fluentd/kibana_blank.png [Kibana Blank Template]
Klicken Sie anschließend rechts im Dashboard auf die Schaltfläche * + ADD A ROW *. Ein Konfigurationsbildschirm für eine neue Zeile (eine * Zeile * besteht aus einem oder mehreren Feldern) sollte angezeigt werden. Geben Sie einen Titel ein, klicken Sie auf die Schaltfläche * Zeile erstellen * und anschließend auf * Speichern *. Dies erzeugt eine Reihe.
image: https://assets.digitalocean.com/articles/fluentd/kibana_row.png [Kibana Row]
Wenn eine leere Zeile erstellt wird, zeigt Kibana auf der linken Seite die Eingabeaufforderung * Panel zur leeren Zeile hinzufügen * an. Klicken Sie auf diese Schaltfläche. Sie gelangen zum Konfigurationsbildschirm, in dem Sie ein neues Panel hinzufügen können. Wählen Sie * Histogramm * aus dem Dropdown-Menü. Ein Histogramm ist ein Zeitdiagramm. Weitere Informationen finden Sie unter Kibanas Dokumentation.
image: https://assets.digitalocean.com/articles/fluentd/kibana_histogram.png [Kibana-Histogramm]
Es gibt viele Parameter, die für ein neues Histogramm konfiguriert werden müssen, aber Sie können einfach nach unten scrollen und die Taste * Speichern * drücken. Dadurch wird ein neues Panel erstellt.
image: https: //assets.digitalocean.com/articles/fluentd/kibana_histogram_details.png [Kibana Histogram Details]
Weitere Informationen
Weitere Informationen zum Konfigurieren von Kibana finden Sie auf der Kibana-Dokumentationsseite.