
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:
Ü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-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 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, 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 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-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;