Teil 1 - Erste SchritteAD Monitoring mit BROFMONTeil 3 - Einrichtung des zentralen „Reportgenerators“

Teil 2 - Einrichtung der zu überwachenden Systeme

Autor: olc, MCSEboard.de

 

In unserem Beispiel sollen alle Domänencontroller der Domäne „FOREST1“, „CHILD1“ und „CHILD2“ mit in die Reports einfließen. Dazu wird auf dem Ordner \\forest1.test\data\BROFMON\Install das Installationsscript aufgerufen. Mit den notwendigen Parametern ausgestattet, kopiert es die notwendigen Dateien auf das Zielsystem und richtet den geplanten Task ein, der die gewünschten Daten sammelt und auf die zentrale „\Results“ Freigabe kopiert.

Eines ist an dieser Stelle wichtig zu erwähnen, weil wir später noch darauf zurück kommen werden, wenn es um die Anpaßbarkeit des BROFMON geht: In dem Verzeichnis, welches auf die Zielsysteme kopiert wird, sind zum einen die Scripts enthalten, die die gewünschten Tests aufrufen. Zum anderen liegen darin die notwendigen ausführbaren Dateien, die während der Tests benötigt werden. So ist standardmäßig etwa DCDIAG.EXE dabei. Möchte man zusätzliche Tests bereitstellen, kann man dies später tun, indem man die aufrufenden Scripts und die dazugehörigen ausführbaren Dateien (etwa repadmin.exe oder sc.exe) später auf die Systeme kopiert. Man kann aber natürlich auch schon bei der Ersteinrichtung die Dateien in das Quellverzeichnis \\forest1.test\data\BROFMON\Install und die entsprechenden Unterordner kopieren, dann stehen sie direkt beim Rollout schon bereit und werden standardmäßig mit ausgeführt, wenn auch die Testscripts erzeugt wurden.

Die Struktur des „Install“ Verzeichnisses sieht wie folgt aus:

Tests --> hier liegen die Batch-Dateien, die die Tests aufrufen und die „Results“ generieren; es ist auch eine Textdatei enthalten, die beschreibt, wie man weitere Tests hinzufügen kann

Tools --> standardmäßig enthalt dieses Verzeichnis das Unterverzeichnis „x86“, in dem die ausführbaren Testdateien enthalten sein müssen; sollen andere Plattformen ebenfalls bedient werden, müssen die entsprechenden Dateien unter „x64“ bzw. „ia64“ vorliegen

Außerdem sind zwei Dateien in unserem „\Install“ Verzeichnis vorhanden:

„InstBROFMON.cmd“ kopiert wie angesprochen die Daten auf das jeweilige Zielsystem
„RunBROFMON.cmd“ führt dann auf dem Zielsystem die Tests durch

Ein Aufruf der CMD-Scripte ohne Parameter zeigt die verfügbaren Optionen:

C:\>\\forest1.test\data\BROFMON\Install\InstBROFMON.cmd

 Error: TargetDirectory is a required field.


InstBROFMON.cmd /TARGET TargetDirectory /REPORT CentralReportDir
                [/RELPATH RelativePath] [/RETRY RetryCount]
                [/LOG LogFile] [/HOURS Interval]

Description:
    Installs the BROFMON suite on a branch DC.

Required Parameter List:
    /TARGET   TargetDirectory      Specifies the path where the BROFMON suite
                                   should be installed.  Local drive paths
                                   'C:\BROFMON' and UNC paths
                                   '\\MACHINE\C$\BROFMON' are supported.
                                   NOTE: 'RunBROFMON' task will be scheduled
                                      on the machine holding TargetDirectory.

    /REPORT   CentralReportDir     Specifies the path where the BROFMON suite
                                   should send reports.  This should be a
                                   common share across the enterprise.

Optional Parameter List:
    /RELPATH  RelativePath         Specifies the path that the TargetDirectory
                                   machine would use to access the directory
                                   locally. This option should be used if
                                   TargetDirectory is a UNC path.  See Example
                                   Usage below.

    /RETRY    RetryCount           Specifies the number of times to retry the
                                   installation if an error is encountered.
                                   Use -1 for infinite attempts.

    /HOURS    Interval             Specifies how many hours the targeted
                                   machine will wait between reporting.
                                   Valid values are 1-23.
                                   Interval defaults to 8.

    /LOG      LogFile              Specifies the path and file name of the
                                   log file to be written during the install.

