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 jedoch einfacher einsetzbar.

Im Kontext von service.monitor gibt es derzeit folgende Pipelines:

  • Berechnung von erweiterten Zeit- und Datumsangaben (alle Datenquellen)

  • Detail-Untersuchung von Esri ArcGIS Log-Daten (ArcGIS Log-Daten)

  • URL- und Dienstinformationen aus Monitoring-Ereignissen

Die Pipeline-Dateien befinden sich in der Auslieferung unter elasticsearch/ingest

Use Cases

Anreicherung von zusätzlichen Zeitinformationen

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 definiert 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")

ArcSOC Prozess-Analyse (Metricbeat)

Die Pipeline ct-monitor-arcsoc erlaubt die Berechnung von folgenden zusätzlichen Zeitwerten:

Extrahieren von ArcGIS-Service-Informationen und Hostnamen aus Überwachungsereignissen

Die ct-monitor-arcgis-serviceinfo-Pipeline macht es möglich, ArcGIS-Service-Informationen aus Monitoring-Ereignissen zu extrahieren.

Felder
[...]
"service" : {
  [...]
  "host" : "services.conterra.de",
  "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 von Ingest Pipelines

Ausführen von Pipelines für Bestandsdaten

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

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.