Und Einbindung der Twitter REST-API
Überall werden Daten ausgetauscht: Server, Computer, Apps, Programme, Webseiten. Die Verbindungen werden stets mehr und der Datenberg wächst mit zunehmender Digitalisierung weiter an. Splunk ist ein Tool, um diese Datenströme zwischen Geräten genauer zu analysieren und zu visualisieren. Das Ziel dieser Visualisierungen ist es, Zusammenhänge zu finden und Schlussfolgerungen ziehen zu können.
Splunk kann dabei an eine Vielzahl von Datenquellen „angeschlossen“ werden. So können nicht nur Daten in Form von xml- oder csv-Dateien eingelesen werden, sondern beispielsweise in Echtzeit sog. REST-API’s (REpresentational State Transfer) angesprochen werden. So lassen sich zum Beispiel Tweets zu einem bestimmten Thema in Relation zur Zeit analysieren.
Wie nutze ich Splunk?
Zunächst musst Du Dir einen Account auf Splunk.com einrichten, und dir die Software herunterladen. Ich empfehle zunächst Die kostenlose Version von Splunk enterprise zu nutzen, da sie kostenlos nutzbar ist, und umfangreiche Funktionen bietet.
Splunk steht für Windows, OS X und Linux zum Download bereit.
Während die Versionen für OS X und Windows mit wenigen Klicks direkt installiert sind, kannst Du die Linux-Version über die Konsole installieren (hier ein Beispiel für Ubuntu/Debian-Derivate):
1) .deb-Paket von der Splunk-Webseite herunterladen
2) in das Verzeichnis navigieren, in dem der Download liegt
3) Mit „sudo dpkg –i splunk-paket.deb“ installieren
4) Splunk wird nun in das Verzeichnis „/opt/splunk/“ installiert
5) Splunk starten mittels: „sudo /opt/splunk/bin/splunk start“
6) Das Splunk-Webinterface ist nun auf dem localhost über Port 8000 aufrufbar
Erste Schritte
Im Webinterface kannst Du nun Splunk konfigurieren, Datenquellen hinzufügen und Dein eigenes Dashboard erstellen.
REST-Plugin installieren
Splunk kann mit einer Vielzahl an Datenquellen umgehen, beispielsweise .CSV-Dateien, Datenstreams, oder z.B. REST-API’s.
Wir werden jetzt einmal eine Datenquelle mit REST-API, nämlich die Twitter REST-API einbinden. Weil das einfach geht und vor allem sehr spannend ist, da man direkt in Echtzeit Tweets zu verschiedenen Themen erfassen und analysieren kann.
Damit Splunk die REST-API ansprechen kann, ist es zuerst nötig, ein Splunk-Plugin zu installieren, dafür klickst Du einfach auf das große “+” unter “Apps” auf der linken Seite.
Dann suchst Du einfach nach “REST” und findest das Plugin “REST API Modular Input”. Dieses Plugin installierst Du.
Nach der Installation startest Du Splunk einmal neu.
Twitter vorbereiten
Wir möchten in diesem Tutorial auf die Twitter REST API zugreifen. Dafür müssen wir zunächst unseren Twitter-Account vorbereiten (ein Twitter-Account ist Voraussetzung, um auf die Twitter REST API zugreifen zu können).
Wir gehen jetzt auf die folgendende URL (https://apps.twitter.com/) und klicken dort auf “Create New App”. Du musst nun noch schnell einen namen, eine Description und eine URL zu der App angeben (bei der URL kannst Du Deine private URL verwenden). Eine Callback-URL ist nicht notwendig.
Eigener Screenshot von apps.twitter.com
Mit einem Klick auf “Weiter” wird Deine App erstellt.
Jetzt müssen wir noch die zur Kommunikation notwendigen OAuth-keys generieren. Dafür klickst Du auf den Reiter “Keys and Access Tokens”, scrollst bis zum Bereich “Your Access Token” und klickst auf “Create My access Token”.
Danach noch ein Klick ganz oben auf der Seite auf “Test OAuth” und fertig.
Twitter REST API als Datenquelle einrichten
Zum Glück haben wir eben schon das REST-Plugin für Splunk installiert, sonst könnten wir mit unserer tollen Twitter-App jetzt gar nichts anfangen 😉
Gehe nun wieder auf Deine lokale Splunk Startseite und klicke auf “Add Data” und danach auf “Monitor”. Auf der nun ladenden Seite wählst Du “REST” aus.
Eigener Screenshot aus Splunk
Hier müssen wir nun die soeben bei Twitter erstellten Daten und Keys eintragen:
//Hier gibst Du den Namen für die Datenquelle an, die wir gerade erstellen
REST API Input Name: Ein beliebiger Name für die API
Endpoint URL: https://stream.twitter.com/1.1/statuses/filter.json
HTTP Method: GET
//Für die Authentifizierung mit Twitter nutzen wir OAuth
Authentification Type: oauth1
OAUTH1 Client Key = Consumer Key aus der erstellten Twitter App
OAUTH1 Client Secret = Consumer Secret aus der erstellten Twitter App
Bei Access Token, Access Token Secret gibst Du die soeben bei Twitter erzeugten Tokens ein.
//Hier geben wir die Argumente ein, die beim API-Aufruf an die URL angehängt werden sollen. Dieses Beispiel erfasst z.B. alle Tweets mit den Hashtags #cebit und #splunk
URL Arguments: track=#cebit,#splunk
Response Type: json
Streaming Request: checkbox anhaken
//Das Timeout gibt an, nach wievielen Sekunden ohne Ergebnis die Abfrage beendet wird. Wird nun also innerhalb von 86400 Sekunden kein Tweet mit den oben eingetragenen Hashtags abgesetzt, wird die Abfrage beendet.
Request Timeout: 86400
//Der Delimeter ist wichtig, wenn wir an die URL noch weitere Parametertypen anhängen möchten.
Delimeter: +
Set Sourcetype: Manual
Sourcetype: Name für den Sourcetype
Eigener Screenshot aus Splunk
Mit einem Klick auf “Next” wird die Datenquelle hinzugefügt und sammelt ab sofort Ergebnisse.
Du kannst jetzt auch direkt die Datenquelle (in diesem Fall also die eingehenden Tweets) in Echtzeit verfolgen und durchsuchen und/oder Dir Dein eigenes Dashboard erstellen.
Viel Spaß!