Hallo allerseits!
Unser Unternehmen beschäftigt sich mit Softwareentwicklung und anschließendem technischen Support. Im Rahmen des technischen Supports müssen Sie nicht nur Fehler beheben, sondern auch die Leistung unserer Anwendungen überwachen.
Wenn beispielsweise einer der Dienste „abstürzt“, müssen Sie dieses Problem automatisch beheben und mit der Lösung beginnen. Warten Sie nicht auf Anrufe beim technischen Support für unzufriedene Benutzer.
Wir haben ein kleines Unternehmen, es gibt keine Ressourcen zum Studieren und enthalten komplexe Lösungen für die Überwachung von Anwendungen. Es war notwendig, eine einfache und effektive Lösung zu finden.

Überwachungsstrategie
Das Durchführen einer Überprüfung des Anwendungszustands ist nicht einfach. Diese Aufgabe ist nicht trivial, man könnte sogar sagen, kreativ. Es ist besonders schwierig, ein komplexes Mehrverbindungssystem zu testen.
Wie man einen Elefanten isst? Nur in Teilen! Wir verwenden diesen Ansatz, um Anwendungen zu überwachen.
Das Wesentliche unserer Überwachungsstrategie:
Teilen Sie die Anwendung in Komponenten auf.
Erstellen Sie für jede Komponente Kontrollprüfungen.
Eine Komponente gilt als fehlerfrei, wenn alle Kontrollprüfungen fehlerfrei durchgeführt werden. Eine Anwendung gilt als fehlerfrei, wenn alle ihre Komponenten funktionsfähig sind.
Somit kann jedes System als ein Baum von Komponenten dargestellt werden. Komplexe Komponenten werden in einfachere unterteilt. Einfache Komponenten haben Prüfungen.

Kontrollprüfungen sollten keine Funktionstests durchführen, dies sind keine Komponententests. Kontrollprüfungen sollten prüfen, wie sich die Komponente zum aktuellen Zeitpunkt anfühlt, ob alle für ihre Funktion erforderlichen Ressourcen vorhanden sind und ob Probleme vorliegen.
Es gibt keine Wunder, die meisten Kontrollen müssen unabhängig voneinander entwickelt werden. Aber keine Angst, denn in den meisten Fällen dauert eine Prüfung 5-10 Codezeilen, aber dann können Sie jede Logik implementieren und es wird Ihnen klar sein, wie die Prüfung funktioniert.
Überwachungssystem
Angenommen, wir teilen die Anwendung in Komponenten auf, erfinden und implementieren Überprüfungen für jede Komponente. Was tun wir jedoch mit den Ergebnissen dieser Überprüfungen? Woher wissen wir, dass eine Überprüfung fehlgeschlagen ist?
Wir brauchen ein Überwachungssystem. Sie wird folgende Aufgaben ausführen:
- Erhalten Sie Testergebnisse und bestimmen Sie den Status der Komponenten daraus.
Optisch sieht es so aus, als würde der Komponentenbaum hervorgehoben. Wartungsfähige Komponenten werden grün, fehlerhafte Komponenten werden rot.
- Führen Sie sofort allgemeine Überprüfungen durch.
Das Überwachungssystem kann einige Überprüfungen selbst durchführen. Warum das Rad neu erfinden, werden wir sie verwenden. Sie können beispielsweise überprüfen, ob die Site-Seite geöffnet wird oder der Server antwortet.
- Senden Sie Problembenachrichtigungen an interessierte Parteien.
- Visualisierung von Überwachungsdaten, Bereitstellung von Berichten, Grafiken und Statistiken.
Kurzbeschreibung des ASMO-Systems
Am besten anhand eines Beispiels erklären. Mal sehen, wie die Überwachung des Betriebs des ASMO-Systems organisiert ist.
ASMO ist ein automatisiertes Wetterunterstützungssystem. Das System hilft Straßendienstspezialisten zu verstehen, wo und wann die Straße mit Vereisungsschutzmitteln behandelt werden muss. Das System sammelt Daten von Verkehrskontrollpunkten. Ein Straßenkontrollpunkt ist ein Ort auf der Straße, an dem die Ausrüstung installiert ist: eine Wetterstation, eine Videokamera und mehr. Um gefährliche Situationen vorherzusagen, erhält das System Wettervorhersagen von externen Quellen.

