Deutsch:
Kernthema dieser Diplomarbeit ist die Überwachung von verschiedensten Services wie Datenbanken
im Internet-Dienstleistungs-Sektor.
Nachdem die Anforderungen an die Serverinfrastruktur stetig steigen, ist die Überwachung der
Infrastruktur, welche als Monitoring bezeichnet wird, von großer Bedeutung. Aus diesem Grund
besteht eine steigende Nachfrage nach standardisierten Softwaresensoren, um dieses Monitoring
umzusetzen und wichtige Metriken zu sammeln. Weiters ist es Teil der Diplomarbeit, einen Agent
zu entwickeln, welcher die Konfiguration der Netzwerküberwachungssoftware PRTG auf Basis der
Daten aus der Anexia Engine, einer Cloud-Management-Plattform, automatisch übernimmt. Um den
gesamten Softwarelifecycle zu automatisieren und eine hohe Codequalität bereitstellen zu können,
wird eine CI/CD-Pipeline entwickelt, welche die Schritte vom Testen bis zur Auslieferung der
Software automatisiert.
English: The core topic of this thesis is the monitoring of various services such as databases. Since the requirements for server infrastructure are constantly increasing, the supervision of the infrastructure, which is called monitoring, is of great importance. For this reason, there is an increasing demand for standardized software sensors to implement this monitoring and to collect important metrics. Furthermore, it is part of the thesis to develop an agent that automatically handles the configuration of the network monitoring software PRTG based on data from the Anexia Engine, a cloud management platform. In order to automate the whole software lifecycle and to provide a high code quality, a CI/CD pipeline is developed, which automates the steps from testing to the delivery of the software.
Das Systemstrukturdiagramm soll die einzelnen Bestandteile und deren Zusammenhang beschreiben. Weiters wird verdeutlich, welches Projektmitglied an welchem Bereich arbeitet.
Der folgende Abschnitt soll die im Projekt verwendeten Technologien erläutern und genauere Einblicke in die Einzelthemen liefern.
PRTG bietet bereits ohne weitere Konfiguration die Möglichkeit manche Netzwerkparameter zu erfassen. Um individuelle Dienste zu überwachen ist es möglich, selbstentwickelte Sensoren bereitzustellen. Die Vorraussetzung für diese Sensoren ist, dass diese unter Windows ausführbar sind und die erfassten Metriken in einem vordefinierten Format ausgeben müssen. Zu diesem Zweck werden Sensoren entwickelt, um beispielsweise den Datenbank-Service MongoDB zu überwachen. PRTG bietet danach beispielsweise die Möglichkeit, die erfassten Daten zu visualisieren oder beim Erreichen von Schwellwerten, wie zu hohen Auslastungen, Nachrichten an System-Administratoren oder Kunden zu versenden.
Die Anexia Engine, die Cloud-Management-Plattform der Anexia, bietet die Möglichkeit, verschiedenste Ressourcen, wie virtuelle Server, zu verwalten. Um die Konfiguration des Monitorings der Serverinfrastruktur zu vereinfachen, wird ein Agent entwickelt, welcher diese Konfiguration automatisiert, indem dieser die Daten der Anexia Engine abfragt und auf Basis dieser Daten die Konfiguration von PRTG validiert bzw. bei Änderungen updatet.
Um eine hohe Codequalität zu erreichen werden verschiedene Möglichkeiten aus dem Bereich des Softwaretestings angewandt. Um standardisierten Code bereitzustellen, werden Tools zur statischen Codeanalyse und Formatierung verwendet. Weiters werden Softwaretests aus den Kategorien Unit-, Integration- und System-Tests verwendet. Um diese Schritte, sowie die Software-Verteilung zu automatisieren, wird eine auf Gitlab basierende CI/CD-Pipeline entwickelt.
Für die Entwicklung der Sensorik wird die Programmiersprache Golang verwendet, um eine betriebssystemunahängige, hochperformante Überwachungsmöglichkeit zu bieten. Für den SLA-Agent wird ein .NET Service entwickelt, welcher mit dem PRTG-Netzwerk-Monitor auf einem System ausgeliefert werden kann. Um den Softwarelifecycle zu automatisieren wird eine auf Gitlab CI und Docker basierende CI/CD-Pipeline entwickelt.