Open Source ist ein Werkzeug
Bei der Verwaltung einer großen Computerinfrastruktur ist es von größter Bedeutung zu verstehen, was in ihr passiert. Wenn Ihre Infrastruktur skaliert, wird dies immer schwieriger. Obwohl dies ein schwieriges Problem sein kann, gibt es glücklicherweise ein leistungsstarkes Werkzeug, um es zu lösen: Open-Source-Software.
Wenn ich Open-Source-Software als Werkzeug beschreibe, beziehe ich mich auf den Prozess von Open Source selbst, nicht auf ein bestimmtes Stück Open-Source-Software. Jedes Open-Source-Tool mit einer Historie in einem bestimmten Problemraum kann auf einer höheren Ebene als eine Sammlung gelöster Probleme innerhalb dieses Raums betrachtet werden. Dies ist eine Perspektive auf Open-Source-Software, die ich von Pieter Hintjens während der Arbeit an verschiedenen ZeroMQ-Projekten gewonnen habe, und ich finde sie ein sehr wertvolles Framing dessen, was Open Source bietet.
Die Gemeinschaft, die sich im Laufe der Zeit um eine bestimmte erfolgreiche Software bildet, entwickelt sich zu einer Gemeinschaft von Experten für die Probleme, die Software löst. Ein beitragendes Mitglied solcher Gemeinschaften zu sein bringt große Vorteile – nicht nur bessere Tools, sondern auch starke und dauerhafte Beziehungen zu anderen Menschen, die an den gleichen Themen arbeiten.
Ein Beispiel aus der realen Welt
Als konkretes Beispiel versuchte das Metrik-Team von DO vor kurzem herauszufinden, wie man Protokolle in Echtzeit von Remote-Servern so bequem wie lokal abfangen kann. Um dieses Problem zu lösen, haben wir uns zuerst Rsyslog angesehen, einen Protokollierungs-Daemon, der bei vielen Linux-Distributionen üblich ist.
Im Kern bietet Rsyslog die Möglichkeit, Protokollnachrichten zu empfangen, zu analysieren, zu filtern und weiterzuleiten. In den elf Jahren seines Lebens hat es sich zu einer Sammlung von Lösungen für eine Vielzahl von Problemen entwickelt, z Protokolle in Datenbanken zur Indizierung und Speicherung, wie Protokolle in ein gemeinsames strukturiertes Format umgewandelt werden und vieles mehr.
Unser Problem fiel in einen angemessenen Rahmen für Rsyslog, aber wir konnten es damit allein nicht ganz lösen. Unsere Lösung bestand darin, Rsyslog mit CZMQ zu integrieren, einer High-Level-C-Bindung für ZeroMQ. CZMQ bietet unter anderem zertifikatbasierte Authentifizierung, libsodium-basierte Verschlüsselung und Unterstützung für Publisher-gefilterte Publish-Subscribe-Busse. Dies macht es zu einer natürlichen Lösung für unser spezielles Problem, wenn es mit dem Parser und den Nachrichtenvorlagen von Rsyslog kombiniert wird.