MONQ - Monitoring und AIOps ursprünglich aus Russland



In unserem Blog haben wir viel über ausländische Lösungen für die Überwachung und Prüfung gesprochen, und jetzt ist es Zeit für die Entwicklung im Inland. MONQ ist ein Umbrella-System mit Anschlüssen für gängige Überwachungssysteme, Ressourcen-Service-Modelle, Datenanalyse, hohes AI-Potenzial und ein spezielles Lizenzmodell. Wir erhielten eine Distribution zum Anschauen und beschlossen zu teilen, wie es dort unter der Haube ist und ob alles so nanotechnologisch ist, wie der Verkäufer sagt (das Projekt ist schließlich ein Bewohner von Skolkovo). Die Ehre des Testens wurde mir zuteil und ich werde Ihnen etwas über die Installation, die Funktionen des Systems und die Lizenzierung erzählen. Ich bitte um katze

Einleitung


Im Jahr 2018 führte Gartner einen neuen Begriff ein, um zu beschreiben, wie künstliche Intelligenz (KI) auf den IT-Support angewendet werden kann. "AIOps (Künstliche Intelligenz für den IT-Betrieb) verspricht, den IT-Diensten Zeit und Mühe zu sparen, um verschiedene Probleme in der immer komplexer werdenden Umgebung zu identifizieren, in der sie arbeiten müssen." Gartner schlägt vor, dass AI verwendet wird, um Probleme automatisch zu identifizieren und zu beheben. 2019 scheint dies ein Märchen zu sein, und ich habe noch keine wirklichen Fälle von vollautomatischer IT-Unterstützung gesehen.

Ich habe die MONQ-Plattform von MONQ Digital Lab erhalten . Der Entwickler selbst positioniert es als AIOps-Lösung. Aber ich würde es ein System für die Überwachung von Umbrüchen, die Verwaltung von Ereignissen und das Starten von Automatisierungsskripten nennen. Es ist noch nicht viel Intelligenz darin.

Im Dienst unterstütze ich mehr als 100 verschiedene Systeme, Server, Dienste, Dienste. Meine gelegentlichen Überwachungstools sind Zabbix und Prometheus, as Sie decken die meisten Aufgaben der Leistungsüberwachung ab. Einige Systeme in der Überwachungsschleife reagieren manchmal nicht mehr. Sie werden durch einen Neustart des Servers behandelt (es gibt keine andere Möglichkeit, niemand wird den Kurvencode neu schreiben). Ich wollte immer versuchen, einen Fall zu implementieren, in dem das Überwachungssystem ein Problem aus zwei unabhängigen Quellen erkennt und den Server selbst neu startet. Für solche Aufgaben werden in der Regel Umbrella-Systeme mit Skriptsubsystemen verwendet, wie sie heute als RPA (Robotic Process Automation) bezeichnet werden. Ich kenne keine freien Systeme, aber kommerzielle sind wie eine gusseiserne Brücke.

Heute werden wir versuchen, MONQ zusammen zu installieren, Zabbix und Prometheus damit zu verbinden, Warnungen zu konfigurieren und ein Server-Neustartskript zu schreiben. Damit Sie morgen ruhig Ihre Füße auf den Tisch werfen können, können Sie nur gelegentlich beobachten, wie eine Maschine mit einer anderen behandelt und Kaffee mit einem Croissant getrunken wird.

Lösungsarchitektur



MONQ-Architektur

Das System wird in Docker-Containern im Kubernetes-Cluster bereitgestellt. Microservice-Sets werden zu Funktionsblöcken zusammengefasst. Alle Daten von Benutzern, technische Informationen, Ereignisse, Protokolle nach der Anreicherung mit verschiedenen nützlichen Tags fliegen in den Datensee auf ClickHouse, dann erfolgt der Prozess der Berechnung und Analyse. Muster, wichtige Ereignisse werden erkannt, zusammengesetzte Trigger werden gebildet und verschiedene wichtige Prozesse können für wichtige Ereignisse gestartet werden: von Warnungen und Vorfällen bis hin zu komplexen Benutzerskripten.

