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 gleich 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 unter 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 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.

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 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

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.