Elastic Data Ingesting
Einführung
Mit Ingesting-Pipelines können ankommende oder bereits am Server vorliegende Ereignisse einfach und transparent modifiziert und erweitert werden. Sie sind vergleichbar mit Logstash-Pipelines, weisen aber nicht die gleiche Funktionsfülle auf. Durch die Ausführung im Elasticsearch-Prozess sind Ingest-Pipelines aber deutlich einfacher einsetzbar.
Im Kontext von service.monitor gibt es derzeit folgende Pipelines:
-
Berechnung von erweiterten Zeit- und Datumsangaben
-
Detail-Untersuchung von Esri ArcGIS Log-Daten
Die Pipeline-Dateien befinden sich in der Auslieferung im Verzeichnis elasticsearch/ingest
|
Use Cases
Temporal Adjustments
Die Pipeline ct-monitor-temporal
erlaubt die Berechnung von folgenden zusätzlichen Zeitwerten:
-
Tag der Woche
-
Name des Tages der Woche
-
Stunde des Tages
-
Tag des Jahres
-
Monatswert
Damit können Diagramme erstellt werden, die z.B. Messwerte im Tages- oder Wochengang visualisieren oder aggregieren.
Durch das Berechnen dieser Werte wird eine definierte Zeitzone verwendet (hier: Europe/Paris ). Dies muss gegebenenfalls angepasst werden.
|
Vertiefte ArcGIS-Analyse
Die Pipeline ct-monitor-arcgis-parse-servicename
erlaubt das nachträgliche Extrahieren von Dienst-Informationen aus Nachrichten von ArcGIS Server. Zumeist ist der betroffene Dienst in einem separaten Attribut der ArcGIS-Nachricht gespeichert, bei einigen Fällen liegt dieser jedoch nur im Nachrichten-Text der Logzeile vor.
Die Pipeline ist in der Lage über Grok
-Patterns, Dienstnamen zu erkennen und in das Standardfeld des Events zu überführen.
Diese Pipeline hilft z.B. beim Finden von Service Timeouts ("Error performing query operation Error handling service request :Processing request took longer than the usage timeout for service"). |
Anwendung
Ausführen von Pipelines für Bestandsdaten
POST _reindex
{
"source": {
"index": "source_index"
},
"dest": {
"index": "target_index",
"pipeline": "pipeline-name"
}
}
Für die Aktualisierung von Altdaten kann auch das Feature _update_by_query
genutzt werden.
Im Beispiel unten wird zusätzlich eine Query benutzt, um die Pipeline nur für bestimmte Events anzuwenden.
POST <index>/_update_by_query?pipeline=pipeline-name
{
"query": {
"match": {
"_id": "9_BGMnoBoGFrpZgJVWVE"
}
}
}
Ausführen von Pipelines für alle ankommenden Events
Durch das Setzen von Pipeline-Settings, kann eine Pipeline als die Standard-Pipeline gesetzt werden. Pipeline für Index konfigurieren
Setzen Sie den gleichen Wert auf dem zugehörigen Index-Template, um die Pipeline auch auf allen Folge-Indizes zu ermöglichen. |