Auspacken


Youtube ist voll von Videos, die etwas auspacken. Jetzt werde ich das Gleiche versuchen, aber in einem Text-Bild-Format und nicht mit einem physischen Produkt, sondern mit einer Distribution. Vorbereiten - Installieren Sie zunächst den Kubernetes-Cluster.

Hier erfahren Sie beispielsweise, wie Sie einen Kubernetes-Cluster einrichten . Ich werde Sie über die Konfigurationsfunktionen informieren:

  • coredns wird als Cluster-DNS verwendet.
  • Nginx-Ingress-Controller;
  • RBAC-Autorisierung in einem Cluster;
  • Shared Storage (pv / pvc) wird verwendet.

Für jedes Projekt gibt der Anbieter die technischen Anforderungen an die Hardware an. Die Mindestkonfiguration für die Installation beträgt 4 Server. Dies reicht aus, um einen Piloten durchzuführen, der in ein Überwachungssystem integriert werden muss. Für meine Zwecke, die Überprüfung der Funktionalität des Systems, wird diese Option auch funktionieren.

Wie mir gesagt wurde, skaliert das System unter Kampfbedingungen abhängig von der Last und der erforderlichen Fehlertoleranz auf die Kundenanforderungen.

Meine Konfiguration für das System mindestens:
ServerCPU-KerneSpeicher gbSpeicher, GB
Kubernetes Meister1250
kubernetes worker 148100
kubernetes worker 248100
DB-Server47300
Total1325550

Nachdem die Plattform fertig ist, starte ich das Playbook des Anbieters, um die Basisinfrastruktur zu installieren und das System zu starten. Playbook führt folgende Aktionen aus:

  • installiert notwendige Pakete auf Servern;
  • startet kubernetes;
  • installiert und konfiguriert Anwendungen auf dem Datenbankserver. Darunter: Clickhouse, RabbitMQ, PostgreSQL, ArangoDB, Redis und all dies in Docker-Containern;
  • installiert Consul für die zentrale Speicherung von Microservice-Konfigurationen;
  • fügt Endpunkt- und Service-Ingress-Entitäten für DBMS- und Infrastrukturteile des Systems hinzu;
  • generiert eine Tabelle mit Berechtigungsdaten.

Um die Microservice-Anwendung nicht manuell zu starten, hat der Anbieter eine integrierte Microservice-Registrierung vorbereitet, in der Microservices hinzugefügt und aktualisiert, das DBMS konfiguriert und die dienstübergreifenden Berechtigungen erteilt werden.

Das Starten des Systems führt zu den folgenden Aktionen:

  • Das Systeminstallationsprogramm wird mit einer vorbereiteten Konfigurationsdatei gestartet (sie enthält Berechtigungsdaten in kubernetes, DBMS und Consul, den Domänennamen des Systems).
  • Das Installationsprogramm startet die Microservice-Registrierung.
  • Unter Verwendung der Registrierung werden Mikrodienste nacheinander gestartet. Die Registrierung generiert die Konfiguration von Mikrodiensten in Consul, Entities Deployment, Service und Ingress in Kubernetes.
  • beim start lädt jeder microservice ein schema für seine eigene datenbank.

Das Ergebnis des von mir gestarteten Installationsprogramms ist in der folgenden Abbildung dargestellt.


Kubernetes Dashboard: Das Ergebnis des Installers

Nach Abschluss des Installationsvorgangs ist MONQ über den in der Installationskonfigurationsdatei angegebenen Domänennamen verfügbar. Und hier ist er.


MONQ Login-Schnittstelle

Anpassung


Bei der Ersteinrichtung des Systems ist bereits ein Benutzer mit Vollzugriffsrechten vorhanden. Ich logge mich ein und schaue, wozu MONQ fähig ist.

Benutzer im System anlegen und Arbeitsgruppen einrichten


Es gibt zwei Benutzerberechtigungsmethoden im System:

  • Active Directory
  • Eingebaut.

