Elastic Data Ingesting
Einführung
Mit Ingesting Pipelines können Sie ankommende oder bereits am Server vorliegende Ereignisse einfach und transparent modifizieren und erweitern. 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 ArcGIS Log-Daten
Die Pipeline-Dateien befinden sich in der Auslieferung unter elasticsearch/ingest .
|
Anwendungsfälle
Zeitliche Anpassungen
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
-Pattern, Dienstnamen zu erkennen und in das Standard-Feld 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 |
Extraktion von ArcGIS-Service-Informationen
Die ct-monitor-arcgis-serviceinfo
-Pipeline macht es möglich, ArcGIS-Service-Informationen aus Monitoring-Ereignissen zu extrahieren.
ct-monitor-arcgis-serviceinfo
-Pipeline hinzugefügt wurden[...]
"service" : {
[...]
"host" : "services.example.com",
"ags": {
"url-path" : "/arcgis/rest/services/mapapps/stoerung_relates/MapServer",
"arcgis-service-name" : "mapapps",
"arcgis-folder" : "stoerung_relates",
"arcgis-service-and-folder" : "mapapps/stoerung_relates"
},
[...]
}
Anwendung
Ausführen von Pipelines für Bestanddaten
POST _reindex
{
"source": {
"index": "source_index"
},
"dest": {
"index": "target_index",
"pipeline": "pipeline-name"
}
}
Für die Aktualisierung von Alt-Daten 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
Sie können in den Pipeline-Settings eine Pipeline als Standard festlegen.
Setzen Sie den gleichen Wert auf dem zugehörigen Index-Template, um die Pipeline auch auf allen Folge-Indizes zu ermöglichen. |