Verwenden von Splunk für die Protokollsuche und -überwachung in AEM as a Cloud Service

Aktualisiert am 15. Januar 2025

Der Versuch, eine moderne Website ohne Log-Aggregator und ohne Metriken und Grafiken zu entwickeln und zu betreiben, ist eine Klinik für Wut und Frustration. Wann begann das Problem mit diesem und jenem? War es vor oder nach dem Einsatz? War das schon immer so? Sind alle Seiten langsam oder nur diese eine Seite? Es wirft jetzt Fehler – hat es immer Fehler geworfen? Hängt dieser Fehler mit irgendetwas zusammen?

Dies sind die Klassen von Fragen, mit denen Sie konfrontiert werden, wenn Sie nur Zugriff auf ein heruntergeladenes Protokoll haben, aber nicht in der Lage sind, es zu durchsuchen, grafisch darzustellen und über die Zeit und über mehrere Server hinweg zu messen. Als AEM as a Cloud Service zum ersten Mal gestartet wurde, bestand der einzige Mechanismus, um an Protokolle zu gelangen, darin, ganze Protokolle über Cloud Manager herunterzuladen. Später bot Adobe die Möglichkeit, die Protokolle einzelner Pods über einen etwas komplizierten Prozess mit Adobe IO zu verfolgen. Aber jetzt gibt es eine dritte und weitaus bessere Möglichkeit, Ihre AEM Cloud Service-Infrastruktur zu instrumentieren, und zwar mit Splunk. Und raten Sie mal, es kann sogar kostenlos gemacht werden, wenn Sie knapp bei Kasse sind oder einfach nur versuchen, es zu demonstrieren.

So richten Sie es ein:

Was du brauchst

Um Ihre AEM as a Cloud Service-Installation mit Splunk zu messen, benötigen Sie Folgendes:

Wie es funktioniert

Die Protokolldaten von AEM as a Cloud Service werden zunächst in eine Splunk-Instanz von Adobe aufgenommen, auf die der Adobe-Support Zugriff hat, um Ihre Umgebungen zu überwachen und Fehler zu beheben. Nach der ordnungsgemäßen Einrichtung richtet Adobe die Splunk-Instanz so ein, dass Protokollinformationen mithilfe des Splunk HTTP Event Collector oder "HEC" an Ihre Splunk-Instanz weitergeleitet werden.

Diagramm von Splunk mit AEM as a Cloud Service

Einrichten

Ich werde Ihnen eine Liste der Dinge geben, die Sie tun müssen, um es von Grund auf neu einzurichten. Wenn Sie ein großes Unternehmen sind, haben Sie wahrscheinlich bereits eine Splunk-Umgebung, die Sie verwenden werden, und überspringen daher eine Reihe von Schritten. Aber selbst wenn Sie kein vollständiges Enterprise-Setup durchführen, funktionieren diese Anweisungen mit der kostenlosen Version von Splunk und bieten Ihnen eine Protokollierung im Wert von 500 MB/Tag, die tatsächlich mit vielen kleinen AEM-Installationen, Entwicklerinstallationen und sogar einigen Produktions-Assets-Installationen funktioniert, an denen ich gearbeitet habe.

So geht's:

Installieren von Splunk

Angenommen, Sie haben noch kein Splunk-Setup, müssen Sie zuerst Splunk installieren. Für den Anfang reicht bereits eine sehr kleine Umgebung aus, um auf den Weg zu kommen. Diese Demo wurde mit Splunk Free erstellt, das auf einer AWS-VM der T-Serie mit einer CPU und 8 GB RAM ausgeführt wird, obwohl jede Produktionsumgebung wahrscheinlich deutlich mehr Ressourcen benötigt.

Konfigurieren eines Indexes für Ihre AEMaaCS-Daten

Gehen Sie in Splunk zu Einstellungen -> Indizes und erstellen Sie einen Index für Ihre AEM Cloud Service-Daten.

Erstellen Sie einen Splunk-Index für Ihre AEM as a Cloud Service-Daten.

Beschaffen eines extern gültigen SSL-Zertifikats für Splunk

Adobe benötigt ein extern gültiges SSL-Zertifikat für den Splunk HEC-Endpunkt. Ein selbstsigniertes Zertifikat funktioniert nicht. Manchmal kann man bei Server-zu-Server-Verbindungen SSL in einem "entspannten" Validierungsmodus laufen lassen, um Validierungsfehler und selbstsignierte Zertifikate funktionieren zu lassen, aber nicht in diesem Fall.