Für die erste Bekanntschaft ist eine eingebaute Berechtigung geeignet.


Voreingestellter Systembenutzer

Zugriffsrechte auf die Objekte und Ressourcen des Systems (Integration, Konfigurationseinheiten (KE), synthetische Trigger, Skripte usw.) werden auf Ebene der Arbeitsgruppen (WGs) vergeben. Jede WG kann Eigentümer des Objekts sein oder Lese- oder Schreibrechte besitzen. Es gibt verschiedene Zugriffsebenen:

  • Mitglieder der Arbeitsgruppe mit der Berechtigungsstufe "Eigentümer" können beliebige Aktionen mit dem Objekt ausführen (Arbeitsgruppe mit dieser Berechtigungsstufe, das Objekt kann nur eine haben).
  • Eine Arbeitsgruppe mit dem Recht zum Aufzeichnen kann das Objekt verwalten, es jedoch nicht löschen und Rechte daran an andere Arbeitsgruppen verteilen.
  • Eine schreibgeschützte Arbeitsgruppe kann Informationen zu einem Objekt anzeigen.
  • Eine AG ohne Zugriffsrecht auf ein Objekt ist sich seiner Existenz überhaupt nicht bewusst.

Standardmäßig wurde das System WP "Administrators of the Space" erstellt, das gerade meinen Benutzer abgerechnet hat. Diese Arbeitsgruppe verfügt über die vollständigen Rechte für alle Objekte, die in dieser Entität erstellt werden. Für Kollegen, die auch einen Blick auf das System werfen möchten, wurde ein zusätzliches Super Administrators WP erstellt.


Arbeitsgruppen, Rollen und Teilnehmer

Die Rechte bestimmter Benutzer werden im Rahmen der AG in Form von Rollen konfiguriert.

PCM-Setup


Es geht um das Ressourcen-Service-Modell. Dies ist ein logisches Servicemodell, das die Zusammensetzung und die Beziehungen von KEs zu KE-Ressourcen beschreibt, die zusammen den Service auf einer vereinbarten Ebene bereitstellen. PCM wird benötigt, um Informationen über Objekte, Entitäten und die Beziehungen zwischen diesen zu speichern. PCM in MONQ ist ein Netzwerkdiagramm mit Informationen zu KEs und ihren Beziehungen.

Der Hauptunterschied und meiner Meinung nach der Vorteil der Implementierung von PCM im System liegt in der Fokussierung auf Business Services. Auf diese Weise wird die vollständige Struktur des Dienstes oder der Dienste dargestellt, die der Endbenutzer verwendet, und nicht das Infrastruktursystem, auf dem der Dienst oder die Dienste basieren.

Zu Testzwecken habe ich ein vereinfachtes PCM-Benutzerkonto erstellt.


PCM "Persönliches Benutzerkonto"

Nach dem Einrichten des Monitorings werde ich zeigen, wie es transformiert wird.

Zusammensetzung von PCM:

  • Die virtuelle Maschine, auf der das Informationssystem (IS) SRVe3_VM15 ausgeführt wird.
  • STR: Nginx_LK, PHP-fpm_LK, MySQL_LK;
  • Unser Service (IS) - LK (persönliches Konto);
  • IP-Module: Autorisierung, Suche, Dokumentenverwaltung, Zahlung. In der Tat gibt es mehr von ihnen, aber bisher nur diese erstellt.

Integrations-Setup


MONQ ermöglicht den Anschluss verschiedener Systemtypen:

  • Überwachungssysteme (Zabbix, Prometheus, SCOM und andere);
  • Holzsammelsysteme (Splunk, Logstash und andere);
  • Autotest-Startsysteme (Jenkins, Gitlab CI und andere)
  • Service-Desks, Task-Tracker (Microfocus SM, Jira, Redmine, Naumen und andere).

Ich habe Überwachungssysteme Zabbix, Prometheus angeschlossen. Diese Connectors werden im Abschnitt Integration konfiguriert.


Integration mit Überwachungssystemen

