Wenn ihr bereits Daten aus der Google Cloud Platform (GCP) erfasst habt oder dies plant, habt ihr sicherlich bemerkt, dass zur Aufnahme der Daten das Google Cloud Platform Add-On von Splunk verwendet wird.
Viele Kunden nutzen derzeit jedoch „serverless“ Cloud-Services für die Bereitstellung ihrer Cloud-Lösungen. Dafür gibt es viele Gründe, aber vor allem spricht dafür, dass man dadurch Lösungen erhält, für die kein Overhead an Server- oder Container-Management notwendig ist, die skalierbar sind und als Teil der Cloud-Plattform bereitgestellt werden. Das Add-On kann Daten zwar aus GCP extrahieren (Pull), doch eine neue Funktionsbibliothek bietet eine serverlose Push-Funktion, die die Add-On-Funktionalität zum Senden von Daten an Splunk via HEC repliziert und erweitert. Diese Push-Funktion gibt GCP-Kunden ähnliche Möglichkeiten, wie sie AWS-Kunden bei der Verwendung von Kinesis Firehose- oder Lambda-Funktionen haben.
Da diese Funktionen als Service innerhalb von GCP ausgeführt werden, skalieren sie automatisch entsprechend den Workload-Anforderungen und werden nur nach Nutzung berechnet (d. h. sie sind nicht immer eingeschaltet). Da der Haupt-Service zudem fehlertolerant ist, müsst ihr auch kein Failover- oder Hochverfügbarkeits-Setup für eure VMs konfigurieren, auf denen das Add-On ausgeführt wird. Ein weiterer Vorteil ist, dass keine Service-Konten oder -Schlüssel außerhalb eurer GCP-Umgebung gemeinsam genutzt werden müssen.
WAS GENAU DÜRFT IHR ERWARTEN?
Die PubSub-Funktion ist so konfiguriert, dass sie jede Nachricht erfasst, die in einem von ihr abonnierten PubSub-Thema platziert wird. Im Allgemeinen handelt es sich bei diesen Nachrichten um Protokolle, die aus Stackdriver exportiert werden, der Service-Monitoring-, Audit- und Aktivitätslogs aus GCP bereitstellt. Das nachfolgende Diagramm zeigt die Abläufe bei dieser Funktion.
Die Logs werden über „Log Export“ aus Stackdriver erfasst, und danach wird das Log-Abonnement in einem PubSub-Thema platziert. Es kann bei Bedarf mehr als ein Log Export in einem PubSub-Thema platziert werden. Diese Konfiguration ist mit der des Add-Ons identisch. Sobald die Funktion in eurem GCP-Projekt installiert wurde, kann sie das PubSub-Thema abonnieren. Beim Empfang einer PubSub-Nachricht sendet die Funktion den Inhalt über HEC weiter an Splunk. Tritt bei der Übertragung des Events an HEC ein Fehler auf, wird die Nachricht an ein PubSub-Thema namens „Retry“ gesendet. In regelmäßigen Abständen werden die Events im PubSub-Thema „Retry“ an Splunk HEC übertragen (oder später gesendet, falls erneut ein Fehler auftritt).
Die Metrics-Funktion ist dafür konfiguriert, Metriken für eure Infrastrukturkomponenten von Stackdriver anzufordern. Pro Funktion können eine Metrikliste sowie die Häufigkeit bzw. das Intervall der Metriken konfiguriert werden. Wie auch bei der PubSub-Funktion werden fehlgeschlagene Nachrichten an das PubSub-Thema „Retry“ gesendet, von wo aus sie später in regelmäßigen Abständen an Splunk übermittelt werden.
Bei der Konfiguration der Metrics-Funktion stehen zwei Formate für die Übertragung der Metriken an Splunk zur Auswahl:
Die GCS-Funktion sendet Daten über HEC aus einem GCS-Bucket an Splunk. Die Funktion wird ausgelöst, wenn ein neues Objekt in einen Bucket eingefügt wird (durch Finalisieren/Erstellen). Die Funktion ist so konfiguriert, dass sie Events aus dem Objektelement liest und sie dabei nach den Einstellungen in der Sourcetyp-Definition in Splunk gliedert (Zeilenumbruch). Bei großen Objekten wird der Objektinhalt vor der Übertragung an Splunk in Event-Batches aufgeteilt. Aus diesem Grund ist die an Splunk übermittelbare Objektgröße unbeschränkt (abgesehen von GCS-Einschränkungen), und die Events im Objekt werden auf die Indexer verteilt (über den Load Balancer).
Diese Funktionalität steht im GCP Add-On derzeit nicht zur Verfügung.
Zusätzlich bietet die GCS-Funktion die Möglichkeit, eine andere Funktion für die Anforderung von GCP Asset-Informationen zu verwenden (Inventory). Diese Funktion kann für die Ausführung in einem Intervall geplant werden und die Asset-API für gcloud aufrufen, die die Asset-Informationen an einen GCS-Bucket sendet. Wird eine GCS-Funktion so eingerichtet, dass sie durch neue Objekte in diesem Bucket ausgelöst wird, kann sie die Asset-Daten an Splunk senden.
Die Funktionsbibliothek wird samt einer Retry-Funktion zur Verfügung gestellt, die in Verbindung mit einem PubSub-Thema und einem Cloud-Zeitplan verwendet wird. Im PubSub-Thema werden Events oder Metriken (oder Event-Batches) gesammelt, deren Übertragung an Splunk HEC fehlschlug. Übertragungsfehler werden meist durch Verbindungsprobleme zwischen GCP und dem Load Balancer bzw. Indexern verursacht. Tritt bei einer der Funktionen ein Fehler auf, sendet sie das Event an ein PubSub-Thema namens „Retry“. Dieses Thema kann für mehrere Funktionen gemeinsam verwendet werden (n:1 im Gegensatz zu 1:1). Ein Cloud-Zeitplan löst die Retry-Funktion nach einem festgelegten Zeitraum aus (definiert von einem Cron-Zeitplan). Die Funktion ruft die Events oder Metriken aus dem Thema ab und sendet sie an die ursprüngliche Kombination aus HEC-URL und Thema. Schlägt die Übertragung während des Retry-Vorgangs fehl, verbleiben die Events bzw. Metriken im Thema, bis beim nächsten geplanten Funktionsaufruf ein erneuter Übertragungsversuch unternommen wird.
Der Inhalt der Bibliothek steht hier zum Download bereit: https://github.com/splunk/splunk-gcp-functions
Das Repository enthält Dokumentation und eine Reihe von Beispielen zum Einrichten der Funktionen. Die Beispiele umfassen Skripte, die das Repository klonen und die Funktionen (mit gcloud CLI-Befehlen) in einer einfachen Beispielkonfiguration installieren bzw. einrichten. Die Beispielskripte können in euren Cloud-Automatisierungs- bzw. Orchestrierungs-Builds wiederverwendet werden, um die Bereitstellung der Funktionen in euren GCP-Projekten zu automatisieren.
Danke fürs Lesen!
Paul
Die Splunk-Plattform beseitigt die Hürden zwischen Daten und Handlungen, damit Observability-, IT- und Security-Teams in ihren Unternehmen für Sicherheit, Resilienz und Innovation sorgen können.
Splunk wurde 2003 gegründet und ist ein globales Unternehmen – mit mehr als 7.500 Mitarbeitern, derzeit über 1.020 Patenten und einer Verfügbarkeit in 21 Regionen rund um den Globus. Mit seiner offenen, erweiterbaren Datenplattform, die die gemeinsame Nutzung von Daten in beliebigen Umgebungen unterstützt, bietet Splunk allen Teams im Unternehmen für jede Interaktion und jeden Geschäftsprozess End-to-End-Transparenz mit Kontext. Bauen auch Sie eine starke Datenbasis auf – mit Splunk.