Für diese Demo habe ich ein kostenloses SSL-Zertifikat mit Letsencrypt unter Verwendung von Certbot auf CentOS erstellt.

Konfigurieren des HTTP Event Connectors

Der nächste Schritt besteht darin, den HTTP Event Collector auf Splunk zu konfigurieren. Gehen Sie zu Einstellungen -> Dateneingaben und klicken Sie auf " + Neu hinzufügen" für den HTTP-Ereignissammler.

Bei der Konfiguration des Endpunkts:

Konfigurieren von SSL auf dem HEC-Endpunkt

Ein nächster Punkt ist die Konfiguration von SSL auf dem Splunk-Endpunkt. Beachten Sie, dass Splunk Web (die Splunk-Benutzeroberfläche, die Sie zum Suchen und Konfigurieren von Splunk verwenden) und Splunk HEC vollständig getrennte HTTP- und SSL-Konfigurationen haben. Wenn Sie also SSL in Splunk Web aktivieren, bedeutet dies nicht , dass Ihr Splunk HEC auch SSL ist. Adobe verlangt, dass der HEC-Datenverkehr verschlüsselt wird, und bevorzugt es, dass er über Port 443 erfolgt. Ich habe mich nicht zu stark dagegen gewehrt, also unbekannt, ob sie einen alternativen Port einrichten können, wenn Sie nett genug fragen.

Sie können SSL zunächst aktivieren, indem Sie in den Einstellungen des HTTP Event Collector auf "GLOBALE EINSTELLUNGEN" gehen, auf "SSL aktivieren" klicken und die Portnummer eingeben.

Anschließend müssen Sie jedoch Ihre Splunk-Konfiguration auf der Festplatte aufrufen, um die SSL-Konfiguration abzuschließen.

Bearbeiten Sie {splunk_install_dir}/etc/apps/splunk_httpinput/local/inputs.conf und stellen Sie sicher, dass es den gewünschten Port und die gewünschte SSL-Zertifikatskonfiguration enthält:

[http]
disabled = 0
port = 443
serverCert = /etc/letsencrypt/live/splunk.opsinventor.com/fullchain.pem
privKeyPath = /etc/letsencrypt/live/splunk.opsinventor.com/privkey.pem

Starten Sie dann Splunk neu. Sie sollten dann in der Lage sein, einen Test des Splunk HEC-Endpunkts mit dem folgenden curl-Befehl durchzuführen:

curl -k https://your-splunk-host.com:443/services/collector -H 'Authorization: Splunk 1e238ab6-1f9d-47d4-9b0g-81c2a47e389c' -d '
 {
    "sourcetype": "aemerror",
    "index": "aemaacs",
    "event": {
      "host": "172.27.60.76",
      "file_path": "/var/log/aem/error.log",
      "orig_time": "07.12.2020 10:07:09.895",
      "level": "INFO",
      "msg": "[FelixLogListener] Test SPLUNK",
      "pod_name": "cm-random-pod",
      "aem_program_id": "12345",
      "aem_tier": "author",
      "aem_env_type": "dev",
      "aem_env_id": "32132",
      "splunk_customer": "true"
    }
  }
'

Ersetzen Sie im curl-Befehl das Bit "'Authorization: Splunk 1e238ab6-1f9d-47d4-9b0g-81c2a47e389c'" durch den "Token Value", den Sie in der Eingabekonfiguration des HTTP Event Collector in Splunk (/en-US/manager/search/http-eventcollector) sehen.

Als Antwort sollten Sie Folgendes sehen:

{"text": "Erfolg", "code": 0}

Dies bedeutet, dass der Ereignissammler erfolgreich konfiguriert wurde.

Eröffnen Sie ein Ticket mit Adobe, damit sie HEC auf ihrer Seite einrichten können

Sobald die oben genannten Schritte abgeschlossen sind, können Sie ein Ticket beim Adobe-Support eröffnen, damit die Protokolle an Ihre Splunk-Instanz weitergeleitet werden.

Stellen Sie sicher, dass Sie Folgendes ausdrücklich einbeziehen:

Welche Daten Sie sehen sollten (Woher Sie wissen, dass es funktioniert)

In Splunk sollten Sie dann in der Lage sein, eine einfache Suche durchzuführen wie:

index=aemaacs

Und es sollten Ergebnisse wie diese angezeigt werden:

Es sollten (mindestens) 7 Quellentypen in Ihre Ergebnisse einfließen:

Ein Beispiel für ein Splunk-Dashboard für AEM as a Cloud Service

Um diese Demo abzurunden, habe ich ein Beispiel-Dashboard für diese AEM as a Cloud Service-Entwicklungsumgebung erstellt.

In den oberen Bereichen werden die Zugriffsinformationen im Zeitverlauf, die durchschnittliche Antwortzeit und das Cache-Trefferverhältnis angezeigt. Da es derzeit keine Möglichkeit gibt, die durchschnittliche Antwortzeit für den Cloud-Dienst im Laufe der Zeit anzuzeigen (d. h. bis Adobe uns Zugriff auf New Relic- oder Backend-APM-Daten gewährt), ist dies der einzige Weg, den ich gefunden habe, um granular zu werden und nach Seite oder Ressource herauszufinden, was wie lange dauert, um verarbeitet zu werden.

Darüber hinaus erhalten Sie Fehler im Zeitverlauf sowie eine Tabelle mit den häufigsten Fehlern der Stufe 500/400 sowie eine Liste der Ressourcen mit der höchsten durchschnittlichen Antwortzeit.

Ich werde in Kürze einen separaten Beitrag mit den Splunk-Suchen schreiben, die zum Generieren dieses Dashboards verwendet werden – da die Quelltypen, Felder und dergleichen für jede AEM as a Cloud Service-Implementierung gleich sein sollten, was bedeutet, dass Sie nur Ihren Indexnamen ersetzen müssen, damit er funktioniert.

Aktualisieren: In der Zwischenzeit lesen Sie bitte diesen großartigen Blog-Beitrag, den Yogesh von Splunk gerade über die Implementierung von Splunk in AEM as a Cloud Service geschrieben hat - da er eine Reihe von Beispielsuchen enthält, die Sie zum Bootstrapping Ihres Dashboards benötigen.

Um es noch einmal zu wiederholen: Das ist kostenlos, Sie sollten es tun

All dies wurde ohne zusätzliche Lizenzkosten mit Adobe und mit kostenlosen Versionen von Splunk erstellt. Die einzigen anfallenden Kosten fallen für die Cloud-VM an, die zum Hosten von Splunk benötigt wird.

Weitere Informationen: Die kostenlose Version von Splunk weist einige wichtige Einschränkungen auf. Der erste ist, dass Splunk Free die Anmeldefunktion abschafft. Jeder, der auf das Frontend Ihrer Splunk-Instanz zugreifen kann, kann also alle Ihre Daten sehen. Das bedeutet, dass Sie, wenn Sie dies implementieren, entweder (a) die echte Version von Splunk kaufen oder (b) Splunk einfach per IP sperren oder Nginx/Apache mit HTTP-Basisauthentifizierung davor platzieren möchten.

Die zweite Einschränkung besteht darin, dass Splunk Free auf 500 MB/Tag für die Protokollierung beschränkt ist. Zum Vergleich: Die AEMaaCS Assets Dev-Umgebung, die ich für diese Demo verwende, nutzt im Durchschnitt etwa 22 % dieser Lizenzkapazität:

Wenn Sie also dies mit einer freien Lizenz zum Laufen bringen möchten (während Sie sich darum kümmern, wie Sie eine Bestellung für ein vollständiges echtes Splunk erhalten), möchten Sie vielleicht einfach eine separate Splunk-Umgebung für Dev & Stage und eine weitere für Prod erstellen.

Ich hoffe, das hilft!

Über den Autor

Tad Reeves
Leitender Architekt bei Arbory Digital

AEM Architect & DevOps mit 14 Jahren Erfahrung in AEM/CQ und 25+ Jahren in der Systeminfrastruktur.

Kontaktieren Sie Tad auf Linkedin

Gefällt Ihnen, was Sie gehört haben? Haben Sie Fragen dazu, was für Sie das Richtige ist? Wir würden uns freuen, mit Ihnen zu sprechen! Kontaktieren Sie uns

Podcast-Episoden & Blogbeiträge

category
AEM Technical Help, AEM News, Arbory Digital News, Customer Stories, Podcasts
tags
cloud
number of rows
1