Metriken und Ereignisse kommen von Zabbix und Prometheus zu MONQ.

Anbindung der synthetischen Überwachung (automatisierte Funktionsprüfung)


In MONQ können Sie auch Funktionstests für Anwendungen konfigurieren. In meinem Beispiel ist dies ein persönlicher Account. Ich habe mehrere Builds von Autotests von Jenkins verbunden.


Funktionsüberwachungsmodul „FMON-Projekte“

Die Funktionsüberwachung in MONQ ist ein separates Modul mit einem eigenen Bildschirm „Funktionsprüfung“. Und hier ist ein Beispiel für einen Bericht über die Durchführung eines meiner Tests:


FMON User Authorization Project, Assembly fehlgeschlagen

Konfigurieren Sie die Überwachung und Warnungen


Mit Hilfe von Standardvorlagen (mehrere vorgefertigte Vorlagen für synthetische Trigger für jede Integration sind sofort verfügbar) erstellte er synthetische Trigger für primäre Ereignisse von Zabbix und Prometheus. Synthetische Trigger sind Trigger, die innerhalb der Plattform erstellt wurden und mit Primärdaten aus verschiedenen Quellen arbeiten. Als nächstes habe ich die resultierenden Trigger mit den PCM-Elementen (KE) verknüpft.


Abschnitt "Synthetische Trigger"

Und es sieht aus wie ein synthetischer Trigger, der von der Vorlage erstellt wurde.


Ein Beispiel für einen synthetischen Trigger, der mit der Vorlage für Prometheus erstellt wurde

Im Abschnitt "Meine Skripte" gibt es beispielsweise bereits ein Skript, mit dem der Server neu gestartet wird. Das Skript selbst ist in Lua geschrieben und kann geändert werden. Darauf basierend habe ich mein eigenes Skript erstellt, um den Dienst neu zu starten.


Dienstneustartskript auf dem Server

Zusätzlich zur üblichen Integration in den Mail-Client können Sie das Versenden von Benachrichtigungen an verschiedene Instant Messenger konfigurieren. In diesem Fall können Sie einen Chat-Bot einrichten, der an eine bestimmte Gruppe schreibt, beispielsweise an den Administrator, der in einem Telegramm chattet.

Um Integrationen mit Instant Messenger verwenden zu können, müssen Sie den Zugriff auf die Microsoft Azure-Cloud öffnen.

Fortgeschrittene Benutzer können ihre eigenen Benachrichtigungs-Plugins auf Lua schreiben. Unten ist ein Beispiel für mein Skript zum Senden von SMS-Benachrichtigungen.


SMS-Sende-Plugin für die MONQ-Plattform

Visualisierung überwachen


Nach der Abstimmung hat sich mein PCM ein wenig geändert, drei weitere Systeme wurden für die allgemeine Überwachung eingerichtet, deren Status die Leistung des IS „Personal User Account“ bestimmt. Es wurden auch mehrere Dienste hinzugefügt.


PCM "Benutzerkonto" mit angehängten Triggern

Allgemeine Informationen zum Status der zu überwachenden Objekte werden in der Hauptansicht in Form von benutzerdefinierten Widgets angezeigt.


Die Hauptpräsentation für den IS "Personal Account"

Zum Zeitpunkt der Aufnahme des Screenshots ist ein Problem mit einer großen Anzahl von Abfragen in der Datenbank aufgetreten, aufgrund derer die Reaktion der Seiten im IS "Personal User Account" zugenommen hat. Das System informiert auf dem Bildschirm darüber und sendet eine SMS.

Für die Betriebsüberwachung wird der „Betriebsbildschirm“ verwendet, auf dem sich nur ein Widget mit der aktuellen Liste der Ereignisse befindet (aktive Ereignisse und Ereignisse, die vor 15 Minuten geschlossen wurden).


Live-Bildschirmpräsentation

Zum Testen habe ich mit MySQL eine hohe Auslastung der CPU der virtuellen Maschine erzeugt. Das System hat das Ereignis abgefangen und die Aktion mit einem vorbereiteten Neustartskript für den mysqld-Dienst gestartet. Wenn das Ereignis nach 15 Minuten noch aktiv ist, wird ein Neustart durchgeführt.


