
Entschuldigen Sie die Textwand unten.
An meinem Arbeitsplatz haben wir eine ganze Reihe von Exchange-Servern und unterstützende Domänencontroller, die alle derzeit von SCOM überwacht werden. Ich habe bestimmte Überwachungselemente zusätzlich zu dem eingerichtet, was SCOM auf einer ASP.net-Website tun kann, unterstützt von einer SQL-Datenbank.
Ich möchte die Server genauer überwachen, damit wir:
Baseline the servers better for historical comparison
If a problem occurs we can pull out more raw data.
Zu diesem Zweck möchte ich mehr Daten aus den Perfmon-Zählern ziehen. Ich weiß, dass SCOM einige Perfmon-Daten ziehen kann, und das tut es auch, aber unsere SCOM-Implementierung ist ziemlich groß, und die Leute, die sie verwalten, möchten nicht, dass ich die Häufigkeit der Zähler erhöhe, sodass sie oft genug sind, um manchmal nützlich zu sein.
Auch das Abfragen von Daten aus der SCOM-Datenbank bedeutet, dass ich die Indizes nicht wirklich ändern, die Annahmeschlusszeiten für die benötigten Daten nicht steuern oder wirklich kontrollieren kann, was ich möglicherweise brauche.
Meine Frage hier ist eigentlich eher, wie ich dies angehen soll, und nicht, wie ich die Daten tatsächlich abrufe und einfüge, da ich bereits über Skripte verfüge, die Daten abrufen und in SQL einfügen können.
Grob gesagt sind die Server wie folgt aufgeteilt:
Exchange 2007 in Domain1.com
Exchange 2010 in Domain2.com
Die Server sind für Exchange 2007/2010 logisch wie folgt aufgeteilt:
Mailbox Servers
Client Access Servers
Hub Transport Servers
Domain Controllers
Ich möchte von allen oben genannten Servern Zähler für die Grundlagen abrufen und dann detaillierter auf bestimmte Servertypen eingehen, beispielsweise die durchschnittliche RPC-Latenz von den Mailbox-Servern, die Anzahl der Verbindungen von CAS-Servern, übermittelte Nachrichten/Sek. für HT-Server usw. abrufen.
Ich möchte also vier Skripttypen erstellen, einen für jede Serverklasse, und sie dann von jedem Server aus planmäßig ausführen, um einige Daten aufzuzeichnen, eine Verbindung zu meiner SQL-Datenbank herzustellen und die Datensätze dann in Tabellen einzufügen.
Soll ich für meine SQL-Tabellen eine pro Serverklasse erstellen oder einfach alle Datensätze in eine einzige Tabelle einfügen?
Ist es eine schlechte Idee, auf jedem Server ein lokales Skript auszuführen, das alle Daten in die SQL-Tabelle wirft? Ich habe überlegt, die Daten remote zu erfassen, aber wenn ich nur alle paar Minuten ein paar Daten erfassen möchte, habe ich festgestellt, dass die Zeiten aufgrund der Netzwerklatenz oder anderer Faktoren, die das Timing durcheinander gebracht haben, stark variieren.
Ich würde auch gerne etwas über mögliche Archivierungslösungen hören, zum Beispiel wie man häufiger Aufzeichnungen für die letzten Tage führen kann (vielleicht alle 5 Minuten für alle Zähler über 5 Tage), aber weniger häufig Aufzeichnungen für die Vergangenheit führen kann.
Antwort1
Am Ende habe ich einfach eine Remote-Sammlung ausgeführt, allerdings für einen begrenzten Datensatz, und das Intervall auf etwa alle 5 Minuten eingestellt, was bisher in Ordnung zu sein scheint. Ich muss über Datenaufbewahrung, Abfrageeffizienz usw. nachdenken, aber für den Moment habe ich meine Frage selbst beantwortet, niemand hat etwas vorgeschlagen.