Zurück

Warum Splunk Umgebungen jeder Grösse mit Ansible automatisiert werden sollten

22. März 2021
Warum Splunk Umgebungen jeder Grösse mit Ansible automatisiert werden sollten

Häufig treffen wir gerade zu Beginn auf Aussagen wie „Unsere Umgebung ist ja überschaubar …“, „Eine Installation macht man ja nur einmal …“ oder „Upgrades kommen ja nicht so häufig vor …“. All diese Statements werden als Argumente aufgeführt, dass eine Automatisierung und die damit verbundenen, initialen Aufwände nicht gerechtfertigt sind. Jedoch werden hierbei Themen wie Hardware Lifecycle, Security Patching, Best Practices, Wachstum der Plattform, etc. nicht berücksichtigt, welche einen enormen Einfluss darauf haben wie häufig eine Data Analytics Plattform wie Splunk erweitert, aktualisiert und/oder umkonfiguriert wird.

Ohne eine effiziente und verlässliche Automatisierung übersteigen hier die manuellen Betriebsaufwände schnell den initialen Aufwand. Darüber hinaus, grade bei nicht so stark wachsenden Umgebungen, ist es essenziell Systeme immer nach einem definierten Standard aufzusetzen und zu konfigurieren. “Wie musste gleich noch ein Master Node konfiguriert werden?” – Diese und andere Fragen können mit einer sauberen Standardisierung adressiert werden und sollte diese auch gleichzeitig dokumentieren.

Eine langjährige erprobte, stabile und verlässliche Lösung zur Automatisierung stellt “Playbooks-On-Rails for Splunk” (kurz: PORS) von secure-diversITy dar, welche auf Github unter der LGPL-3.0 veröffentlicht und gepflegt wird. Mit PORS werden Playbooks bereitgestellt, welche tägliche und wiederkehrende Arbeiten im Splunk Betrieb erleichtern und automatisieren auf Basis der Open Source Software Ansible.

PORS ermöglicht einem Splunk Admin sowohl die Provisionierung neuer Betriebssysteme auf verschiedenen Plattformen (derzeit VMware vSphere, Proxmox VE und Google Cloud Platform) als auch (unabhängig ob Hardware oder VM) eine automatisierte Installation, Konfiguration und Upgrade aller Splunk Komponenten (Standalone Search Head, Search Head Cluster Member, Master Node, Indexer Cluster Peer, etc.). Hierbei verfolgt PORS den IaC-Ansatz (Infrastructure as Code) und dokumentiert provisionierte System-Konfigurationen nicht nur, sondern ermöglicht es auch eine exakte Kopie des virtualisierten Systems erneut aufzusetzen. So können sowohl komplett neue Umgebungen aufgebaut als auch bereits bestehende Umgebungen erweitert werden.

Durch die zentrale Administration und die bestehende Integration in ein Git Versionskontrollsystem wird ein hoher Grad an Standardisierung ermöglicht, da die Anwendung neuer Konfigurationen mit wenigen Befehlen auf allen betroffenen Splunk Komponenten ausgerollt werden kann. Gerade Konfigurationsdateien im Ordner system/local stellen hier auf Grund der höchsten Präzedenz häufig ein Problem dar. Auch diese Dateien können mittels PORS zentral verwaltet werden.

Die Installation oder das Update einer App kann viel Zeit (und Nerven) in Anspruch nehmen, da die App auf mehreren Systemen (Deployer, Cluster Master, Deploymentserver) verteilt werden muss, bevor dann die Splunk internen Mechanismen verwendet werden können. PORS hingegen kann alle Apps zentral verwalten und deployen und nutzt dabei die Standard Splunk Mechanismen um höchstmögliche Kompatibilität zu erreichen und zu halten. Über eine eigene API kann PORS sogar das App deployment vollständig automatisieren (z.B. wenn ein Merge Request in einen bestimmten git branch erfolgt).

 

 

Abgerundet wird das ganze durch eine auf ncurses basierende Anwenderoberfläche und eine Integration in Ansible Vault. Dies ermöglicht eine einfache Bedienung und sicheren Umgang mit sensitiven Informationen wie Passwörtern und Secrets. Selbst neue Produkte und Lösungen wie Cribl Logstream, eine Streamprocessing Observability Pipeline, haben bereits Einzug erhalten und können mit Ansible PORS installiert und aktualisiert werden. Der geringe initiale Aufwand von wenigen Tagen eine Lösung wie PORS zu etablieren, rechnet sich auf Grund der vielen Vorteile und der damit einhergehenden Zeitersparnis meist bereits nach wenigen Monaten.

https://github.com/secure-diversITy/ansible_pors