So erfassen Sie Infrastruktur-Metriken mit Topbeat und ELK unter Ubuntu 14.04

Einführung

Mit Topbeat, einem der mehreren "Beats" -Datenversender, mit denen verschiedene Arten von Serverdaten an eine Elasticsearch-Instanz gesendet werden, können Sie Informationen über die CPU, den Arbeitsspeicher und die Prozessaktivität auf Ihren Servern sammeln. In Verbindung mit dem ELK-Stack (Elasticsearch, Logstash und Kibana) kann Topbeat als Alternative zu anderen Visualisierungstools für Systemmetriken verwendet werden, z. B. https://www.digitalocean.com/community/tutorials/how-to-use- prometheus-to-monitor-your-ubuntu-14-04-server [Prometheus] oder https://www.digitalocean.com/community/tutorials/how-to-configure-statsd-to-collect-arbitrary-stats-for -graphite-on-ubuntu-14-04 [Statsd].

In diesem Tutorial zeigen wir Ihnen, wie Sie mithilfe eines ELK-Stacks Infrastruktur-Metriken mithilfe von * Topbeat * auf einem Ubuntu 14.04-Server erfassen und visualisieren können.

Voraussetzungen

In diesem Lernprogramm wird davon ausgegangen, dass Sie über das in diesem Lernprogramm beschriebene ELK Stack-Setup verfügen: https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu -14-04 [So installieren Sie Elasticsearch, Logstash und Kibana unter Ubuntu 14.04]. Wenn Sie noch keinen ELK-Server haben, schließen Sie das verknüpfte Lernprogramm ab, bevor Sie fortfahren.

Wir gehen außerdem davon aus, dass Sie neben dem ELK-Server mindestens einen Ubuntu 14.04-Client-Server haben, von dem Sie mithilfe von Topbeat Systemmetriken erfassen möchten.

Laden Sie Kibana Dashboards auf ELK Server

Elastic bietet verschiedene Beispiele für Kibana-Dashboards und Beats-Indexmuster, die Ihnen den Einstieg in Kibana erleichtern. Obwohl wir die Dashboards in diesem Lernprogramm nicht verwenden, werden sie trotzdem geladen, damit wir das darin enthaltene Filebeat-Indexmuster verwenden können.

Laden Sie zunächst das Beispiel-Dashboard-Archiv in Ihr Ausgangsverzeichnis herunter:

cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip

Installiere das + unzip + Paket mit diesem Befehl:

sudo apt-get -y install unzip

Als nächstes extrahieren Sie den Inhalt des Archivs:

unzip beats-dashboards-*.zip

Laden Sie die Beispiel-Dashboards, Visualisierungen und Beats-Indexmuster mit den folgenden Befehlen in Elasticsearch:

cd beats-dashboards-*
./load.sh

Dies sind die Indexmuster, die wir gerade geladen haben:

  • [packetbeat-] YYYY.MM.DD

  • [topbeat-] YYYY.MM.DD

  • [filebeat-] YYYY.MM.DD

  • [winlogbeat-] YYYY.MM.DD

Laden Sie die Topbeat-Indexvorlage in Elasticsearch

Da wir planen, mit Topbeat Protokolle an Elasticsearch zu senden, sollten wir die Topbeat-Indexvorlage laden. In der Indexvorlage wird Elasticsearch so konfiguriert, dass eingehende Topbeat-Felder auf intelligente Weise analysiert werden.

Laden Sie zunächst die Topbeat-Indexvorlage in Ihr Ausgangsverzeichnis herunter:

cd ~
curl -O https://raw.githubusercontent.com/elastic/topbeat/master/etc/topbeat.template.json

Laden Sie dann die Vorlage mit diesem Befehl:

curl -XPUT 'http://localhost:9200/_template/topbeat' [email protected]

Jetzt ist Ihr ELK-Server bereit, Daten von Topbeat zu akzeptieren. Als nächstes richten wir Topbeat auf einem Client-Server ein.

Einrichten von Topbeat (Hinzufügen von Client-Servern)

Führen Sie diese Schritte für jeden Ubuntu- oder Debian-Server aus, den Sie Metrikdaten an Logstash auf Ihrem ELK-Server senden möchten. Anweisungen zum Installieren von Topbeat auf Red Hat-basierten Linux-Distributionen (z. RHEL, CentOS usw.) finden Sie unter CentOS Variation dieses Tutorials.