Die Zusammensetzung des Systems ist also recht typisch: Website, Agent, Ausrüstung. Beginnen wir mit der Überwachung.
Wir zerlegen das System in Komponenten
Folgende Komponenten können im ASMO-System unterschieden werden:
1. Persönliches KontoDies ist eine Webanwendung. Sie müssen mindestens überprüfen, ob die Anwendung im Internet verfügbar ist.
2. DatenbankWichtige Daten für die Berichterstellung werden in der Datenbank gespeichert. Es muss überprüft werden, ob die Datenbanksicherungen erfolgreich erstellt wurden.
3. ServerMit Server ist Hardware gemeint, auf der Anwendungen ausgeführt werden. Es ist notwendig, den Status von Festplatte, RAM, CPU zu überprüfen.
4. AgentDies ist ein Windows-Dienst, der viele verschiedene geplante Aufgaben ausführt. Sie müssen mindestens überprüfen, ob der Dienst ausgeführt wird.
5. AgentenaufgabeNur zu wissen, dass der Agent arbeitet, reicht nicht aus. Ein Agent kann arbeiten, aber die ihm zugewiesenen Aufgaben nicht erfüllen. Wir unterteilen die Agentenkomponente in Aufgaben und prüfen, ob jede Agentenaufgabe erfolgreich funktioniert.
6. Straßenkontrollpunkte (Container aller MPCs)Es gibt viele Punkte der Straßenkontrolle, daher werden wir alle MPCs in einer Komponente kombinieren. Dies erleichtert das Lesen von Überwachungsdaten. Wenn Sie den Status der Komponente "ASMO-System" anzeigen, wird sofort klar, wo die Probleme liegen: in Anwendungen, Hardware oder in MPC.
7. Straßenkontrollpunkt (ein MPC)Wir werden diese Komponente als wartungsfähig betrachten, wenn alle Geräte auf diesem MPC gewartet werden können.
8. GerätDies ist eine Videokamera oder Wetterstation, die auf dem MPC installiert ist. Sie müssen überprüfen, ob das Gerät ordnungsgemäß funktioniert.
Im Überwachungssystem sieht der Komponentenbaum folgendermaßen aus:

Überwachung von Webanwendungen
Also haben wir das System in Komponenten unterteilt. Jetzt müssen wir für jede Komponente Überprüfungen durchführen.
Zur Überwachung der Webanwendung verwenden wir die folgenden Überprüfungen:
1. Überprüfen Sie die Öffnung der HauptseiteDiese Prüfung wird vom Überwachungssystem durchgeführt. Für die Ausführung geben wir die Seitenadresse, das erwartete Antwortfragment und die maximale Ausführungszeit der Abfrage an.
2. Überprüfung der Zahlungsfrist der DomainSehr wichtige Überprüfung. Wenn eine Domain nicht bezahlt wird, können Benutzer die Site nicht öffnen. Es kann mehrere Tage dauern, bis das Problem behoben ist. DNS-Änderungen werden nicht sofort angewendet.
3. Überprüfung des SSL-ZertifikatsMittlerweile verwenden fast alle Websites das https-Protokoll für den Zugriff. Damit das Protokoll ordnungsgemäß funktioniert, benötigen Sie ein gültiges SSL-Zertifikat.
Unten ist die Komponente "Persönliches Konto" im Überwachungssystem:

Alle oben genannten Prüfungen sind für die meisten Anwendungen geeignet und erfordern kein Schreiben von Code. Dies ist großartig, da Sie jede Webanwendung in 5 Minuten überwachen können. Im Folgenden finden Sie zusätzliche Überprüfungen, die für eine Webanwendung durchgeführt werden können. Ihre Implementierung ist jedoch komplexer und spezifischer für verschiedene Anwendungen. Daher werden wir sie in diesem Artikel nicht analysieren.
Was kann ich noch überprüfen?
Für eine umfassendere Überwachung der Webanwendung können Sie die folgenden Überprüfungen durchführen:
- Anzahl der JavaScript-Fehler pro Periode
- Die Anzahl der Fehler auf der Seite der Webanwendung (Back-End) für den Zeitraum
- Die Anzahl der nicht erfolgreichen Antworten der Webanwendung (Antwortcode 404, 500 usw.)
- Durchschnittliche Ausführungszeit der Abfrage
Überwachung des Windows-Dienstes (Agent)
Im ASMO-System fungiert der Agent als Taskplaner, der im Hintergrund geplante Aufgaben ausführt.
Wenn alle Aufgaben des Agenten erfolgreich sind, funktioniert der Agent ordnungsgemäß. Es stellt sich heraus, dass zur Überwachung eines Agenten seine Aufgaben überwacht werden müssen. Daher unterteilen wir die Agent-Komponente in Aufgaben. Wir erstellen für jede Aufgabe eine separate Komponente im Überwachungssystem, wobei die Komponente "Agent" die "übergeordnete Komponente" ist.
Wir unterteilen die Agentenkomponente in untergeordnete Komponenten (Aufgaben):

Wir haben also eine komplexe Komponente in mehrere einfache unterteilt. Jetzt müssen Sie für jede einfache Komponente Überprüfungen erstellen. Bitte beachten Sie, dass die übergeordnete Komponente "Agent" keine einzige Prüfung hat, da das Überwachungssystem ihren Status auf der Grundlage des Status seiner untergeordneten Komponenten berechnet. Mit anderen Worten, wenn alle Aufgaben erfolgreich abgeschlossen wurden, arbeitet der Agent auch erfolgreich.
Es gibt mehr als hundert Aufgaben im ASMO-System. Ist es wirklich notwendig, für jede Aufgabe eindeutige Prüfungen zu erstellen? Natürlich ist die Kontrolle besser, wenn wir für jede Aufgabe des Agenten eigene Spezialprüfungen durchführen, aber in den meisten Fällen reicht es aus, universelle Prüfungen zu verwenden.
Das ASMO-System verwendet nur universelle Überprüfungen für Aufgaben. Dies reicht aus, um die Systemleistung zu überwachen.
Überprüfen Sie die AusführungDie einfachste und effektivste Überprüfung ist eine Überprüfung des Fortschritts. Die Überprüfung überprüft, ob die Aufgabe ohne Fehler ausgeführt wird. Alle Aufgaben haben diese Prüfung.
Validierungsalgorithmus
Nach jeder Taskausführung muss das Ergebnis der SUCCESS-Prüfung an das Überwachungssystem gesendet werden, wenn die Task erfolgreich war, oder ERROR, wenn die Ausführung fehlgeschlagen ist.
Mit dieser Überprüfung können Sie die folgenden Probleme erkennen:
- Die Aufgabe wird ausgeführt, schlägt jedoch fehl.
- Die Task wurde nicht mehr ausgeführt, z. B. eingefroren.
Betrachten wir genauer, wie diese Probleme gelöst werden.
Problem 1 - Die Aufgabe wird ausgeführt, schlägt jedoch fehlUnten ist der Fall, wenn die Aufgabe ausgeführt wird, aber von 14:00 bis 16:00 fehlschlägt.

Die Abbildung zeigt, dass bei Fehlschlagen der Aufgabe das Signal sofort an das Überwachungssystem gesendet wird und der Status der entsprechenden Prüfung im Überwachungssystem alarmiert.
Bitte beachten Sie, dass im Überwachungssystem der Status der Komponente vom Status der Überprüfung abhängt. Der Alarmstatus der Prüfung übersetzt alle übergeordneten Komponenten in einen Alarm (siehe Abbildung unten).
Problem 2 - Die Aufgabe funktioniert nicht mehr (hängt)Wie versteht das Überwachungssystem, dass die Aufgabe eingefroren ist?
Das Ergebnis der Prüfung hat eine relevante Zeit, beispielsweise 1 Stunde. Wenn eine Stunde vergeht und kein neues Überprüfungsergebnis vorliegt, setzt das Überwachungssystem den Alarmstatus in der Überprüfung.