Der Dienst wurde ordnungsgemäß neu gestartet und ich erhielt eine Benachrichtigung, dass alles in Ordnung ist.

Alle Ereignisse in der Zeit können im Abschnitt "Timeline" angezeigt werden. Und wenn das ITSM-System noch verbunden ist, wird die gemäß KE geplante Arbeit angezeigt.


Überwachen von Ereignissen in der Zeitleistenansicht

Informationen zur Verfügbarkeit von Systemen, die für die Überwachung installiert wurden, finden Sie in der Ansicht „SLA-Berichte“.


SLA auf IP "Persönliches Konto des Benutzers" melden

Aus Gründen der Übersichtlichkeit habe ich zwei Wochen lang einen Bericht erstellt, der Ereignisse mit den Prioritäten 3 und 4 ausschließt. Nun, natürlich Testereignisse. Wenn Sie dem Bericht glauben, funktioniert das System einwandfrei. Der Bericht wird in PDF und XLS exportiert.

Auf den Bildschirmen werden Informationen zu Filtern angezeigt, die vom Benutzer vorkonfiguriert wurden. Jedes Ereignis auf den Bildschirmen kann für eine schnelle Suche oder Filterung markiert werden.

Lizenzierung


Den nicht funktionierenden, aber nicht minder entscheidenden Vorteil von MONQ habe ich zum Ende des Artikels gespeichert. Dies ist eine Lizenzierung. Die überwiegende Mehrheit der Lösungen zur Überwachung von Fremdsystemen wird durch die Anzahl der Geräte lizenziert (in der Regel pro Endpunkt, OS-Instanz oder etwas anderem), von denen aus Ereignisse oder Metriken verarbeitet werden. Unabhängig davon, ob Sie Daten von den endgültigen Überwachungsobjekten oder von einem anderen Überwachungssystem erfassen. Wenn Metriken mit einem kommerziellen System erfasst werden, ist eine doppelte Zahlung für dieselbe Sache unvermeidlich. MONQ wird durch die Anzahl der Anschlüsse lizenziert, die an externe Systeme angeschlossen sind. Wenn Sie also zwei Systeme verwenden, von denen Sie Informationen sammeln möchten, sind dies zwei verwendete Connectors oder zwei Lizenzen. Unter dem Gesichtspunkt der „Inkassogebühr“ ändert sich bei Verwendung von MONQ also nichts. Sie zahlen nur die Kosten für die Integration in diese Systeme. Darin sehe ich einen großen Vorteil und Potenzial.

Wie mir gesagt wurde, sind die Pläne für die Entwicklung des Systems viele Verbesserungen, die ständig eingeführt werden. Zu den bemerkenswerten Neuerungen in den nächsten sechs Monaten gehören: ein Dashboard-Designer, ein Meister für das Erstellen von synthetischen Triggern, mehr Details bei der Berechnung der SLA (Sie sehen, welcher Faktor und wie stark die Zugänglichkeit des Objekts beeinflusst hat) und eine externe öffentliche API.

Schlussfolgerungen


Mir hat gefallen, dass die Jungs von der Entwicklerfirma einfach Kontakt aufnehmen, reden und Informationen austauschen konnten, und mir hat das System gefallen. Es hat immer noch nicht viel Funktionalität und ist in Bezug auf AIOps schwer direkt mit Splunk oder AppDynamics zu vergleichen, aber wenn alles wahr ist, wird dieses System seinen rechtmäßigen Platz unter den Marktführern und im Gartner-Quadranten einnehmen.

Wenn Sie das System selbst evaluieren, eine Präsentation erhalten, eine Demo anschauen oder schon lange nach einer Dachlösung suchen und für ein Pilotprojekt bereit sind, hinterlassen Sie bitte eine Anfrage im Feedback-Formular auf unserer Website.

Source: https://habr.com/ru/post/de476134/


All Articles