Example Usage:
  InstBROFMON /TARGET C:\BROFMON /REPORT \\CENTRALSRV\REPORTS

  InstBROFMON /TARGET \\BRANCHDC001\C$\BROFMON /REPORT \\CENTRALSRV\REPORTS
              /RELPATH C:\BROFMON

Additional help is available in the Branch Office Guide for Windows Server 2003.

InstBROFMON Failed [1]

Wir starten nun den Kopiervorgang der Dateien und die Einrichtung des geplanten Tasks zum Beispiel mit folgender Kommandozeile – hierzu muß ein Benutzer verwendet werden, der auf dem Zielsystem administrative Rechte besitzt:

(Hinweis: den folgenden Befehl in eine Zeile schreiben)

C:\>\\forest1.test\data\BROFMON\Install\InstBROFMON.cmd /TARGET \\DMW2K301\c$\BROFMON /REPORT 
\\forest1.test\data\BROFMON\Results /RELPATH C:\BROFMON /HOURS 8

 TargetDirectory specified as '\\DMW2K301\c$\BROFMON'.
 CentralReportDir specified as '\\forest1.test\data\BROFMON\Results'.
 RelativePath specified as 'C:\BROFMON'.
 InstBROFMON will be scheduled to run every 8 hours.
 SourceDirectory assumed to be '\\forest1.test\data\BROFMON\Install\'
Creating TargetDirectory.
  Target: \\DMW2K301\c$\BROFMON
Copying BROFMON Suite
  Source: \\forest1.test\data\BROFMON\Install\
  Destin: \\DMW2K301\c$\BROFMON
Creating reports directory.
  Target: \\DMW2K301\c$\BROFMON\Reports
Creating temp directory.
  Target: \\DMW2K301\c$\BROFMON\Temp
Creating VariableSet.cmd File
   Target: \\DMW2K301\c$\BROFMON\VariableSet.cmd
Querying scheduled tasks on DMW2K301 to see if RunBROFMON is already scheduled.
Creating RunBROFMON scheduled task
   TargetMac: DMW2K301
   TaskToRun: C:\BROFMON\RunBROFMON.vbs
   Run Every: 8 Hours
Querying scheduled tasks on DMW2K301 to verify RunBROFMON has been scheduled.
   Found RunBROFMON task.
Creating CentralReportingDirectory directory.
  Target: \\forest1.test\data\BROFMON\Results\DMW2K301

InstBROFMON Success
Abb. 2

Auf dem Zielsystem „DMW2K301“ wurde nun ein geplanter Task eingerichtet, der die Tests alle 8 Stunden ausführt.

Weiterhin wurden die notwendigen BROFMON-Dateien in das in der Kommandozeile angegebene Zielverzeichnis „C:\BROFMON“ kopiert. Zusätzlich existiert nun auf der zentralen „\Results“ Freigabe ein Ordner mit dem Namen des Systems, in dem die Testergebnisse abgelegt werden, um von zentralen „Reportgenerator“ dann ausgewertet zu werden: \\forest1.test\data\BROFMON\Results\DMW2K301

Die Kommandozeile sollte nun für alle gewünschten Systeme ausgeführt werden. Man kann den Installationsvorgang übrigens auch mehrmals (ggf. mit geänderten Parametern) für ein Zielsystem laufen lassen – das Script überprüft zuerst, ob ggf. das Zielverzeichnis und der geplante Task existiert. Falls ja, werden die nicht vorhandenen Dateien ergänzt als auch der geplante Task gelöscht und danach noch einmal neu angelegt. Die Dateien bzw. das Verzeichnis wird nicht bei jedem Vorgang gelöscht, das schont das Netzwerk.