Im Bild oben um 14:00 Uhr wurden die Lichter ausgeschaltet. Um 15:00 Uhr erkennt das Überwachungssystem, dass das Testergebnis (ab 14:00 Uhr) schlecht ist, weil Die Relevanzzeit ist abgelaufen (eine Stunde), es liegt jedoch kein neues Ergebnis vor, und die Prüfung wird in den Alarmstatus versetzt.
Um 16:00 Uhr wurde das Licht wieder eingeschaltet, das Programm beendet die Aufgabe und sendet das Ergebnis an das Überwachungssystem. Der Verifizierungsstatus wird wieder erfolgreich.
Was ist die Gültigkeitsdauer der Prüfung?
Die Relevanzzeit sollte länger sein als der Ausführungszeitraum der Aufgabe. Ich empfehle, die relevante Zeit 2-3 mal länger als die Dauer der Aufgabe einzustellen. Dies ist erforderlich, um keine falschen Benachrichtigungen zu erhalten, wenn beispielsweise die Aufgabe länger als gewöhnlich gedauert hat oder jemand das Programm neu geladen hat.
FortschrittskontrolleDas ASMO-System hat die Aufgabe „Herunterladen einer Prognose“, die einmal pro Stunde versucht, eine neue Prognose von einer externen Quelle herunterzuladen. Der genaue Zeitpunkt, zu dem eine neue Prognose im externen System angezeigt wird, ist nicht bekannt, es ist jedoch bekannt, dass dies zweimal täglich geschieht. Es stellt sich heraus, dass wenn es mehrere Stunden lang keine neue Prognose gibt, dies normal ist, aber wenn es länger als einen Tag keine neue Prognose gibt, ist irgendwo etwas kaputt gegangen. In einem externen Prognosesystem kann sich beispielsweise das Datenformat ändern, wodurch ASMO keine neue Prognoseversion sieht.
Validierungsalgorithmus
Die Task sendet das Ergebnis der SUCCESS-Prüfung an das Überwachungssystem, wenn es möglich ist, Fortschritte zu erzielen (neue Wettervorhersage herunterladen). Wenn kein Fortschritt vorliegt oder ein Fehler aufgetreten ist, wird nichts an das Überwachungssystem gesendet.
Das Audit sollte ein relevantes Intervall haben, damit in dieser Zeit garantiert neue Fortschritte erzielt werden.

Bitte beachten Sie, dass wir das Problem mit einer Verzögerung erfahren, da das Überwachungssystem wartet, bis der Zeitpunkt der Relevanz des letzten Testergebnisses abgelaufen ist. Daher muss der Zeitpunkt der Relevanz der Prüfung nicht zu lang sein.
Datenbanküberwachung
Um die Datenbank im ASMO-System zu steuern, führen wir die folgenden Überprüfungen durch:
- Überprüfen Sie die Sicherungen
- Überprüfen des freien Speicherplatzes
Überprüfen Sie die SicherungenIn den meisten Anwendungen ist es wichtig, über aktuelle Datenbanksicherungen zu verfügen, damit Sie das Programm im Falle eines Serverausfalls auf einem neuen Server bereitstellen können.
ASMO erstellt einmal pro Woche eine Sicherungskopie und sendet sie an das Repository. Wenn dieser Vorgang erfolgreich abgeschlossen wurde, wird das Ergebnis der Erfolgsprüfung an das Überwachungssystem gesendet. Das Ergebnis der Prüfung hat eine Gültigkeitsdauer von 9 Tagen. Das heißt, Um die Erstellung von Backups zu steuern, wird der oben untersuchte Mechanismus zum Überprüfen des Fortschritts verwendet.
Überprüfen des freien SpeicherplatzesWenn auf der Festplatte nicht genügend freier Speicherplatz vorhanden ist, kann die Datenbank nicht normal funktionieren. Daher ist es wichtig, die Menge an freiem Speicherplatz zu steuern.
Es ist praktisch, Metriken zu verwenden, um die numerischen Parameter zu überprüfen.
Metrik ist eine numerische Variable, deren Wert an das Überwachungssystem übergeben wird. Das Überwachungssystem überprüft Schwellenwerte und berechnet den Status der Metrik.
Unten sehen Sie ein Bild davon, wie die Komponente „Datenbank“ im Überwachungssystem aussieht:

Serverüberwachung
Zur Überwachung des Servers verwenden wir die folgenden Überprüfungen und Metriken:
1. Freier SpeicherplatzWenn der Speicherplatz knapp wird, kann die Anwendung nicht mehr arbeiten. Wir verwenden 2 Schwellenwerte: Die erste Ebene ist WARNUNG, die zweite Ebene ist ALARM.
2. Der durchschnittliche RAM-Wert in Prozent pro StundeWir verwenden den Durchschnittswert pro Stunde als Wir sind nicht an seltenen Rennen interessiert.
3. Der Durchschnittswert der CPU in Prozent pro StundeWir verwenden den Durchschnittswert pro Stunde als Wir sind nicht an seltenen Rennen interessiert.
4. Ping-CheckÜberprüft, ob der Server online ist. Das Überwachungssystem kann diese Prüfung durchführen, ohne dass Code geschrieben werden muss.
Unten sehen Sie ein Bild davon, wie die „Server“ -Komponente im Überwachungssystem aussieht:

Geräteüberwachung
Ich werde Ihnen sagen, wie Daten empfangen werden. Für jeden Punkt der Straßensteuerung (MPC) im Aufgabenplaner gibt es eine Aufgabe, z. B. "MPC M2 km 200 abfragen". Die Aufgabe empfängt alle 30 Minuten Daten von allen MPC-Geräten.
KommunikationskanalproblemDie meisten Geräte befinden sich außerhalb der Stadt. Für die Datenübertragung wird ein GSM-Netz verwendet, das nicht stabil funktioniert (dh das Netz ist nicht vorhanden).
Aufgrund häufiger Netzwerkausfälle sah die erste Überprüfung der MPC-Umfrage bei der Überwachung folgendermaßen aus:

Es wurde klar, dass dies keine funktionierende Option ist, da viele falsche Warnungen zu den Problemen eingegangen sind. Dann wurde für jedes Gerät entschieden, eine "Fortschrittsprüfung" zu verwenden, d.h. Nur das Erfolgssignal wird an das Überwachungssystem gesendet, wenn das Gerät fehlerfrei abgefragt wird. Die Relevanzzeit wurde auf 5 Stunden eingestellt.

Jetzt sendet die Überwachung nur dann eine Benachrichtigung über Probleme, wenn das Gerät länger als 5 Stunden nicht abgefragt werden kann. Mit hoher Wahrscheinlichkeit handelt es sich nicht um Fehlalarme, sondern um echte Probleme.
Unten sehen Sie ein Bild davon, wie das Gerät in einem Überwachungssystem aussieht:
Wichtig!Wenn das GSM-Netz nicht mehr funktioniert, werden nicht alle MPC-Geräte abgefragt. Um die Anzahl der Buchstaben vom Überwachungssystem zu verringern, abonnieren unsere Ingenieure Benachrichtigungen über Komponentenprobleme mit dem Typ "MPC" und nicht mit "Gerät". Auf diese Weise können Sie eine Benachrichtigung für jeden MAC erhalten, anstatt für jedes Gerät eine separate Benachrichtigung zu erhalten.
Das endgültige Überwachungsschema ASMO
Lassen Sie uns alles zusammenfassen und sehen, welche Art von Überwachungsschema wir haben.

Fazit
Fassen wir zusammen.
Was hat uns die Überwachung der Leistung des ASMO gebracht?
1. Verkürzte FehlerbehebungszeitFrüher haben wir von Benutzern Fehler erfahren, aber nicht alle Benutzer melden Fehler. So kam es, dass wir eine Woche nach ihrem Erscheinen von der Fehlfunktion einer Komponente des Systems erfuhren. Jetzt benachrichtigt uns das Überwachungssystem über Probleme, sobald das Problem erkannt wird.
2. Erhöhte SystemstabilitätDa Fehler früher behoben wurden, begann das gesamte System wesentlich stabiler zu arbeiten.
3. Reduzierung der Anzahl der technischen SupportanrufeViele Probleme sind jetzt behoben, bevor Benutzer davon erfahren. Benutzer haben weniger Kontakt zum technischen Support. All dies hat einen guten Einfluss auf unseren Ruf.
4. Steigerung der Kunden- und BenutzerbindungDer Kunde stellte positive Veränderungen in der Stabilität des Systems fest. Es ist weniger wahrscheinlich, dass Benutzer Probleme mit dem System haben.
5. Reduzieren Sie die Kosten für den technischen SupportWir haben aufgehört, alle Überprüfungen manuell durchzuführen. Jetzt sind alle Prüfungen automatisiert. Früher haben wir von Benutzern etwas über Probleme gelernt. Oft war es schwierig zu verstehen, über welches Problem der Benutzer sprach. Jetzt werden die meisten Probleme vom Überwachungssystem gemeldet, Benachrichtigungen enthalten technische Daten, auf denen immer klar ist, was und wo es kaputt gegangen ist.
Wichtig!Sie können kein Überwachungssystem auf demselben Server installieren, auf dem Ihre Anwendungen ausgeführt werden. Wenn der Server abstürzt, funktionieren die Anwendungen nicht mehr und es wird niemand eine Benachrichtigung darüber senden.
Das Überwachungssystem sollte auf einem separaten Server in einem anderen Rechenzentrum arbeiten.
Wenn Sie im neuen Rechenzentrum keinen dedizierten Server verwenden möchten, können Sie das Cloud-Überwachungssystem verwenden. Unser Unternehmen verwendet das Zidium-Cloud-Überwachungssystem, Sie können jedoch jedes andere Überwachungssystem verwenden. Die Kosten für ein Cloud-Überwachungssystem sind niedriger als für die Anmietung eines neuen Servers.
Empfehlungen:- Brechen Sie Anwendungen und Systeme in Form eines Baums von Komponenten so detailliert wie möglich auf, damit Sie bequem verstehen können, wo und was defekt ist, und die Steuerung vollständiger ist.
- Verwenden Sie Prüfungen, um den Zustand einer Komponente zu überprüfen. Es ist besser, viele einfache Prüfungen zu verwenden als eine komplexe.
- Schwellenwertmetrikwerte werden auf der Seite des Überwachungssystems konfiguriert und schreiben nicht in den Code. Dies erspart Ihnen das Neukompilieren, Neukonfigurieren oder Neustarten der Anwendung.
- Verwenden Sie für benutzerdefinierte Überprüfungen die aktuelle Zeit mit einem Rand, um keine falschen Benachrichtigungen zu erhalten, da eine Überprüfung etwas länger als gewöhnlich dauerte.
- Stellen Sie sicher, dass die Komponenten im Überwachungssystem nur dann rot werden, wenn ein Problem vorliegt. Wenn sie für nichts rot werden, hören Sie auf, auf Benachrichtigungen des Überwachungssystems zu achten, und ihre Bedeutung geht verloren.
Wenn Sie noch kein Überwachungssystem verwenden, legen Sie los! Es ist nicht so schwierig, wie es scheint. Werfen Sie einen Blick auf den grünen Komponentenbaum, den Sie selbst gezüchtet haben.Viel Glück.