Überwachung der Kibana-Dashboard-Ansichten mit Elastic Workflows

Erfahren Sie, wie Sie mit Elastic Workflows alle 30 Minuten Kibana-Dashboard-Ansichtsmetriken erfassen und in Elasticsearch indexieren können, um benutzerdefinierte Analysen und Visualisierungen auf Basis Ihrer eigenen Daten zu erstellen.

Kibana erfasst, wie oft jedes Dashboard angezeigt wird, aber diese Daten werden in keinem integrierten Dashboard nativ angezeigt. In diesem Artikel werden wir Elastic Workflows nutzen, um diese Daten alle 30 Minuten automatisch zu sammeln und in Elasticsearch zu indexieren, damit wir darauf unsere eigenen Analysen aufbauen können.

Elastic Workflows ist eine in Kibana integrierte Automatisierungs-Engine, mit der Sie mehrstufige Prozesse mithilfe einer einfachen YAML-Konfiguration definieren können. Jeder Workflow kann über einen Zeitplan, ein Ereignis oder als Tool in Elastic Agent Builder ausgelöst werden, und jeder Schritt kann Kibana-APIs aufrufen, Elasticsearch abfragen oder Daten umwandeln.

Wir verwenden die Anzahl der Dashboard-Ansichten als konkretes Beispiel, aber das gleiche Muster gilt für jede Metrik, die über die Kibana-API für gespeicherte Objekte bereitgestellt wird.

Voraussetzungen

[@portabletext/react] Unknown block type "block", specify a component for it in the `components.types` prop

Bevor wir etwas bauen, sollten wir uns erst einmal darüber klar werden, welche Daten wir haben. Kibana speichert den Großteil seiner Konfiguration und Metadaten als gespeicherte Objekte in einem separaten internen Index. Kibana erfasst auf diese Weise unter anderem die Anzahl der Dashboard-Aufrufe, indem ein spezieller Typ gespeicherter Objekte namens „Nutzungszähler“ verwendet wird. Sie können sie direkt in Dev Tools abfragen:

Die Reaktion sieht in etwa wie folgt aus:

Das Feld counterName ist die Dashboard-ID und count ist die kumulierte Anzahl der Aufrufe für dieses Dashboard an diesem bestimmten Tag. Kibana erstellt ein Zählerobjekt pro Dashboard pro Tag; Sie können das Datumssuffix in der Objekt-ID sehen (...viewed:server:20260310). Die Anzahl wächst im Laufe des Tages, wenn Nutzer das Dashboard öffnen.

Anstatt dieses tägliche Dokumentmodell in unserem Index zu replizieren, erstellen wir pro Workflow-Ausführung ein Dokument. Jedes Dokument zeichnet auf, wie viele Aufrufe dieses Dashboard für den Tag zum Zeitpunkt der Erfassung angesammelt hatte.

Schritt 2: Den Zielindex erstellen

Wir benötigen einen Index, um unsere Snapshots der Dashboard-Ansicht zu speichern. Der folgende Befehl erstellt sie mit expliziten Mappings, sodass wir später aggregieren und visualisieren können. Führen Sie dazu in Dev Tools den folgenden Befehl aus:

Die Verwendung von keyword Mappings für IDs und Namen ermöglicht Aggregationen. Die Verwendung von integer für view_count ist ein sicherer Standardwert, da Kibana den Zähler täglich zurücksetzt und das Erreichen des 32-Bit-Limits (mehr als 2 Milliarden Aufrufe an einem einzigen Tag) daher keine realistische Sorge darstellt. Es unterstützt weiterhin numerische Operationen wie max, avgund min und andere.

Schritt 3: Den Workflow erstellen

Gehen Sie zu Stack Management > Workflows > Neuer Workflow, und fügen Sie die folgende Workflow-YAML-Konfiguration ein:

Im folgenden Abschnitt werfen wir Schritt für Schritt einen Blick auf den Workflow.

So funktioniert der Workflow

Auslöser

Der Workflow wird alle 30 Minuten mit einem geplanten Auslöser ausgeführt. Dadurch erhalten wir Zeitreihendaten, ohne die API zu überlasten.

fetch_dashboard_views

Verwendet kibana.request , um die Kibana-API für gespeicherte Objekte aufzurufen. Es ist keine Authentifizierungskonfiguration erforderlich: Die Workflow-Engine fügt automatisch die korrekten Header basierend auf dem Ausführungskontext hinzu.

index_each_dashboard (foreach)