Da wir wie angesprochen die Ergebnisse von allen DCs der Domänen „FOREST1“, „CHILD1“ und „CHILD2“ haben wollen, führen wir in diesem Fall beispielsweise das folgende Script aus, welches erst die DCs der jeweiligen Domäne ausliest und dann in der parameterliste übergibt. Ausführen müssen wir das Script pro Domäne mit einem berechtigten Benutzer oder mit einem Benutzer, der in allen Domänen auf den Zielsystemen administrative Rechte besitzt.

C:\> FOR /F „tokens=2 delims==,“ %i in (‘dsquery computer “OU=Domain Controllers,DC=forest1,DC=test”’) do 
\\forest1.test\data\BROFMON\Install\InstBROFMON.cmd /TARGET Fehler! Hyperlink-Referenz ungültig. /REPORT 
\\forest1.test\data\BROFMON\Results /RELPATH C:\BROFMON /HOURS 8

In der FOR-Schleife muß nur die jeweilige Domäne angepaßt werden (ggf. ließe sich dies auch noch automatisieren) und die Kommandozeile wie angesprochen mit einem berechtigten Benutzer ausgeführt werden.

Nun liegen (wenn alles glatt gegangen ist) in dem zentralen „Results“ Verzeichnis \\forest1.test\data\BROFMON\Results ein paar mehr Verzeichnisse, nämlich für jeden DC eines.

Sobald der Zeitpunkt für den geplanten Task erreicht wurde, werden sich diese bisher leeren Verzeichnisse mit den Testergebnissen füllen. Um nicht allzu lange warten zu müssen, kann man die neuen geplanten Tasks für den Moment auch einmal manuell ausführen (Rechtsklick auf den Task und „Run“), um erste Ergebnisse zu bekommen.

Abb. 3

In der Abbildung 3 sieht man einen DCDIAG Durchlauf (also die Standard-Tests) ohne Fehler. Denn der BROFMON schreibt positive Ergebnisse, die den „FINDSTR“ Filter korrekt durchlaufen haben, in Dateien mit der Endung „*.result“ für jeden durchgeführten Test. Fehler hingegen werden in eine Datei mit der Endung „*.log“ geschrieben. Dadurch ist die Auswertbarkeit in dem später generierten HTML Report möglich. Mehr dazu findet sich wie schon oben angesprochen in der Textdatei „AddingTests.txt“ im „\BROFMON\Tests“ Verzeichnis bzw. bei uns umbenannt „\Install\Tests“ oder direkt auf den überwachten Systemen, in unserem Fall unter „C:\BROFMON\Tests\AddingTests.txt“.

An dieser Stelle stößt man zwangsweise auf die interne Funktionalität des BROFMON: Er führt die eingerichteten Tests durch und überprüft die Textergebnisse nach festen Mustern, die über einen „FINDSTR“ Filter geprüft werden. Dieser Filter findet dann im Ergebnis entweder den angegeben String  oder eben nicht. Falls ja, so ist der Rückgabewert „ERRORCODE“ gleich „0“ NULL (also „String gefunden“) und das Ergebnis wird in die Datei mit der Endung „*.log“ geschrieben. So ist es bei DCDIAG.EXE oder NETDIAG.EXE etwa möglich, nach „PASSED“ oder „FAILED“ in den Ergebnissen der Programmdurchläufe zu suchen. Ist ein Test „PASSED“, war dieser erfolgreich – ist ein Test als „FAILED“ markiert, benötigt das Ergebnis Aufmerksamkeit.

Da nur eine bestimmte Komponente betroffen sein kann und nicht alle, sind die standardmäßig mitgelieferten DCDIAG.EXE Tests sinnvollerweise streng einzeln unterteilt. So wird etwa die Dienstüberprüfung („dcdiag.exe /test:services“) nicht im gleichen Durchlauf geprüft wie etwa die FRS / SYSVOL Überprüfung („dcdiag.exe /test:frssysvol“). Wir werden später noch sehen, warum das sinnvoll ist. Eine Liste aller möglichen DCDIAG Tests gibt ein „dcdiag.exe /?“ aus.

Zu den daraus folgenden Möglichkeiten kommen wir später.

 

© MCSEboard.de, olc

Teil 1 - Erste SchritteAD Monitoring mit BROFMONTeil 3 - Einrichtung des zentralen „Reportgenerators“