Kopieren Sie das SSL-Zertifikat

Kopieren Sie auf Ihrem * ELK-Server * das im vorausgesetzten Lernprogramm erstellte SSL-Zertifikat auf Ihren * Client-Server * (ersetzen Sie die Adresse des Client-Servers und Ihr eigenes Login):

scp /etc/pki/tls/certs/logstash-forwarder.crt @:/tmp

Stellen Sie nach der Eingabe Ihrer Anmeldeinformationen sicher, dass die Zertifikatkopie erfolgreich war. Es wird für die Kommunikation zwischen den Client-Servern und dem ELK-Server benötigt.

Kopieren Sie nun auf Ihrem * Client Server * das SSL-Zertifikat des ELK Servers an den entsprechenden Speicherort (/ etc / pki / tls / certs):

sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

Jetzt können wir das Topbeat-Paket installieren.

Installieren Sie das Topbeat-Paket

Stellen Sie auf * Client Server * sicher, dass die Beats-Quellenliste vorhanden ist. Öffne + / etc / apt / sources.list.d / beats.list + zum Bearbeiten:

sudo vi /etc/apt/sources.list.d/beats.list

Stellen Sie sicher, dass diese Zeile vorhanden ist (fügen Sie sie ein, falls sie noch nicht vorhanden ist):

/etc/apt/sources.list.d/beats.list

deb https://packages.elastic.co/beats/apt stable main

Speichern und schließen.

Topbeat verwendet denselben GPG-Schlüssel wie Elasticsearch und Filebeat, die mit diesem Befehl installiert werden können:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Dann installieren Sie das Topbeat-Paket:

sudo apt-get update
sudo apt-get install topbeat

Tobeat ist jetzt installiert, aber noch nicht konfiguriert.

Konfigurieren Sie Topbeat

Jetzt konfigurieren wir Topbeat so, dass eine Verbindung zu Logstash auf unserem ELK-Server hergestellt wird. In diesem Abschnitt erfahren Sie, wie Sie die mit Topbeat gelieferte Beispielkonfigurationsdatei ändern. Wenn Sie die Schritte ausführen, sollten Sie eine Datei haben, die ungefähr so ​​aussieht wie this.

Erstellen und bearbeiten Sie auf * Client Server * die Topbeat-Konfigurationsdatei:

sudo vi /etc/topbeat/topbeat.yml

Oben in der Datei sehen Sie den Abschnitt "+ input", in dem Sie angeben können, welche Metriken und Statistiken an den ELK-Server gesendet werden sollen. Wir verwenden die Standard-Eingabeeinstellungen, können sie jedoch jederzeit an Ihre Bedürfnisse anpassen.

Suchen Sie im Abschnitt "+ output " die Zeile " elasticsearch: ", die den Ausgabeabschnitt von Elasticsearch angibt (den wir nicht verwenden werden). * Löschen Sie den gesamten Elasticsearch-Ausgabebereich * oder kommentieren Sie ihn aus (bis zur Zeile " # logstash: +").

Suchen Sie den auskommentierten Logstash-Ausgabebereich, der durch die Zeile "+ # logstash: " gekennzeichnet ist, und entfernen Sie das Kommentarzeichen, indem Sie das vorangegangene " # " löschen. Kommentieren Sie in diesem Abschnitt die Zeile ` hosts: [" localhost: 5044 "] ` aus. Ändern Sie ` localhost +` in die private IP-Adresse (oder den Hostnamen, falls Sie diese Option gewählt haben) Ihres ELK-Servers:

topbeat.yml - 1 von 2

 ### Logstash as output
 logstash:
   # The Logstash hosts
   hosts: [":5044"]

Dadurch wird Topbeat so konfiguriert, dass eine Verbindung zu Logstash auf Ihrem ELK-Server über den Port "+ 5044 +" hergestellt wird (den Port, für den wir im vorausgesetzten Lernprogramm einen Logstash-Eingang angegeben haben).

Suchen Sie als Nächstes den Abschnitt "+ tls " und kommentieren Sie ihn aus. Deaktivieren Sie dann die Zeile, die " certificate_authorities " angibt, und ändern Sie ihren Wert in " [" /etc/pki/tls/certs/logstash-forwarder.crt "] +". Es sollte ungefähr so ​​aussehen:

topbeat.yml - 2 von 2

...

     # List of root certificates for HTTPS server verifications

