Heartbeat mit Elasticsearch 8.x – Teil 1: Installieren und Sichern

Veröffentlicht am 2023-01-04

« Alle Vorträge ansehen Kontaktieren Sie uns
Heartbeat with Elasticsearch 8.x - Part 1: Install & Secure

Einführung

Code auf Github: Elasticsearch und Beats

Wir werden einrichten Herzschlag mit Elasticsearch und Kibana. Wenn Sie Elasticsearch und Kibana noch nicht eingerichtet haben, dann Befolgen Sie diese Anweisungen.

Dieses Video setzt voraus, dass Sie Öffentlich signierte Zertifikate. Wenn Sie Selbstsignierte Zertifikate, hier klicken Wird noch bekannt gegeben.

Anforderungen

Eine laufende Instanz von Elasticsearch und Kibana.

Eine Instanz eines anderen Ubuntu 20.04-Servers, auf dem ein beliebiger Dienst ausgeführt wird.

Schritte

Schritt 1 - Heartbeat herunterladen [01:12]

Führen Sie auf der Ubuntu-Maschine, auf der Packetbeat ausgeführt wird, diese Befehle aus, um Abhängigkeiten herunterzuladen:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg; sudo apt-get install -y apt-transport-https; echo 'deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main' | sudo tee /etc/apt/sources.list.d/elastic-8.x.list; sudo apt-get update && sudo apt-get install -y heartbeat-elastic;

Schritt 2 - Heartbeat konfigurieren [02:21]

Bearbeiten Sie diese Felder für die /etc/heartbeat/heartbeat.yml.

heartbeat.monitors: - type: http # ID used to uniquely identify this monitor in elasticsearch even if the config changes id: apache-website # Human readable display name for this service in Uptime UI and elsewhere name: Apache Website # List or urls to query urls: ["<url>"] #["http://192.168.0.60"] # Configure task schedule schedule: '@every 5s' # Total test connection and data exchange timeout #timeout: 16s # Name of corresponding APM service, if Elastic APM is in use for the monitored service. #service.name: my-apm-service-name - type: http # ID used to uniquely identify this monitor in elasticsearch even if the config changes id: elastic-rest # Human readable display name for this service in Uptime UI and elsewhere name: Elastic Rest # List or urls to query urls: ["<elasticsearch-domain>:<elasticsearch-port>"] username: 'elastic' password: "<your elastic password>" # Configure task schedule schedule: '@every 5s' setup.kibana: host: "https://<kibana-domain>:<kibana-port>" output.elasticsearch: hosts: ["<elasticsearch-domain>:<elasticsearch-port>"] protocol: "https" username: "elastic" password: "<your elastic password>"

Die fertige Datei heartbeat.yml finden Sie hier

WICHTIG: Wir verwenden den Elastic-Superuser für die Ersteinrichtung und Konfiguration. Wir werden die Berechtigungen später herabstufen.

Testen Sie dann Ihre Konfiguration mit diesen Befehlen:

/usr/share/heartbeat/bin/heartbeat test config -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat /usr/share/heartbeat/bin/heartbeat test output -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat

Sie sollten ungefähr Folgendes sehen:

Verify heartbeat configuration Überprüfen der Heartbeat-Konfiguration

Schritt 3 - Heartbeat einrichten [12:48]

Führen Sie nun diesen Befehl aus, um Heartbeat-Datenströme und -Ansichten in Elasticsearch und Kibana einzurichten:

/usr/share/heartbeat/bin/heartbeat setup -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat

Sobald der Befehl abgeschlossen ist, gehen Sie zu Kibana Speisekarte und besuchen Observability > Übersicht um einen Monitorabschnitt anzuzeigen.

Schritt 4 - Einen veröffentlichenden Benutzer erstellen [14:53]

Heartbeat-Datenansicht erstellen [16:18]

Gehen Sie in Kibana zu Stapelverwaltung > Datenansichten. Klicken Sie auf „Datenansichten erstellen“ und füllen Sie die folgenden Felder aus:

name: heartbeat-* index: heartbeat-* Timestamp field: @timestamp

und klicken Sie dann auf Datenansicht in Kibana speichern

Rolle erstellen

Gehen Sie in Kibana zu Stapelverwaltung > Rollen > Rolle erstellen. Füllen Sie dann diese Felder aus:

Role name: heartbeat-publisher Cluster privileges: monitor, read_ilm Indices: heartbeat-* Privileges: create_doc

