Exchange Überwachungspraxis - Performance Counter
Exchange bindet durch die Installation sehr viele Performance Counter in das System ein, welche nicht zur zur Suche im Fehlerfall, sondern auch zur Messung der aktuellen Leistung geeignet sind. Übrigens können diese Counter auch per SNMP abgefragt werden.
- Monitoring Without System Center Operations Manager
http://technet.microsoft.com/en-us/exchange/bb201720.aspx - Windows-Verwaltung Fühlen Sie den Puls Ihres Servers
http://technet.microsoft.com/de-de/magazine/cc718984.aspx
Siehe dazu auch MSXFAQ.DE:PS Perfmon
Perfmon
Der Windows Performance Monitor ist das optimale Tool zur Überwachung des Servers. Er kann sowohl in Echtzeit die verschiedenen Parameter anzeigen, Sie bei Überschreitungen von Grenzwerten warnen und sogar langfristig Daten protokollieren. Mit Windows NT 4.0 muss er dazu aber interaktiv laufen oder mit Hilfsmitteln aus dem Ressource Kit (MONITOR.EXE) als Dienst eingerichtet werden. Bei Windows 200x ist PERFMON automatisch ein Dienst.
Nur ehe wir müssen, müssen wir wissen, welche Werte sinnvoll zu betrachten sind. Hier ist zu unterscheiden zwischen Alarmgrenzen und Trendwerten. Die individuellen Grenzen müssen natürlich je Server bestimmt werden.
Alarmgrenzen |
Es gibt Grenzen, die ein Server nicht erreichen sollte, bzw. Uns sagen, das aktuell oder sehr bald etwas nicht mehr wie erwartet funktioniert. Diese sollten z.B.: mit der Alarmfunktion des Performance Monitors überwacht werden. Diese Überwachung sollte Zeitnah (z.B. alle Minute) erfolgen. |
Trendwerte |
Zudem sollten bestimmte Werte z.B. mehrfach täglich aufgezeichnet werden, um über die Laufzeit eine Entwicklung erkennen zu können. Damit diese Datenmenge ihren Server nicht auffüllt, sollten sie hier nur mit Bedacht Werte aufnehmen und den freien Platz der Festplatte mit überwachen. |
Trendwerte können geschickt eingesetzt ihnen eine Planungssicherheit geben, wenn es um den Ausbau des Servers geht.
Parameter
Hier finden Sie eine kurze Liste der interessanten Werte, die für eine erste Beobachtung in Frage kommen. Natürlich können Sie für sich selbst Schwerpunkte setzen.
Wert | Beschreibung |
---|---|
CPU-Belastung % |
Alarm, wenn mehrfach bei 100 % |
Pagefile Nutzung % |
Alarm, wenn über 70% |
Freie Plattenkapazität |
Alarm, wenn unter xx MByte je Platte individuell |
Pages/Sek |
Alarm bei überschreiten eines Grenze |
Disktime in % |
Alarm wenn über 80 % |
Interrupts/s |
Alarm bei Überschreitung |
Netzwerkpakete /s |
Alarm bei Überschreitung |
Freier Speicher |
Alarm wenn unter 4 Megabyte !!! |
MSExchangeIS RPC Calls/Sek |
Ein guter Counter über die Aktivität der Clients. Hohe werde sind nicht unbedingt schlecht, sondern sagen nur dass der Server etwas zu tun hat |
MSExchangeIS RPC Requests |
Exchange akzeptiert per Default maximal 100 RPC Requests (fest codiert). Wenn der Wert an diese Grenze stößt, stocken die Clients und der Server ist zu langsam |
Exchange Queues |
Alarm bei Überschreitung einer bestimmten Länge |
Exchange Store Messages/Sek |
Alarm bei Überschreitung |
Ob der Server wirklich "busy" ist, sagen nur die Performancecounter. Auch ein Server mit 512 MB RAM und 700 MB "in Benutzung" ist nicht automatisch am auslagern.
Es ist natürlich eine gute Idee, die Aufnahme der Wert und die Überwachung der Server nicht auf dem Server selbst durchzuführen, sondern auf einer eigens dafür abgestellten Maschine laufen zu lassen. Die zentrale Kontrolle und Konfiguration wie auch der Zugriff auf historische Daten, wenn der Server eben nicht mehr online ist, können Hilfsmittel für weitere Entscheidungen sein.
Eine ausgefeilte Überwachung ist wenig interessant für kleine Firmen oder Teilzeitadministratoren, da der Aufwand für Planung, Implementation und Betrieb eher in Tagen zu müssen ist. Wenn SNMP interessant wird, dann ist Überwachung und Betrieb sowieso ein Thema. Auch die Kosten für eine "richtige" Managementsoftware ist meist fünfstellig und schon daher kein Setup, welches einmal aufzurufen ist. sondern das gesamte Thema bedeutet einen permanent mit einzuplanenden Zeitaufwand. Die Ergebnisse sind aber nicht nur interessant, sondern erlauben erst eine Sicherstellung einer bestimmten Verfügbarkeit.
Berechtigungen
Um auf Performance Monitore zugreifen zu können, müssen sie entsprechende Berechtigungen haben. Windows sieht dazu mittlerweile zwei lokale Gruppen vor, die Sie mit "lusrmgr.msc" sehen und bearbeiten können.
Englisch | Deutsch | Beschreibung |
---|---|---|
Performance Log Users |
Leistungsprotokollbenutzer |
Mitglieder dieser Gruppe können die Protokollierung von Leistungsindikatoren planen, Trace-Anbieter aktivieren und Ereignistraces sammeln, sowohl lokal als auch über Remotezugriff auf diesen Computer. |
Performance Monitor Users |
Leistungsüberwachungsbenutzer |
Mitglieder dieser Gruppe können lokal und remote auf Leistungszählerdaten zugreifen |
Normalerweise sind beide Gruppen "leer". Damit kann erst einmal nur ein Administrator oder LocalSystem oder NetworkSystem die Performance Counter lesen.
Zum Anlegen von Performance Countern müssen Sie immer lokaler Administrator sein. Dieses Berechtigung kann wohl nicht delegiert wurden.
- Error message when you try to access the Performance Monitor (Perfmon.exe)
on a remote computer: "Access Is Denied"
https://support.microsoft.com/en-us/topic/error-message-when-you-try-to-access-the-performance-monitor-perfmon-exe-on-a-remote-computer-access-is-denied-cedd0c42-4fd6-fa4a-47fd-d86c7b456ace - PerformanceCounterPermissionAttribute Class
https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.performancecounterpermissionattribute?view=windowsdesktop-9.0 - Adding a non-administrator user in the Performance Business Monitor
users group
https://www.ibm.com/docs/en/capm?topic=cmhvm-adding-non-administrator-user-in-performance-business-monitor-users-group
Perfmon Intern
Das Performance Counter System von Windows ist manchmal ein sehr empfindliches System, da es durch Drittprodukte natürlich erweitert werden kann. Wenn Sie z.B. Exchange installieren, dann fügt das Setup entsprechende Erweiterungen in das Betriebssystem ein. Und das passiert an mehreren Stellen
- c:\WINDOWS\system32\perfc*.dat (meist 007 oder 009)
Datenbank, welche die Liste der Counter selbst enthält - c:\WINDOWS\system32\perfd*.dat (meist 007 oder 009)
Enthält die dazu gehörige Beschreibung zu den Countern - Registry
In der Registrierung ist nun je Dienst ebenfalls ein Verweis zu den Performance Countern und den Einträgen in den Datenbanken.
Fatalerweise müssen diese Einträge auch sauber übereinstimmen und sind nicht auf allen Systemen identisch. Ergänzt eine neue Software eigene Counter, so muss Sie dazu die Counter und Hilfebeschreibungen in die Datenbank eintragen und die Verweise darauf in der Registrierung. Hierbei helfen die Programme "LODCTR.EXE" und "UNLODCTR.EXE", die anhand entsprechender INI-Dateien gesteuert werden, die vom Hersteller mitgeliefert werden. Suchen Sie auf einem Exchange Server einfach mal nach der Datei c:\WINDOWS\system32\esentprf.ini. Sie wird in etwa wie folgt aussehen:
Anhand dieser Informationen modifizieren LODCTR und UNLODCTR entsprechende Einträge in der Registrierung. Die Übersicht der installierten Performance Counter mit den Verweisen auf die Datenbank steht unter
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
Hier gibt es die Einträge "Counter" und "Help" welche die einzelnen Counter samt ihrem Index enthalten:
Eine Anzeige ist sehr einfach mit dem Programm EXCTRLST.EXE (exctrlst.exe Extensible Counter list http://www.Microsoft.com/windows2000/techinfo/reskit/tools/existing/exctrlst-o.asp) möglich.
Sie sehen also, dass auch in den Tiefen von Windows einige Einträge stimmen müssen, damit die Performance Counter auch sauber funktionieren. Die Nummern müssen zudem nicht lückenlos sein.
Counter "reparieren"
Wenn Sie daher beim Start von PERFMON im Eventlog die Meldungen bekommen, dass einige Performance Counter nicht gefunden werden konnten, dann liegt es meist immer hier vergraben. Oftmals hilft dann die Deregistrierung und erneute Registrierung der Counter oder eine Suche nach "LODCTR" in der TechNet und Knowledgebase.
- Informationen, wo in der Registrierung die aktuellen höchsten
Perfmoncounter stehen
http://msdn.Microsoft.com/library/en-us/perfmon/base/removing_counter_names_and_descriptions_from_the_registry.asp - Nutzung von UNLODCTR
http://www.Microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/unlodctr.mspx - Informationen zur Counter Collection
http://msdn.Microsoft.com/library/en-us/perfmon/base/counters.asp - 300956 How to manually rebuild Performance Counter Library values
Mit dem Befehl LODCTR können Sie auch die Performance Counter neu aufbauen lassen. Starten Sie dazu den Dienst der Leistungsüberwachung und dann den Befehl "LODCTR /r" ein einer Shell:
Genau genommen muss man das für 32 und 64bit in einer Admin-CMD ausführen:
Rem Counter aus dem Backup wieder herstellen. C:\Windows\system32\lodctr.exe /R C:\Windows\SysWOW64\lodctr.exe /R Rem Resync der Performance Counter. C:\Windows\System32\wbem\winmgmt.exe /RESYNCPERF C:\Windows\SysWOW64\wbem\winmgmt.exe /RESYNCPERF REM Vergessen Sie nicht die Dienste neu zu starten. Restart-Service PLA Restart-Service winmgmt -Force
Besonders häufig scheint es auf Servern Probleme mit "BITS" und "WmiApRpl" zu geben.
- Werte manuell wiederherstellen
https://support.microsoft.com/de-de/help/300956/how-to-manually-rebuild-performance-counter-library-values - Manually rebuild performance counters for Windows Server 2008 64 bit or
Windows Server 2008 R2 systems
https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/manually-rebuild-performance-counters - Windows Leistungsüberwachung reparieren
https://www.borncity.com/blog/2011/06/01/windows-leistungsberwachung-reparieren/ - The Open Procedure for service XXX in
DLL "C:WindowsSystem32XXX.dll" failed.
Performance data for this service will not
be available
https://www.admin-enclave.com/en/articles/windows/306-resolved-the-open-procedure-for-service-bits-in-dll-c-windows-system32-bitsperf-dll-failed-performance-data-for-this-service-will-not-be-available-the-first-four-bytes-dword-of-the-data-section-contains-the-error-code.html - Solving WmiApRpl and BITS errors with SharePoint 2013 on Windows Server 2012
https://weblogs.asp.net/wesleybakker/Solving-WmiApRpl-and-BITS-errors-with-SharePoint-2013-on-Windows-Server-2012 - Rebuild Performance Counters
https://blakedrumm.com/blog/rebuild-perf-counters/ - Troubleshoot Windows System and Performance Counters
https://checkmk.atlassian.net/wiki/spaces/KB/pages/9472924/Troubleshoot+Windows+System+and+Performance+Counters - Developer Guide: Working with Performance Counters
https://icinga.com/docs/icinga-for-windows/latest/doc/900-Developer-Guide/51-Working-with-Performance-Counters/ - Check Windows Performance Monitor
Counters
https://exchange.icinga.com/juangranados/Check%20Windows%20Performance%20Monitor%20Counters
Exchange Counter
Microsoft Exchange ist eine Software mit sehr vielen Performance Countern, bei denen manchmal auch was schief gehen kann. Mit jedem Exchange Update werden alle bisherigen Performance Counter entfernt und dann wieder neu mit der aktuellen Version installiert. Das funktioniert oft nicht, wenn Monitoring-Programme (Perfmon.exe, Nagios, Icinga, Splunk, PRTG etc.) über die bekannten Schnittstellen die Counter auslesen und damit ggfls. blockieren. Daher sollten Sie vor der Installation solche Programme und Zugriffe möglichst unterbinden oder Windows WMI durchstarten.
Ansonsten kann es sein, dass Sie die Performance Counter korrigieren müssen. Das ist aber nicht einfach der GUI möglich, denn wenn Sie das Exchange Setup starten, dann gibt es keine "Reparatur"-Option und mal schnell deinstallieren und neu installieren ist keine gute Idee. Ein Weg ist der Start einer Reparaturinstallation per Kommandozeile:
Setup /m:upgrade /IAcceptExchangeServerLicenseTerms
Damit erreichen Sie meist, dass Exchange das Setup komplett wiederholt, obwohl die Software eigentlich schon installiert ist. Denken Sie aber daran, dass bestimmte Voreinstellungen wieder reaktiviert werden könnten. Dies gilt z.B. für Exchange Extended Protection, welches seit Anfang 2024 durch jedes Updates immer wieder per Default aktiviert wird.
Denken Sie auch daran, dass Sie nach der Installation des letzten CU-Updates auch ggfls. das letzte Security Update noch einmal installieren und konfigurieren müssen.
Für die manuelle Neuinstallation der Exchange Performance Counter hat Kevin (https://blog.kmsigma.com/) ein nettes Skript bereitgestellt, welche ich mir hier "gesichert" habe.
# Source: https://blog.kmsigma.com/2016/11/08/where-are-my-exchange-2016-performance-counters/ $InstallPath = Get-Item ` -Path ( Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Setup -Name MsiInstallPath | Select-Object -ExpandProperty MsiInstallPath ) ` -ErrorAction SilentlyContinue Add-Pssnapin Microsoft.Exchange.Management.PowerShell.Setup $PerfFiles = Get-ChildItem -Path ( Join-Path -Path $InstallPath -ChildPath "\Setup\Perf\*.xml" ) $i = 0; $iCount = $PerfFiles.Count ForEach ( $PerfFile in $PerfFiles ) { $CounterName = ( ( Get-Content -Path $PerfFile.FullName ) ).Category.Name Write-Progress ` -Activity "Updating Performance Counters" ` -CurrentOperation "[$( $i + 1 )/$( $iCount )] $( $CounterName )" ` -PercentComplete ( ( $i / $iCount ) * 100 ) Write-Host "Removing Performance Counter: $CounterName" -Foreground Red Remove-PerfCounters -DefinitionFileName $PerfFile.FullName Write-Host "Adding Performance Counter: $CounterName" -Foreground Green New-PerfCounters –DefinitionFilename $PerfFile.FullName $i++ } Write-Progress -Activity "Updating Performance Counters" -Completed
Es entfernt und reinstalliert die Exchange Performance Counter
- Where are my Exchange 2016 Performance Counters?
https://blog.kmsigma.com/2016/11/08/where-are-my-exchange-2016-performance-counters/ - AppInsight for Exchange: Missing
performance counters
https://solarwindscore.my.site.com/SuccessCenter/s/article/AppInsight-for-Exchange-Missing-performance-counters?language=en_US
Performance Counter und WMI
Windows Performance Counter können auch per WMI abgefragt werden.
Performance Counters can be consumed through WMI's COM and scripting interfaces. WMI also has support für instrumenting performance counters (by writing a WMI High Performance provider). Performance counters exposed by high performance providers can be seen in Perfmon by running "Perfmon /wmi". In Windows XP and later, these counters appear in Perfmon by default.
Ich selbst nutze WMI in Skripten, um z.B. mit QStatus die Warteschlangen abzufragen. Auch der Zugriff per "Permon /WMI" hat mir schon mehrfach geholfen, wenn die normalen Wege zum Counter durch eine fehlerhafte Drittsoftware kaputt gemacht wurden.
- Windows Management Instrumentation FAQ
http://www.microsoft.com/technet/community/en-us/management/wmi_faq.mspx
Remote Zugriff auf Performance Counter
Performance Counter könne nicht nur lokal, sondern auch über das Netzwerk per RPC erreicht werden. Sie können so von einem zentralen Monitoring-System die Werte einsammeln. Beachten Sie dabei aber, das RPC-Verbindungen eine gewisse Last generieren und bei einer fehlenden Verbindung Lücken in der Erfassung zu erwarten sind. Für ein Enterprise Monitoring ist ein lokaler Agent, der die Daten erfasst und an eine Zentrale meldet, vermutlich besser.
Performance Counter und PowerShell
Mit der PowerShell ist es sehr einfach, Performance Counter auszulesen und sogar eigene Counter anzulegen. Siehe auch PowerShell Performance Counter.
# Alle Counter exportieren Get-Counter -ListSet * | Select-Object -ExpandProperty Counter # Nur CPU-Counter ausgeben Get-Counter -ListSet *processor* | Select-Object -ExpandProperty Counter
Performance Counter und SNMP
Leider kann man nicht alle Performance Counter direkt per SNMP abfragen. Dazu sind sogenannte Extension Agents erforderlich, die Microsoft nicht für alle Produkte mitliefert. Aber Dritthersteller sind hier natürlich sofort zur Stelle, um entsprechende Agenten nachzuliefern. Auf SNMP Intern finden Sie Links und Beschreibungen zu solchen Produkten.
- SNMP Intern
- SNMP mit Windows
- http://sourceforge.net/projects/getperfmon
- http://forums.cacti.net/about27929.html
Perfmon-Aufzeichnung konvertieren
Vielen unbekannt ist das Programm RELOG", welches bei Windows zum Standard Lieferumfang gehört. PERFMON kann ja Performance Counter in eine Binärdatei aufzeichnen, welche dann wieder mit Perfmon geöffnet und ausgewertet werden kann. Was machen Sie aber, wenn PERFMON ihnen nicht zur Auswertung reicht ?
Dann ist RELOG ihr Freund, denn RELOG liest die Binärdateien und kann dies als CSV oder TXT-Datei wieder abspeichern. RELOG kann die Daten aber auch über eine ODBC-Verbindung in eine beliebige von Windows ansprechbare Datenbank schreiben, z.B. den SQL-Server. Damit stehen ihnen nun weitere Auswertehilfsmittel zur Verfügung, z.B. SQL Reporting Services. Siehe auch SQL-Server
Das ist natürlich alles kein Ersatz für ein echtes permanentes Überwachung mit langfristigen Daten, Konsolidierung von Daten und Alarmierung bei Grenzwertüberschreitung, wie dies z.B. MOM2005 liefern kann.
Weitere Links
- Überwachung von Exchange
-
WMI
Auch Perfmon kann per WMI die Daten auslesen. Einfach mit "perfmon /WMI" starten - Exchange 2007 Monitoring Common Counters
http://technet.microsoft.com/en-us/library/cc671175(EXCHG.80).aspx - deutscher TechNet Artikel zu Perfmon
http://www.Microsoft.com/germany/technet/datenbank/articles/600515.mspx - MOM2005 Microsoft Operation Manager 2005
- Perf How to Enable Extended ESE Performance Counters
http://www.Microsoft.com/technet/prodtechnol/exchange/guides/StoragePerformance/0e24eb22-fbd5-4536-9cb4-2bd8e98806e7.mspx?mfr=true
Anzeige der Laufwerke im ESE-Performance, z.B.: beim Einsatz von NAS
HKLM\SYSTEM\CurrentControlSet\Services\ESE\Performance\Show Advanced Counters: DWORD = 1
- Zu den "Advanced Performance Countern" gibt es aber noch eine witzige
Story
"From crush to product documentation: The story of Squeaky Lobster"
http://blogs.technet.com/b/exchange/archive/2006/06/15/427966.aspx
- Windows-Verwaltung Fühlen Sie den Puls Ihres Servers
http://technet.microsoft.com/de-de/magazine/cc718984.aspx - Performance Monitor Wizard
http://www.Microsoft.com/downloads/details.aspx?FamilyID=31fccd98-c3a1-4644-9622-faa046d69214&DisplayLang=en - Server Performance Advisor
http://www.Microsoft.com/downloads/details.aspx?familyid=61A41D78-E4AA-47B9-901B-CF85DA075A73&displaylang=en - Exchange Insider: Windows Server 2003 System Monitor Tips für Exchange
Server Administrators
http://www.Microsoft.com/technet/prodtechnol/exchange/2003/insider/w2k3_sysmon.mspx - 146004 SNMP Counter Values Are unreliable in SMP Computers
- 156494 XADM: Restoring Lost Performance Counters für Exchange
- 182502 XADM: Changes Made to Performance Monitor in Exchange 5.5
- 192742 XADM: PerfMon Counters unavailable After Applying 5.5 SP1
- 231734 XCON: Performance Monitor Counters für Message Categorizer
- 296073 XADM: Monitoring für Exchange 2000 Memory Fragmentation
- 317411 XADM: How to Gather Data to Troubleshoot Exchange Virtual Memory Issues
- 300956 How to Manually Rebuild Performance Counter Library Values
- 832951 "Avg Recipients/msg Sent" SMTP Server performance counter is incorrect in Exchange 2000 Server
-
http://www.exchangeadmin.com/Articles/Index.cfm?ArticleID=7696
Tipp wie man per Perfmon die Warteschlangen überwacht und notfalls den IMC herunter fährt. - Troubleshooting Exchange 2000 Performance
http://www.Microsoft.com/downloads/release.asp?releaseid=43346
Troubleshooting Exchange 2000 Performance.exe - 1,111 Kb
http://download.Microsoft.com/download/exchplatinumbeta/
Books/1.0/W982KMeXP/EN-US/
troubleshooting%20exchange%202000%20performance.exe - Perfmon API
http://msdn.Microsoft.com/library/psdk/pdh/perfdata_4o9x.htm - Fujitsu Siemens Sizing White Papers
http://vilpublic.fujitsu-siemens.com/vil/pc/vil/primergy/performance/sizing/ sg_exchange-server_d.doc und http://www.fujitsu-siemens.de/rl/produkte/primergy/benchmarks.html