Dadurch wird Topbeat so konfiguriert, dass das SSL-Zertifikat verwendet wird, das wir im vorausgesetzten Lernprogramm auf dem ELK-Server erstellt haben.

Speichern und Beenden.

Starten Sie nun Topbeat neu, um die Änderungen zu übernehmen:

sudo service topbeat restart
sudo update-rc.d topbeat defaults 95 10

Wenn Sie sich nicht sicher sind, ob Ihre Topbeat-Konfiguration korrekt ist, vergleichen Sie sie mit dieser https://gist.github.com/thisismitch/0f2872d078a2c88cba4c-Beispielkonfiguration].

Jetzt sendet Topbeat die System-, Prozess- und Dateisystemmetriken Ihres Client-Servers an Ihren ELK-Server! Wiederholen Sie diesen Abschnitt für alle anderen Server, für die Sie Topbeat-Metriken erstellen möchten.

Testen Sie die Topbeat-Installation

Wenn Ihr ELK-Stack ordnungsgemäß eingerichtet ist, sollte Topbeat (auf Ihrem Client-Server) Ihre Protokolle an Logstash auf Ihrem ELK-Server senden. Logstash sollte die Topbeat-Daten in einem mit einem Datumsstempel versehenen Index (+ topbeat-YYYY.MM.DD +) in Elasticsearch laden.

Stellen Sie auf Ihrem * ELK Server * sicher, dass Elasticsearch die Daten tatsächlich empfängt, indem Sie den Topbeat-Index mit folgendem Befehl abfragen:

curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'

Sie sollten eine Reihe von Ausgaben sehen, die so aussehen:

Sample Output:{
     "_index" : "topbeat-2016.02.01",
     "_type" : "process",
     "_id" : "AVKeLSdP4HKUFv4CjZ7K",
     "_score" : 1.0,
     "_source":{"@timestamp":"2016-02-01T18:51:43.937Z","beat":{"hostname":"topbeat-01","name":"topbeat-01"},"count":1,"proc":{"cpu":{"user":0,"user_p":0,"system":50,"total":50,"start_time":"12:54"},"mem":{"size":0,"rss":0,"rss_p":0,"share":0},"name":"jbd2/vda1-8","pid":125,"ppid":2,"state":"sleeping"},"type":"process","@version":"1","host":"topbeat-01"}
}

Wenn Ihre Ausgabe 0 Treffer ergibt, lädt Elasticsearch keine Topbeat-Daten unter dem von Ihnen gesuchten Index und Sie sollten Ihr Setup auf Fehler überprüfen. Wenn Sie die erwartete Ausgabe erhalten haben, fahren Sie mit dem nächsten Schritt fort.

Stellen Sie eine Verbindung zu Kibana her

Wenn Sie mit der Einrichtung von Topbeat auf allen Servern fertig sind, für die Sie Systemstatistiken erfassen möchten, schauen wir uns Kibana an.

Rufen Sie in einem Webbrowser den FQDN oder die öffentliche IP-Adresse Ihres ELK-Servers auf. Nachdem Sie die Anmeldeinformationen Ihres ELK-Servers eingegeben haben, sollte die Seite "Kibana Discover" angezeigt werden.

Wählen Sie im Menü "Indexmuster" (links) die Option "* [topbeat] -YYY.MM.DD *", um Ihre Topbeat-Daten in der Erkennungsansicht anzuzeigen:

Hier können Sie Ihre verschiedenen Topbeat-Einträge durchsuchen und aufschlüsseln.

Als Nächstes möchten Sie das zuvor geladene Topbeat-Beispiel-Dashboard überprüfen. Klicken Sie auf * Dashboard * (oben) und dann auf das Symbol * Gespeichertes Dashboard laden *. Navigieren Sie zur zweiten Seite der Dashboards und klicken Sie auf * Topbeat-Dashboard *:

image: https://assets.digitalocean.com/articles/elk/topbeat-view-dashboard.gif [Beispiel für Topbeat-Dashboard anzeigen]

Hier sehen Sie eine Vielzahl von Metriken, die von Ihren Client-Servern erfasst wurden, auf denen Sie Topbeat installiert haben.

Fazit

Jetzt, da Ihre Systemmetriken über Elasticsearch und Logstash zentralisiert sind und Sie sie mit Kibana visualisieren können, sollten Sie auf einen Blick sehen können, was Ihre Server vorhaben. Viel Glück!

Related