Kürzlich bin ich auf einen Splunk Use Case gestoßen, bei dem jemand GitHub-Daten direkt in Splunk Cloud integrieren wollte. Bei den Daten handelte es sich um Audit-Daten zum Repository selbst. Damit es keine Mißverständnisse gibt: Es ging nicht darum, eine .csv-Datei zu integrieren, die in einem GitHub-Repository gehostet wurde, sondern vielmehr um Fragen wie: „Wie kann ich ein Diagramm von der Anzahl der Push-Vorgänge innerhalb der Woche erstellen?“ oder „Wie kann ich in Splunk sehen, wie viele Open Issues ich in meinem Repository habe?“
Die größte Herausforderung (aber auch ein großer Reiz) bestand bei diesem speziellen Use Case darin, dass der Kunde mit Splunk Cloud arbeitete und keinerlei Interesse an irgendeiner lokalen Architektur hatte. Bei diesem Kunden wurde ganz auf die Cloud gesetzt. Aber welche Lösung gibt es nun in einer solchen Situation? Und: Ist es vernünftig, zu 100% auf die Cloud zu setzen? Meiner Meinung nach schon.
Viele würden dieses Problem vielleicht mit so etwas wie dem GitHub Add-on für Splunk und einem Splunk Heavy Forwarder angehen. Das ist sicherlich kein falscher Ansatz für das Erfassen dieser Daten. Er funktioniert allerdings nur, wenn Architektur vorhanden ist, auf der Splunk ausgeführt werden kann. Natürlich ist EC2 im Hinblick auf Cloud-Technologie eine Option. Meiner Meinung nach lässt sich dasselbe Ergebnis jedoch auch ganz schnell mit einer schlankeren, serverlosen Funktion erreichen. Diese möchte ich euch hier vorstellen.
Zunächst einmal gebt ihr die serverlose AWS Webhook-to-Splunk-HTTP-Event-Collector Funktion ein. Dies ist eine ziemlich simple Blaupause einer Funktion, die ich erstellt habe und die ihr heute mit einem Mausklick aufrufen könnt. Ziel ist es, eine schlanke AWS Lambda-Funktion bereitzustellen, die als eine Art Übersetzer zwischen Webhooks und dem Splunk HTTP Event Collector fungiert.
Wie gesagt ist das Bereitstellen der serverlosen Funktion denkbar einfach. Zunächst einmal lokalisiert ihr die serverlose Funktion im AWS Serverless Repository. Ihr könnt der Funktion einen beliebigen Namen geben. In meinem Fall ging es darum, GitHub-Daten aus meinem Repository corona_virus zu erfassen. Daher habe ich sie entsprechend benannt, wie ihr unten sehen könnt.
Die Einrichtung eures eigenen privaten Endpunkts ist mit nur einem Mausklick erledigt.
Wenn ihr GitHub-Webhooks verwenden möchtet, um Daten an Splunk zu senden, müsst ihr ein Splunk HTTP Event Collector Token erstellen. Sämtliche Informationen zur Einrichtung eines solchen Token findet ihr auf Splunk Docs. Ein Token sollte in der Regel in weniger als fünf Minuten eingerichtet sein. Nach Abschluss dieses Schritts müssten euch folgende Informationen vorliegen:
Im folgenden Beispiel-GIF könnt ihr sehen, dass ich nach der vollständigen Bereitstellung meiner serverlosen Funktion auf die Schaltfläche „Test app“ klicken kann, um eine URL für meinen Endpunkt abzurufen, der einen Teil der Webhook-URL bilden wird. Diese URL kann in Kombination mit den Informationen aus Schritt 3 verwendet werden (dokumentiert in der README-Datei des Serverless Repository).
https:///Prod/webhook-to-hec?url=euer.server.com&port=8088&http_method=https&token=223342-23242-232324
Zu guter Letzt verbinden wir GitHub mit der eben erstellten serverlosen Funktion. Dazu ruft ihr einfach das GitHub-Repository eurer Wahl auf und geht dann auf Settings > Webhooks. Dort habt ihr die Möglichkeit „Add Webhook“ auszuwählen und sämtliche der folgenden Einstellungen einzugeben:
Schließlich müsst ihr noch auf "Add Webhook" klicken, um die Einstellungen zu bestätigen. Im folgenden Beispiel-GIF könnt ihr euch den Vorgang anschauen. Wenn anschließend neben der URL ein grünes Häkchen angezeigt wird, war der Prozess erfolgreich.
So einfach kann es sein, Daten von einer Enterprise-Cloud-Lösung in eine andere zu übertragen. So...und jetzt gehe ich mich mal besser um diese Open Issues kümmern.
Wenn ihr Fragen oder Anmerkungen habt, könnt ihr mich jederzeit kontaktieren. Ihr könnt diesen Code auch gerne einsetzen und nach euren Vorstellungen modifizieren. Er ist eigentlich dafür gedacht, den Benutzern bei einem bestimmten Use Case einen schnellen Einstieg zu ermöglichen, wird jedoch in Zukunft hoffentlich an viele weitere Use Cases angepasst werden.
*Dieser Artikel wurde aus dem Englischen übersetzt und editiert. Den Originalblogpost findet ihr hier: Getting Github Data with Webhooks.
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.