Iteriert über das Array saved_objects, das vom vorherigen Schritt zurückgegeben wurde. Das aktuelle Element in jeder Iteration ist als foreach.item verfügbar. Innerhalb der Schleife führen wir zwei verschachtelte Schritte für jedes Dashboard aus.

1. fetch_dashboard_name:

Ermittelt den für Menschen lesbaren Dashboard-Titel durch Aufruf von GET /api/saved_objects/dashboard/{id}. Wir fügen on-failure: continue: true hinzu, damit die Schleife fortgesetzt wird, anstatt dass die gesamte Ausführung fehlschlägt, falls ein Dashboard gelöscht wurde, aber noch Aufrufzähler vorhanden sind.

2. index_doc:

Indexiert jedes Dokument mit POST /dashboard-views/_doc (ohne eine explizite ID), wodurch Elasticsearch IDs automatisch generieren kann. Dadurch wird bei jedem Durchlauf ein neues Dokument erstellt, wodurch eine Historie der Aufrufzahlen im Laufe der Zeit aufgebaut wird, anstatt den vorherigen Snapshot zu überschreiben.

Zwei Dinge, die es zu beachten gilt:

  • Das Feld captured_at verwendet den Datumsfilter, um den Zeitstempel als ISO 8601 zu formatieren. Ohne ihn erscheint der Wert als JavaScript-Datumszeichenfolge, wie Tue Mar 10 2026 05:03:47 GMT+0000, die Elasticsearch nicht als Datum abbildet.
  • Der Ausdruck view_count verwendet die Syntax ${{ }} mit | plus: 0, um den numerischen Typ beizubehalten. Die Verwendung von {{ }} würde es als Zeichenfolge darstellen, was mathematische Operationen im Dashboard verhindern würde.

Die Benutzeroberfläche ermöglicht eine komfortable Fehlerbehebung jedes einzelnen Workflow-Schritts.

Schritt 4: Das Statistik-Dashboard erstellen

Sobald der Workflow einige Male ausgeführt wurde und Daten gesammelt wurden, erstellen Sie in Kibana ein neues Dashboard mithilfe der Data View „Dashboard-Ansichten“.

Einige Panels für den Anfang:

  • Top-Dashboards nach Ansichten: Verwenden Sie ein Balkendiagramm mit dashboard_name auf der X-Achse und last_value(view_count) auf der Y-Achse. Hier wird die aktuelle tägliche Anzahl der Aufrufe pro Dashboard angezeigt.
  • Ansichten im Zeitverlauf: Verwenden Sie ein Liniendiagramm mit captured_at auf der X-Achse und last_value(view_count) auf der Y-Achse, unterteilt nach dashboard_name. Da jede Ausführung ein neues Dokument anhängt, verwenden Sie den letzten Wert, um die Spitzenanzahl pro Zeit-Buckets zu erhalten, anstatt Duplikate zu summieren.
  • Aktueller Snapshot: Verwenden Sie eine Datentabelle mit den neuesten captured_at, um die aktuellsten Aufrufzahlen aller Dashboards anzuzeigen.

Da jeder Workflow ein neues Dokument erstellt, können Sie nach Zeitbereich filtern, um die Aktivität in bestimmten Zeiträumen zu analysieren, Vergleiche von Woche zu Woche anzustellen oder Alerts zu erstellen, wenn ein Dashboard unter einen Ansichtsschwellenwert fällt.

Fazit

Elastic Workflows eignet sich gut für diese Art von periodischer Datenerhebung, da sowohl die Quelle (Kibana API) als auch das Ziel (Elasticsearch) native sind, was bedeutet, dass keine Zugangsdaten verwaltet werden. Die Workflow-Engine verwaltet die Authentifizierung für die Schritte kibana.request und elasticsearch.request automatisch, sodass Sie nur die Logik schreiben müssen.

Ressourcen

Wie hilfreich war dieser Inhalt?

Nicht hilfreich

Einigermaßen hilfreich

Sehr hilfreich

Zugehörige Inhalte

Sind Sie bereit, hochmoderne Sucherlebnisse zu schaffen?

Eine ausreichend fortgeschrittene Suche kann nicht durch die Bemühungen einer einzelnen Person erreicht werden. Elasticsearch wird von Datenwissenschaftlern, ML-Ops-Experten, Ingenieuren und vielen anderen unterstützt, die genauso leidenschaftlich an der Suche interessiert sind wie Sie. Lasst uns in Kontakt treten und zusammenarbeiten, um das magische Sucherlebnis zu schaffen, das Ihnen die gewünschten Ergebnisse liefert.

Probieren Sie es selbst aus