Überwachung von Windows-Servern in reinem MS SQL und wie ich sie heimlich implementiert habe

    In einer weit entfernten Galaxie befand sich einst eine Firma, die schon lange von einem Startup aufgewachsen war, aber immer noch recht kompakt und effizient blieb. Das Unternehmen hostete (auf seiner Hardware) Hunderte von Windows-Servern und musste überwacht werden. Noch bevor ich dazu kam, wurde das NetIQ-System als Lösung ausgewählt.

    Ich wurde angewiesen, NetIQ einzurichten, und derjenige, der es vor mir tat, sagte kein Wort darüber. Gedruckt Mir wurde schnell klar warum. Steve Jobs dreht sich wahrscheinlich im Grab und schaut auf ein ähnliches Interface:

    Bild

    In einer Zeile ist die Logik des "Vogels" positiv (Raise-Ereignis). In einem anderen Negativ (kein Ereignis auslösen). Wie ich mit "Nur Ereignisse erzeugen wenn" mit einem anderen Satz von Markierungen arbeite, wird nur experimentell verstanden (und ich habe es bereits vergessen).

    Das wesentlich schlechtere Feature von NetIQ war jedoch seine Fragilität. Ihr Agent, der auf jedem Server installiert war, war wesentlich anfälliger als Windows. Wenig erinnerung? Agent flog raus. CPU 100%? Agent antwortet nicht Es befinden sich noch 0 Bytes auf der Festplatte. Was würden Sie davon halten? Um eine Nachricht zu senden, muss der Agent sie zuerst auf der Festplatte als Datei erstellen ... Nun, Sie verstehen.

    Trotzdem, so etwas wie Leben, bis diese Firma noch mehr von der Firma gekauft wurde. Wenn ein Monster ein winziges Unternehmen frisst, löst es sich wie ein Tropfen im Meer auf. In unserem Fall waren wir nach IT-Standards nur geringfügig kleiner als diejenigen, die uns gekauft haben, und es war sofort klar, dass der Fusionsprozess sehr schwierig sein würde. So kompliziert, dass wir einige Zeit nicht berührt wurden und intern alle Prozesse gleich blieben. Dieser Zustand war dem Moment ähnlich, als der Eine Ring auf die Lava fiel, aber noch nicht zu schmelzen begonnen hatte:


    Mittlerweile habe ich NetIQ von Version 7 auf 8 und weiter auf 9 aktualisiert, als unsere Probleme begannen. NetIQ überwachte einige Dinge: die Verfügbarkeit des Servers selbst, des Arbeitsspeichers, der CPU, der Festplatte und vor allem der Dienste. Wenn unsere samopisny-Dienste in „Automatik“ waren, mussten sie arbeiten. Dass dies nicht sein sollte:


    In den meisten Fällen haben diese Ereignisse die Überwachung von NetIQ gestoppt. Nach einer Woche Experimenten und einer Woche mit Support haben wir herausgefunden, dass „dies kein Fehler ist, sondern eine Funktion“ und dass eine Warnung nur mit einem bestimmten Beendigungscode erstellt wird. Und unsere Dienste fielen manchmal mit irgendwelchen Codes zusammen.

    Es hat lange gedauert und es war zu spät, um zurückzurollen. Wenn Sie feststellen, dass unsere kritische Infrastruktur nicht überwacht wird, haben wir sofort ... äh ... nichts unternommen. Denn zu dieser Zeit trat die „Auflösung“ unseres Unternehmens weitgehend in die aktive Phase ein und sah so aus:


    Entferntes Grollen von Donner, Schreien und Blitzen flog zu mir, und es sah so aus, dass das Schicksal der Welt entschieden wurde, und ich kletterte mit einem kleinen technischen Problem ... Und ich konnte nicht schlafen, da ich wusste, dass unsere Überwachung halb blind war.

    Als mir klar wurde, dass es nirgendwo mehr auf Hilfe warten konnte, entschied ich mich, schnell einen Service-Scanner zu schreiben, der alle Server umgehen und einen Brief senden würde, falls etwas schief ging, wie NetIQ. Wahrscheinlich denkst du, ich habe Powershell benutzt? Nein. Wenn Sie einen Hammer in der Hand haben, sind die Nägel rundherum Nägel, und wenn Sie DBA sind und mit SQL ab Version 6.0 gearbeitet haben, dann ... Ein kleiner Auszug aus dem Code, damit Sie verstehen, worum es geht:


    Ich habe es in ein paar Stunden gemacht. In den nächsten Tagen wurde eine Überprüfung der Meldungen, Parameter und anderer Leckereien vorgenommen. Nachdem ich über den WMIC-Befehl gelesen hatte, konnte ich nicht aufhören. Dann ein paar Wochen benommen. Ich bin aufgewacht, als alles, was wir in NetIQ verwendeten, neu geschrieben wurde und mit einem Knall gearbeitet hat.

    Die Funktionalität wurde nicht nur kopiert - ich habe alle meine Phantasien realisiert, alles, was ich von einem solchen System möchte. LOWDISK - Sie erhalten auch eine Grafik darüber, wie sich der freie Speicherplatz in letzter Zeit verhalten hat. Ist dies normales Wachstum oder ist etwas schiefgegangen. Wenig Speicher - das ist das Diagramm und die Liste der Prozesse und wie viel sie belegen. Für w3wp.exe werden wir auch den Namen des Anwendungspools, die intelligenten Erinnerungen und vieles mehr angeben. Das System konnte übrigens eine Liste von Servern unabhängig von VMware übernehmen. Ein kurzer Blick auf die Alarmmeldungen im Telefon genügte, um zu verstehen, was los war:


    Moderne Programmierer sind so daran gewöhnt, abstrakt zu denken, dass sie kein anderes Überwachungssystem schreiben können, als "wir führen eine Reihe abstrakter Überwachungsskripts für den Server aus und wir kümmern uns nicht darum, was sich darin befindet", während sie jeden Zustand (Festplatte, Speicher, CPU, Dienste) auf seine eigene Weise überwachen. sind einzigartig. Bei der Implementierung dieser "Zusammenfassung" tun Sie dies für jeden Fall schlecht, und Folgendes passiert: (Dies ist ein Screenshot aus der E-Mail von SCOM. Sicherlich strikt gemäß der Arbeitsanweisung.)


    Der große Vorteil des neuen Systems bestand darin, dass es agentenlos war bzw. es keine Probleme mit der Installation des Agenten und dessen Abstürzen gab - es gab einfach nichts zu fallen. Das System war einfach und zuverlässig wie ein Hammer.

    Die nächsten Monate, in denen ich am Morgen zur Arbeit kam, standen vor meinem geistigen Kind, wie ein Künstler vor einer Leinwand, und machten ein paar Striche, um es noch perfekter zu machen. Da ich keine Fristen hatte, wurden die technischen Schulden auf ein Minimum reduziert. Irgendwann zwang ich mich immer noch aufzuhören.

    NetIQ funktionierte noch immer, aber jeder mochte die neue Art von Alarmen. Nach und nach übertrug ich alle auf Alarme des neuen Systems, ohne jedoch die alte auszuschalten. Inzwischen ist der „Schmelzprozess“ in seine Endphase eingetreten:


    Nun, die Geschichte sollte enden. Ich selbst war überrascht, dass ich in einer großen bürokratischen Firma so viel Spaß haben konnte. Nach einem Monat Vorbereitung wurde mir gesagt, dass wir nach einer Woche alles löschen, NetIQ löschen und zu SCOM wechseln. Ich stellte NetIQ ab (ich gebe zu, ich hasste ihn so sehr, dass ich sehr zufrieden war) und wartete auf SCOM. Aber zur festgesetzten Zeit war er nicht. Es war keine Woche später und einen Monat später.

    SCOM erschien erst nach sechs Monaten - jemand hat vergessen, wie viele Server wir haben und wie viele Lizenzen für SCOM erforderlich sind. Sechs Monate lang waren so viele Systeme von meinem System abhängig, das mit dem Führen und Inventar, den Metriken und vielem mehr anfing, dass das zweite ruhig inoffiziell blieb. Für Auditoren gibt es SCOM und alles, was wirklich nützlich ist, ist das zweite System.

    Manchmal wunderten sich Manager auf verschiedenen Ebenen - woher kamen diese automatisierten E-Mails? Vor kurzem habe ich ihnen ausführlich eine Geschichte beschrieben, die ich in diesem Artikel dargelegt habe, und sie lachten fröhlich. Obwohl es mir selbst manchmal immer lustig ist, wie in einem großen bürokratischen Unternehmen, kann man mit "schlau" viele Dinge trinken. Und es ist schön, nur wie in guten alten Zeiten Code zu pinkeln.

    Jetzt auch beliebt: