Sammeln von Windows-Metriken in Elasticsearch mit Metricbeat und Visualisieren mit Grafana
In diesem Beitrag schauen wir uns eine weitere der wunderbaren Komponenten von Elasticsearch an, In den Beats-Paketen finden wir auch ein Dienstprogramm, das uns hilft, Metriken von unseren Windows- oder Linux-Computern zu verarbeiten und zu sammeln, bekannt als Metricbeat. Wir werden sehen, wie Sie diese Metriken nach Logstash exportieren, um sie zu verarbeiten und in Elasticsearch zu speichern, um sie später mit Kibana oder Grafana zu visualisieren!
Nicht schlecht, Wir müssen den Metricbeat-Light-Agent auf den Maschinen installiert und laufen lassen, von denen wir seine Metriken aufnehmen möchten, ist ein Windows-Computer, Linux oder Mac OS. Wir laden Metricbeat herunter von https://www.elastic.co/downloads/beats/metricbeat, Wir entpacken es und , (Zum Beispiel) Wir beließen es bei ' C:\Programmemetricbeat'. Wir werden die Konfigurationsdatei namens 'metricbeat.yml' und eine weitere Referenzdatei mit allen Optionen haben, die wir verwenden können, Genannt "metricbeat.reference.yml". In diesem Beispiel sehen wir auf einem Windows-Rechner, wie grundlegende Metriken wie CPU gesammelt werden, Gedächtnis, Festplatte oder Netzwerk, Wenn Sie jedoch einen interessanten Dienst ausführen, aktivieren wir optional das entsprechende Modul, um diese Daten ebenfalls zu sammeln. Wir werden Metricbeat herunterladen, Wir richten es ein und installieren es als Service.
Konfigurieren von Metricbeat,
Brunnen, bevor Sie mit der Wiedergabe der Metricbeat-Konfigurationsdatei beginnen; im Ordner 'modules.d’ Wir werden alle zusätzlichen Module haben, aus denen wir auch Metriken erhalten können, sind Webdienste, Datenbanken, Virtuelle Plattformen, wie Apache, Mongobus, MySQL (Englisch), vSphere, PostgreSQL… In jedem Modul können wir es ermöglichen, mehr oder weniger Metriken zu erhalten.
In diesem Beispiel, in 'system.yml’ Wir werden sehen, dass jeder umgeleitet wird 10 Sekunden CPU-Metriken, Gedächtnis, Netzwerk oder Informationen zu Prozessen, u.a., Wir können kommentieren oder auskommentieren, was wir brauchen, Wir können dieses Modul oder dasjenige, an dem wir interessiert sind, definieren, indem wir die Informationen angeben, die wir sammeln möchten. Später werden wir sehen, wie wir die Module aktivieren können, die uns interessieren, Andernfalls haben sie die Erweiterung ".disabled".
[Quellcode]- Modul: System
Periode: 10s
Metriksätze:
– CPU
#- Last
– Gedächtnis
– Netz
– Prozess
– process_summary
#- Kern
#- Diskio
#- Steckdose
process.include_top_n:
by_cpu: 5 # oben einschließen 5 Prozesse nach CPU
by_memory: 5 # oben einschließen 5 Prozesse nach Gedächtnis
– Modul: System
Periode: 1m
Metriksätze:
– Dateisystem
– FSSTAT
Prozessoren:
– drop_event.wann.regexp:
system.filesystem.mount_point: ‘^/(sys|cgroup|Proc|Dev|etc|Gastgeber|Befreien)($|/)’
– Modul: System
Periode: 15m
Metriksätze:
– Betriebszeit[/Quellcode]
Nach, in der Konfigurationsdatei 'metricbeat.yml’ Wir werden den Rest der Konfiguration durchführen, Im Abschnitt Allgemein ===== können wir ===== Tags oder zusätzliche Felder hinzufügen, falls wir daran interessiert sind, diesen Metricbeat des Geräts mit verschiedenen Schlüsselwörtern zu verknüpfen, damit sie dann in verschiedenen Suchen verwendet werden können, wie man angibt, ob es sich um einen Server handelt, eine Datenbank oder ein Webserver ist, oder haben IIS, Ihr SO...
[Quellcode]Schilder: ["Server", "Fenster 2016 R2", "OS-DC-01"]
Felder:
globo_environment: Produktion[/Quellcode]
Im Abschnitt Ausgabe, Wir werden in der Lage sein, die Daten direkt an Elasticsearch zu senden, Aber wie in anderen Beiträgen, Ich bevorzuge es besonders, die Daten zur Verarbeitung an Logstash zu senden. Wir besprechen also den gesamten Teil der Ausgabe gegen Elasticsearch und konfigurieren ihn für den Logstash-Server und seinen Port, dass in ein früheres Dokument Wir sahen in dem Teil von “Konfigurieren von Logstash” die zu erstellende Datei. Wie gesagt, wir berühren den Ausgang und lassen so etwas wie:
[Quellcode]#——— Logstash-Ausgabe ———
output.logstash:
# Die Logstash-Hosts
#Wirte: ["localhost:5044"]
Wirte: ["DIRECCION_IP_LOGSTASH:5044"][/Quellcode]
Sobald Metricbeat eingerichtet ist, um Metricbeat als von uns ausgeführten Dienst zu installieren:
[Quellcode].\install-service-metricbeat.ps1[/Quellcode]
Und was ich gesagt habe, Wir können bestimmte Module aktivieren, wenn wir eine zusätzliche Überwachung auf unserer Maschine wünschen, auf diesem Server habe ich ein MySQL und einen Apache, Sie sollten sie aktivieren:
[Quellcode].\metricbeat.exe-Module aktivieren Apache MySQL[/Quellcode]
Wie gewöhnlich, das erste Mal, dass wir Metricbeat-Metriken zu Elasticsearch hinzufügen, Wir müssen die Vorlage laden, damit sie die Indizes mit den Feldern korrekt generiert:
.\metricbeat.exe Einrichtung –template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=[“SERVIDOR_ELASTICSEARCH:9200”]’
Wir können testen, ob wir die Konfigurationsdateien korrekt konfiguriert haben, aus einer PowerShell mit Administratorrechten, Gehen wir zu dem Pfad, auf dem wir Metricbeats haben, und wir setzen um:
[Quellcode].\metricbeat.exe test config -c .metricbeat.yml -e[/Quellcode]
Und wir starten den Service und wenn wir wollen,, Wir können den Status der Metricbeats-Verbindung mit Logstash oder Elasticsearch sehen (Es kommt darauf an, was wir gewählt haben):
[Quellcode]Start-Service metricbeat
Get-Content .logsmetricbeat -Wait[/Quellcode]
Und das ist es! Wir sollten bereits Metricbeat haben, um Metriken zu sammeln! Lassen Sie uns sie nun visualisieren… Die Magie kommt!
Von Kibana,
Wenn wir Metriken mit Kibana visualisieren möchten, Zuerst erstellen wir das Indexmuster, Dann werden wir überprüfen, ob die Daten ankommen, und dann können wir mit dem Malen beginnen!
Wir öffnen Kibana, Wir werden “Management” > “Index-Muster” > “Erstellen eines Indexmusters” und geben Sie 'metricbeat-* an.’ als Muster, Anklicken “Nächster Schritt”,
Auswählen ‘@timestamp‘ als Zeitspalte und erstellen Sie das Muster aus “Erstellen eines Indexmusters”.
Und von “Entdecken”, Wenn wir das Muster auswählen, das wir gerade erstellt haben, können wir sehen, dass wir Daten erhalten, wie gewöhnlich, Wir können sehen, was von hier aus zu uns kommt, Spielen Sie ab, um Spalten hinzuzufügen und Filter zu erstellen, und erstellen Sie dann die Visualisierungen aus “Visualisieren” und sehen Sie die Metriken, die wir überwachen, in Echtzeit, aber im Diagrammformat, Patt, Spalten, Käse…
Von Grafana,
Bevor Sie die Daten visualisieren können, Denken Sie daran, dass wir die Datenquelle registrieren und Grafana mit Metricbeat-Indizes in Elasticsearch verbinden müssen!
Wir öffnen Grafana, Gehen wir zu "Einstellungen" > "Datenquellen", Wir geben der Verbindung einen Namen, In der URL müssen wir die URL unseres Elasticsearch 'http angeben.://DIRECCION_IP_ELASTIC:9200’. Wählen Sie 'metricbeat-*' aus, um es als Namen für die Indizes zu verwenden, Wir geben das Feld @timestamp für das Zeitfeld an und wählen die Elasticsearch-Version aus, Klicken Sie auf "Speichern" & Testen",
Und wir können Dashboards in einem Dashboard hinzufügen, um die Metriken zu visualisieren, die von den Maschinen generiert werden, auf denen Metricbeat installiert ist! In einem Beispieldashboard, In diesem Fall handelt es sich um ein Liniendiagramm, Hier visualisieren wir alle Metriken, die von einigen Maschinen generiert werden. Wir wählen unseren Konnektor gegen Metricbeat-Indizes in Elasticsearch aus, und wir können von hier aus Lucene-Abfragen verwenden, um zu visualisieren, was uns interessiert.
Und nichts, In Kürze werden wir in der Lage sein zu analysieren, welche Daten uns erreichen und wie wir sie mit Grafana präsentieren und zeichnen können, Sie werden sehen, dass es nicht so kompliziert ist und wir alle Informationen, die wir sammeln, auf sehr angenehme Weise visualisieren können, Ich hoffe, Sie fanden es interessant!