PRTG - ExMetric
Einige Tage nachdem ich PRTG ExTracking geschrieben hatte, habe ich mit ExMetric einen zweiten PowerShell-Sensor entwickelt, der verschiedene Kennzahlen von Exchange ermittelt und an PRTG übergibt.
Aufgabenstellung
Aufgabe dieses Sensors ist die Erfassung bestimmter Exchange Kennzahlen, die in etwas größeren Abständen, z.B. stündlich oder täglich, ermittelt werden können. So interessieren mich z.B. Wachstum von Datenbanken, Anzahl von Mobilgeräten, Postfächern etc. über einen längeren Zeitraum Diese Zahlen verändern sich in der Regel aber nicht so stark, dass diese im 5-Minuten-Intervallen ausgelesen werden müssten.
Um die Anzahl der Skripte klein zu halten, habe ich alle Auswertungen in einem PowerShell-Script zusammengefasst, welches über einen Parameter "mode" gesteuert wird.
Berichte
Die Auswahl der ermittelten Werte zur Rückgabe an PRTG wird über den Parameter "-mode:xxxx" angefordert.
MODE Parameter |
Laufzeit |
Beschreibung |
---|---|---|
EASState |
13 Sek/1500 Devices |
Anzeige der Anzahl von Geräten nach ihrem „DeviceAccessState“, d.h.
|
EASType |
13 Sek/1500 Devices |
Anzeige der Anzahl von Geräte je „DeviceType“ Leider ist die Ausgabe für die verschiedenen Hersteller nicht immer übersichtlich. Eine Zusammenfassung nach Hersteller über Strings wäre hier denkbar. |
EASAge |
5 Min/1400 Devices |
Ermittelt den letzten erfolgreichen Synchronisationszeitpunkt je Gerät und liefert die Anzahl in vier Gruppen:
Dies ist nur eine numerische Auswertung, kein Reporting über Benutzer o.ä. Aufgrund es Rückgriffs auf "Get-ActiveSyncDeviceStatistics" läuft das Skript relativ lange. Beachten Sie den Timeout. |
EASOperator |
13 Sek/1500 Devices |
Liefert alle Mobilfunkprovider der Mobilgeräte. Gerade bei Firmen mit ausländischen Teilnehmern oder "Bring your own Device"-Umgebungen ist es schon interessant, welche Provider zum Einsatz kommen. |
DBUserCount |
6 Min/10000 Mailboxen |
Liefert alle Datenbanken und die Anzahl der Postfächer in jeder Datenbank. Der „Get-Mailbox“ braucht sehr lange und könnte sicher per ADSI schneller erfolgen. Oder man nutzt einen Ger-MaiboxDatabase um dann per ADSI einfach die Mailboxanzahl zu suchen. |
DBSize |
12 Sek/10 Datenbanken |
Liefert alle Datenbanken und deren aktuellen Größe in GB. Leider liefert das Commandlet "Get-mailboxstatabase" erst ab Exchange mit dem Parameter "-Status" auch die Datenbankgröße |
MailDomain |
5 Min/10000 Mailboxen |
Um zu jeder Datenbank die Anzahl der Mailboxen zu erhalten, muss man aktuell entweder alle Postfächer sammeln und dann nach HomeMDB gruppieren oder pro Datenbank die User gefiltert zusammen zählen. Beides dauert relativ lange. Eventuell stelle ich diesen Befehl noch mal auf ADSI um. Die Exchange Commandlets sind zwar "einfach" aber eben auch langsam. |
Wenn Sie dann alle Funktionen als einzelne Sensoren anlegen, dann kann das wie folgt aussehen:
Da alle Skripte "global" wirken, reicht eine einzelne Probe oder Server als Quelle.
Installation und Konfiguration
Das Skript ist darauf ausgelegt, auf einem Windows System mit installiertem PRTG-Sensor gestartet zu werden. PRTG startet per Default nur eine "nackte" 32bit PowerShell. Das Skript geht nicht davon aus, dass die Exchange Commandlets vorliegen oder eingebunden werden können, sondern bedient sich der Remote PowerShell. Dazu müssen Sie allerdings im Skript die Exchange Service URL hinterlegen.
Bitte lesen Sie auch die Hinweise auf PRTG Custom Sensor
prtgexmetric.1.2.ps1
PowerShell Sensor für PRTG. Nach dem Download die Extension ändern und im
Explorer die Datei "unblocken" (Da Download aus dem Internet)
Der Sensor wird als "Custom Sensor EXE/XML" angelegt. Beachten Sie bitte wie auch bei PRTG ExTracking:
- Execution Policy der 32bit
PowerShell
muss auf RemoteSigned oder schwächer gestellt werden - Credentials
Skript aufrufen mit Windows Anmeldeinformation auf dem Sensor oder von weiter oben vererbt - Timeout anpassen
Der Default von 60 Sekunden ist vielleicht zu kurz für ihre Umgebung - Wiederholintervall
Per Default würde PRTG den Sensor alle 5 Minuten starten. Passen Sie dies auf 1 Stunde oder länger an - Ausgabe in DEBUG-Datei
Es kostet kaum Performance aber erleichtert ungemein die Fehlersuche, wenn Sie die Ausgaben auch in eine Datei schreiben lassen. - Exchange PowerShell URI
anpassen
Ich hatte es schon geschrieben aber zur Sicherheit noch einmal die Erinnerung: Es ist höchst unwahrscheinlich, dass sie auf https://nawex001.netatwork.de/PowerShell eine Antwort bekommen.
Wenn der Sensor das erste Mal gelaufen ist, können Sie per Konfiguration der Channels bestimmen, ob z.B. "#total" angezeigt wird.
Ausgabe
Die Ausgabe ist wieder PRTG-Typisch und unspektakulär. Ein paar Grafen mit verschiedenen Linien, die entsprechend die Werte der gemessenen Daten über die Zeitachse anzeigen.
- EASAge
Gut zu sehen sind hier die verschiedenen Werte für die letzte Synchronisation.
Ein nicht unerheblicher Teil der Geräte wird wohl am Wochenende "still" gelegt. Damit fallen Sie aus dem "Last24h" raus und erscheinen unter "Last7d". - DBSize
Auch die Auflistung der Datenbanken und deren Wachstum über lange Zeit ist aufschlussreich
Sie sehen hier dass die Postfächer anscheinend wirklich durch das automatische Exchange Provisioning gleichmäßig verteilt werden.
Bitte haben Sie noch etwas Geduld. Aufgrund der großen Zeitspanne zwischen Aufrufen muss ich noch etwas warten, bis die Daten auch sinnvoll darzustellen sind.
Performance und Optimierung
Die Ermittlung einiger Daten kann speziell in größeren Umgebungen auch einige Minuten dauert. In einem PowerShell-Skript sind verschiedene Routinen zusammengefasst und werden über einen Parameter „Mode“ abgerufen. Das Skript kann daher von mehreren Sensoren genutzt werden. Folgende Werte werden geliefert und sind entsprechend darstellbar.
Anfangs hatte ich überlegt, dass das Skript die Kennzahlen per PowerShell ermittelt und in einem DateiCache zwischenspeichert. Bei jedem Aufruf könnte das Skript prüfen, ob die Daten im DateiCache noch aktuell genug sind und so die Exchange Abfragen reduzieren. Die Abfrage von 1500 Mobilgeräten dauert unter Exchange 2010 weniger als 10 Sekunden zzgl. dem Zeitaufwand für die Herstellung der Remove PowerShell. Das ist aber wenig, wenn das Skript eh nur alle Stunde einmal aufgerufen wird. PRTG erlaubt über den „MUTEX“ auch, dass das Skript nur einmal gleichzeitig läuft, selbst wenn es in mehreren Sensoren verwendet wird. Das Skript ist so ausgelegt, dass ein solcher durchaus nachgerüstet werden kann, wenn sehr große Firmen diese Auswertungen wünschen.
Einzig die Auswertung der ActiveSync-Statistik dauert deutlich länger. Hier kann Exchange ca. 1500 Geräte in 5 Minuten ermitteln. Auch die Auswertung der User pro Datenbank ist aufwändig und dauert länger.
Weitere Links
-
SNMP Grundlagen
Die ersten Schritte -
SNMP Intern
Details zu SNMP unter Windows und die Integration in Perfmon - SNMP mit Windows
- Überwachung von Exchange
-
Audiocodes Mediant 1000
Überwachung der ISDN-Verbindungen mit SNMP -
How can I monitor my available bandwidth 24/7?
http://www.paessler.com/blog/2008/08/20/network-monitoring-basics/how-can-i-monitor-my-available-bandwidth-247 - MRTG Monitoring
- RRDTool
- Perfgraph 3.0
http://www.codefromthe70s.org/perfgraph3.aspx - Manage Engine (Freeware auf 10 Knoten begrenzt)
http://www.manageengine.com/products/opmanager/download-free.html
http://www.manageengine.com/products/eventlog/download-free.html - LoriotPro (Freeware auf 10 Knoten begrenzt)
http://www.loriotpro.com/Products/Features/Summary_Free_Edition_EN.php - Zenoss
http://community.zenoss.org/docs/DOC-3240?noregister
OpenSource auf Unix, auch als fertige VMs - ManageEngine NetFlow Analyzer
http://www.manageengine.com/products/netflow/index.html - MRTG mit der FRITZ! Box verwenden
http://www.juerging.net/projekte/FRITZ! Box-MRTG/
http://www.schraegstrichpunkt.de/FRITZ! Box-trafficauswertungen-mit-mrtg-unter-windows/
http://tuxpool.blogspot.com/search/label/UPnP Blog des Autors zu UPNP - Server Inspector 3.3 (Freeware-Version verfügbar)
http://www.optcon.de/server-inspector