Elastic Metricbeat im Kibana Dashboard nutzen

Wer bereits Elasticsearch und Kibana nutzt, findet sicher auch Gefallen an Metricbeat – einem simplen Tool welches eure System- und Servicemetriken einfach an Elasticsearch übermittelt.

Installation

Ich nutze auf fast allen meinen Servern Ubuntu 16.04, daher folgende Vorgehensweise:

sudo apt-get update
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.0.1-amd64.deb
sudo dpkg -i metricbeat-6.0.1-amd64.deb

Bevor ich den Service starte, editiere ich die entsprechende metricbeat.yml

sudo nano /etc/metricbeat/metricbeat.yml

In meinem Fall will ich vorerst nur NGINX monitoren

metricbeat.modules:
- module: nginx
  metricsets: ["stubstatus"]
  period: 10s

  # Nginx hosts
  hosts: ["http://127.0.0.1"]

  # Path to server status. Default server-status
  #server_status_path: "server-status"

output.elasticsearch:
  hosts: ["localhost:9200"]

setup.kibana:
  host: "localhost:5601"

Wichtig ist hierbei, dass Ihr das richtige Modul auswählt, eine Liste findet Ihr hier und das Ihr den output richtig setzt, in meinem Fall natürlich Elasticsearch.

NGINX Config

Prüft vorab ob Ihr auch stubstatus am laufen habt

nginx -V 2>&1 | grep -o with-http_stub_status_module

ist es aktiv seht ihr -> with-http_stub_status_module

außerdem müsst Ihr den Pfad zu den Metriken von NGINX noch in eurer default config setzen

sudo nano /etc/nginx/sites-available/default

Dort fügt in innerhalb des server{} tags diese config hinzu. Den Ort könnt Ihr entsprechend noch anpassen, denkt aber dies dann auch in der metricbeat.yml zu machen

   location /server-status {
          stub_status on;
          access_log   off;
          allow 127.0.0.1;
          deny all;
        }

Danach könnt Ihr den metricbeat serivce starten

sudo service metricbeat start

Euer Index sollte direkt angelegt werden und der Call alle 10s ausgeführt werden.

Kibana Setup

Sucht euren Index mit metricbeat und * als Wildcard. Fügt den Index hinzu und klickt danach auf Discover.

Die Einträge sollten dann in etwas so aussehen

Bekommt Ihr die Fehlermeldung error.message:HTTP error 404 in stubstatus: 404 Not Found stimmt die Konfiguration des NGINX oder der metricbeat.yml nicht und der Metricbeat kann die NGINX Metriken nicht auslesen.

@timestamp:December 12th 2017, 19:25:02.115 beat.name:micha beat.hostname:micha beat.version:6.0.1 metricset.host:127.0.0.1 metricset.rtt:345 metricset.module:nginx metricset.name:stubstatus error.message:HTTP error 404 in stubstatus: 404 Not Found _id:Axxxxxxx _type:doc _index:metricbeat-6.0.1-2017.12.12 _score: -

Visualisierung & Dashboard

Um das ganze jetzt visuell zu betrachten brauchen wir nur unter Visualize ein Basic Chart anzulegen (Line) dort tragen wir folgenden Werte ein

Fertige Dashboards laden

cd /usr/share/metricbeat
sudo ./bin/metricbeat setup -E "setup.dashboards.directory=/usr/share/metricbeat/kibana" --dashboards --path.config /etc/metricbeat

bei Erfolg seht ihr „Loaded Dashboards“ und unter Dashboards in Kibana das folgende:

Et voila

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert