
Einführung
Code auf Github: Elasticsearch und Anwendungsleistungsüberwachung
Wir werden einrichten Überwachung der Anwendungsleistung mit Elasticsearch und Kibana. Wenn Sie APM, Elasticsearch und Kibana noch nicht eingerichtet haben, dann Befolgen Sie diese Anweisungen für Teil 1 Und Dies für Teil 2.
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 neue Instanz von Ubuntu 20.04 als Fleet Server
Schritte
Schritt 1 - Verwenden Sie das Serverprotokoll, um Warnungen in die Datei kibana.log zu schreiben [02:12]
Melden Sie sich bei Kibana an und gehen Sie zu Beobachtbarkeit > Warnungen > Managerregeln, und klicken Sie auf das Stiftsymbol in der Warnung zur Fehleranzahl, die wir im vorherigen Video eingerichtet haben.
Regel bearbeiten
Scrollen Sie nach unten und klicken Sie auf Einen Connector hinzufügen, es sollte etwas Ähnliches wie unten angezeigt werden
Add a Connector
und geben Sie ihm einen Namen wie Anschluss 2, und drücken Sie dann speichern. Klicken Sie nun unten rechts auf „Speichern“, um die Verbindungsdetails zu speichern.
Um die veröffentlichten Protokolle anzuzeigen, gehen Sie zu Ihrem Kibana-Server-Terminal und führen Sie Folgendes aus.
cd /var/log/kibana
vi kibana.log
Gehen Sie jetzt zu Kibana, um einen Alarm für den Schwellenwert der Latenzrate einzurichten. Wählen Sie Anschluss 2 für die Connector-Option und wählen Sie die restlichen Details wie im Bild unten gezeigt
Latenzrate Verbindung
Machen Sie dasselbe für die Benachrichtigung bei fehlgeschlagenen Transaktionen.
Warnung bei fehlgeschlagenen Transaktionen
Schritt 2 - Verwenden Sie Logstash, um Warnungen aus der Datei kibana.log aufzunehmen [09:20]
Installieren Sie Logstash mit dem folgenden Befehl auf Ihrem Terminal
sudo apt-get update && sudo apt-get install logstash
Um zu bestätigen, dass Logstash erfolgreich installiert wurde, führen Sie den folgenden Befehl aus.
cd /usr/share/logstash/bin/
ls
Sie sollten ungefähr Folgendes erhalten:
Logstash-Binärdateien
Verwenden Sie den folgenden Befehl, um Logstash auszuführen.
cd ~
/usr/share/logstash/bin/logstash -e 'input {
file {
type => "json"
codec => "json"
path => "/var/log/kibana/kibana.log"
start_position => beginning
}
}
output {
stdout {}
}'
Schritt 3 - Verwenden Sie Logstash, um Warnungen an Mailtrap oder einen SMTP-Server zu veröffentlichen [14:50]
Erstellen Sie wie im Video gezeigt ein Mailtrap-Konto. Sie verwenden die URL des SMTP-Servers als E-Mail-Adresse. Kehren Sie nun zum Terminal zurück und führen Sie den folgenden Befehl aus.
/usr/share/logstash/bin/logstash -e 'input {
file {
type => "json"
codec => "json"
path => "/var/log/kibana/kibana.log"
start_position => beginning
}
}
output {
email {
to => "<user@example.com>"
from => "<user@example.com>"
subject => "Alert: %(message)"
body => "%(message)"
authentication => "plain"
address => "smtp.mailtrap.io"
domain => "smtp.mailtrap.io"
port => 2525
username => "<Your Username>"
password => "<Your Password>"
}
}'
Schritt 4 - Bedingte Ausgabe (zB nur E-Mail [log][level] == FEHLER) [20:20]
Wenn Sie nur den Protokollebenenfehler möchten, verwenden Sie den folgenden Befehl.
/usr/share/logstash/bin/logstash -e 'input {
file {
type => "json"
codec => "json"
path => "/var/log/kibana/kibana.log"
start_position => beginning
}
}
output {
if [log][level] == "ERROR"
email {
to => "<user@example.com>"
from => "<user@example.com>"
subject => "Alert: %{message}"
body => "%{message}"
authentication => "plain"
address => "smtp.mailtrap.io"
domain => "smtp.mailtrap.io"
port => 2525
username => "<Your Username>"
password => "<Your Password>"
}
}'
Schritt 5 - Verwenden Sie den Grok-Filter, um Nachrichten zu formatieren [22:05]
Um den Grok-Filter zu verwenden, gehen Sie zurück zum Terminal und führen Sie den folgenden Befehl aus.
/usr/share/logstash/bin/logstash -e 'input {
file {
type => "json"
codec => "json"
path => "/var/log/kibana/kibana.log"
start_position => beginning
}
}
filter {
grok {
match => {
"message" => "Server log: %(DATA:apmreason):;;- Service name: %(DATA:apmservice);-
}
}
}
output {
email {
to => "<user@example.com>"
from => "<user@example.com>"
subject => "Alert: %{apmservice} %{apmreason}"
body => "%{message}"
authentication => "plain"
address => "smtp.mailtrap.io"
domain => "smtp.mailtrap.io"
port => 2525
username => "<Your Username>"
password => "<Your Password>"
}
}'