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.

Day of week analysis
Hour of day analysis

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.

Felder, die von der 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

Anwenden einer Pipeline während einer Reindexierung
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.

Anwenden einer Pipeline "in place"
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.