Benutzer erstellen

Gehen Sie in Kibana zu Stapelverwaltung > Benutzer > Benutzer erstellen. Füllen Sie dann diese Felder aus:

Username: heartbeat-publisher Full name: heartbeat-publisher Email address: anything@anything.com Password: anything Roles: heartbeat-publisher, editor

API-Schlüssel für Benutzer erstellen

Gehen Sie in Kibana zu Entwicklertools > Konsole. Führen Sie dann diesen Befehl aus:

POST /_security/api_key/grant { "grant_type": "password", "username": "heartbeat-publisher", "password": "anything", "api_key": { "name": "heartbeat-publisher" } }

Dies sollte zu einem Ergebnis wie diesem führen:

Heartbeat user token Heartbeat-Benutzertoken

Bearbeiten Sie die /etc/heartbeat/heartbeat.yml durch Auskommentieren der elastic Benutzername und Passwort und die Aktivierung der api_key ungefähr so:

output.elasticsearch: ...etc... api_key: "${ES_API_KEY}" #username: "elastic" #password: "" ...etc...

Wir verwenden den Heartbeat-Keystore, um Geheimnisse für die Laufzeit zu laden. Führen Sie nun diesen Befehl aus, um die ES_API_KEY Schlüsselspeichervariable:

/usr/share/heartbeat/bin/heartbeat keystore add ES_API_KEY -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat

Presse eingeben und wenn Sie dazu aufgefordert werden, fügen Sie <id>:<api_key> wo die <id> und die <api_key> sind die Werte aus der Benutzertoken-Antwort, die Sie zuvor erhalten haben.

Schritt 5 - Heartbeat ausführen [17:37]

systemctl enable heartbeat-elastic; systemctl start heartbeat-elastic;

In Kürze sollten Sie in Kibana Ergebnisse sehen, entweder Entdecken, Beobachtbarkeit, Stapelverwaltung > Beobachtbarkeit > Monitore.

Schritt 6 - Einen weiteren Monitor einrichten, ohne Heartbeat neu laden zu müssen [26:15]

Gehen Sie auf dem Terminal zu

cd /etc/heartbeat/monitors.d

Kopieren Sie dann eine der deaktivierten Vorlagen

cp sample.html.yml.disabled html.yml.disabled

Öffnen Sie die Datei

vi html.yml.disabled

Es sollte so aussehen:

Heartbeat new http monitor Heartbeat neuer HTTP-Monitor

Und nehmen Sie dann entsprechende Änderungen vor

id: Any id name: Any name schedule: Any type of schdule, though i will use cron as an example hosts: ["<the monitor url>]

Das Bild unten zeigt ein Beispiel:

Heartbeat new http monitor example Heartbeat, neues HTTP-Monitor-Beispiel

Um es jetzt zu aktivieren, können wir den folgenden Befehl verwenden

cp html.yml.disabled html.yml

Schritt 7 - Einen zweiten Beobachter einrichten [28:24]

Befolgen Sie auf einem anderen Server/Computer Schritt 1 und fahren Sie dann mit den Befehlen fort, um die Dateien vom ersten Server auf diesen neuen/aktuellen Server zu kopieren, wie im folgenden Bild gezeigt:

Heartbeat Second Observer to copy files from original server to current one Heartbeat Second Observer zum Kopieren von Dateien vom ursprünglichen Server auf den aktuellen

und bearbeiten Sie dann diese Felder für die /etc/heartbeat/heartbeat.yml

Unten sehen Sie ein Beispielbild:

Heartbeat Second Observer heartbeat.yml file edits Heartbeat Second Observer heartbeat.yml-Dateibearbeitungen

Wir verwenden den Heartbeat-Keystore, um Geheimnisse für die Laufzeit zu laden. Führen Sie nun diesen Befehl aus, um die ES_API_KEY Schlüsselspeichervariable:

/usr/share/heartbeat/bin/heartbeat keystore add ES_API_KEY -c /etc/heartbeat/heartbeat.yml --path.data /var/lib/heartbeat --path.home /usr/share/heartbeat

Presse eingeben und wenn Sie dazu aufgefordert werden, fügen Sie <id>:<api_key> wo die <id> und die <api_key> sind die Werte aus der Benutzertoken-Antwort, die Sie zuvor erhalten haben.

Führen Sie jetzt Heartbeat aus

systemctl enable heartbeat-elastic.service; systemctl start heartbeat-elastic.service;