SCOM Agent Rollout mit SCCM

Wenn bereits eine existierende SCCM Infrastruktur auf den Servern exisitert, dann macht es eventuell Sinn, den SCOM Client damit zu verteilen.

Dafür einfach ein Paket mit den Quelldateien aus dem AgentManagement Ordner vom SCOM Server erstellen.

Darin im x86 und x64 Ordner folgende Batchdatei install.cmd hinterlegen:

rem Sicherheitshalber msxml6 installieren (Voraussetzung)

msiexec.exe /i “%~dp0MSXML6.msi” /qn /m scom07 /l* “%systemroot%msxml6.log” REBOOT=REALLYSUPPRESS

msiexec.exe /i “%~dp0MOMAgent.msi” /qn USE_SETTINGS_FROM_AD=1 MANAGEMENT_GROUP=<hier name dermanagement group> MANAGEMENT_SERVER_DNS=<hier dns name  des scom servers oder gateways> ACTIONS_USE_COMPUTER_ACCOUNT=1 /m scom07 /l* “%systemroot%scomx86.log” REBOOT=REALLYSUPPRESS

Diese Batchdatei als Programm (jeweils für x86 und x64) hinterlegen. Als Collection in SCCM verwende ich im allgemeinen eine Sammelcollection, die die alle Zielsysteme hineinkommen. Darunter lege ich eine Filtercollection an, die aus den Zielsystemen nur die herausfiltert, die den Agent noch benötigen. Hier bietet sich eine Subselection als Query an, die alle Systeme ausschließt die den Dienst bereits haben. Eine Hardwareinventur (HW)  wird im Allgemeinen häufiger gemacht als eine Softwareinventur (SW). Daher erhält man die Infos über Dienst (HW) schneller zurück als Dateiinformationen aus der SW-Inventur.

Eine Query könnte so aussehen:

select SMS_R_System.ResourceID,SMS_R_System.ResourceType, SMS_R_System.Name,SMS_R_System.SMSUniqueIdentifier, SMS_R_System.ResourceDomainORWorkgroup, SMS_R_System.Client from SMS_R_System inner join SMS_G_System_SERVICE on SMS_G_System_SERVICE.ResourceID = SMS_R_System.ResourceId where SMS_R_System.ResourceId not in (select SMS_R_System.ResourceId   from  SMS_R_System inner join SMS_G_System_SERVICE on SMS_G_System_SERVICE.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SERVICE.Name = “HealthService”)

Als Collectionlimit die übergeordnete Sammelcollection eintragen. Die Ankündigung läuft dann auf der Filtercollection.

Posted in Operations Manager, System Center | Tagged , , , , , , , | Leave a comment

OpsMgr ADDS 2003 Management Pack Bug

Heute konnte ich mir endlich die Zeit nehmen einen Alert im SCOM genauer zu betrachten. Obwohl über 2GB auf der NTDS Platte des DCs frei waren und die Subdomäne nur eine Datenbankgröße von 512MB hat, meldete SCOM regelmäßig, dass die Platte zu voll sei.

In diesem Fall sieht die Berechnung folgendermaßen aus:

Name der Regel im MP: AD Database Drive Free Collection

Aktuelle Größen:

ntds.dit: 454672 kbytes
ntds.logs: 10240 kbytes
(das MP Skript betrachtet nur das edb.log File)

Folgende Defaultparameter werden an das Skript übergeben (sind überschreibbar):
<Threshold_DIT>0.2</Threshold_DIT> (also 20%)
<Boundary_DIT>500000</Boundary_DIT>
<Boundary_LOG>200000</Boundary_LOG>
<Threshold_LOG>0.05</Threshold_LOG>

Die Berechnung sieht so aus (aus dem Skript kopiert):

lReserveLog = lSizeDB * CDbl(LOG_THRESHOLD)
If (lReserveLog < LOG_BOUNDARY) Then
lReserveLog = LOG_BOUNDARY
End If
lReserveDB = lSizeDB * CDbl(DIT_THRESHOLD)
If (lReserveDB < DIT_BOUNDARY) Then
lReserveDB = DIT_BOUNDARY
End If

Anhand dieses Beispiels:

  • DIT: 454MByte*0.2 -> 90,8MB (<500000) -> Boundary 500MByte
  • LOG: 454MByte*0,05 -> 22,7MB (<200000) -> Boundary 200MByte

Die Berechnung der Logfilegröße basiert auf der ADDS Datenbankgröße (DIT)

Die Logdateien und die DB liegen auf der gleichen Partition. Daher gilt:

If (lFreeSpaceDB < (lReserveDB + lReserveLog)) Then
bSuccess = False

strMessage = “Free space (” & lFreeSpaceDB & “KB) on drive ” &  UCase(Left(strPathDB, 2)) & ” is lower than the required reserved space for AD Database and Log file. It should be at least ” & (lReserveLog + lReserveDB) & ” KBytes.”

Somit muss der freie Platz größer als 700MByte sein. Was in diesem Beispiel zutrifft.

Trotzdem erscheint im Eventlog und im SCOM die Fehlermeldung:

AD Database and Log : Free space (2614404KB) on drive D: is lower than the required reserved space for AD Database and Log file.
It should be at least 3182704 KBytes.

Wenn man 3182704 durch die DB Größe (454672) teilt erhält man exakt 7. Die entspricht 2+5, d.h. es gibt ein Problem mit dem Komma-Trenner (, in deutsch, . in english)

Ich habe dies überprüft, in dem ich das Skript angepasst habe, damit es die erhaltenen Parameter auch in die Registry speichert (setData..):
Die Boundary Werte sind korrekt, aber Threshold Werte sind auf 5 (log) und 2 (dit) !

Lösung:

Override auf deutschen DCs mit 0,05 und 0,2

Test:
Die Datenbankplatte wurde etwas gefüllt. Kurz darauf wurde folgende korrekte Meldung generiert:

AD Database and Log : Free space (225996KB) on drive D: is lower than the required reserved space for AD Database and Log file. It should be at least 700000 KBytes

Natürlich könnte man als Alternativen Workaround immer die 7fache Größe der Datenbank als freien Speicherplatz bereitstellen, aber gerade wenn man Domänencontroller virtualisiert und die Platten vollständig reserviert, ist dies kein gangbarer Weg. Microsoft sollte hier wie üblich auf die Ländereinstellungen achten! (Oder Nachkommastellen vermeiden. Die Prozentwerte könnten auch als 5% angegeben werden, anstatt 0.05)

Posted in Operations Manager, System Center | Tagged , , , , | Leave a comment

Sharepoint 2007 Management Pack

Das Sharepoint 2007 (MOSS) Management Pack erzeigt leider einige Skriptfehler auf allen nicht Sharepoint Systemen.

Es gibt verschiedene Lösungen im Web dazu. Die meisten beschreiben ein Override, dass die Zielgruppe auf nur Sharepoint Systeme einschränkt. Dies ist in meinen Augen eine schlechte Lösung, da gerade der Charm an SCOM das automatische Discovery ist.

Daher gibt es noch eine weitere Lösung, die leider etwas versteckt ist: Chris Fox hat ein Management Pack entwickelt, dass durch einige geschickte Gruppen den Fehler korrigiert ohne die Dynamik zu verlieren: Für uns bedeutet das ein einfaches Import des MPs in SCOM. Zu finden ist es auf der OpsManJam Seite.

Posted in Operations Manager, System Center | Tagged , | Leave a comment

HAL austauschen

Meiner SCOM-Testmaschine wollte ich per ESX einen zweiten Prozessor spendieren, da sie nur sehr langsam reagierte und die Datenbank auf dem gleichen System läuft.

Die übliche und einfache Methode unter Gerätemanager und Computer von ACPI auf Multiprozessor ACPI umzuschalten funktioniert unter Windows 2003 R2 nicht mehr, um die zweite CPU nutzen zu können. Eine kurze Webrecherche hat zwar unzählige Möglichkeiten ergeben, aber die in meinen Augen einfachste und eleganteste habe ich im VMWare Forum gefunden:

Jimmy Bondi 1 posts since
Nov 28, 2005

16. Re: How to change Windows 2003 server Hal back to Uniprocessor Nov 28, 2005 2:25 PM
in response to: ReverendDeuce
There is also another a very simple way to change back to Uniprocessor!

Simply change the following lines in your hal.inf or create a copy and select it manually when changing the “hal-driver”:

[GENDEV_SYS.NTx86]
%E_ISA_UP.DeviceDesc% = E_ISA_UP_HAL, E_ISA_UP, MPS_UP, MPS_MP, ACPIPIC_UP, ACPIAPIC_UP, ACPIAPIC_MP ; Standard PC
%ACPIPIC_UP.DeviceDesc% = ACPIPIC_UP_HAL, ACPIPIC_UP, ACPIAPIC_UP, ACPIAPIC_MP ; ACPI PIC-based PC
%ACPIAPIC_UP.DeviceDesc% = ACPIAPIC_UP_HAL, ACPIAPIC_MP, ACPIAPIC_UP, ACPIPIC_UP; ACPI APIC-based PC (UP)
%ACPIAPIC_MP.DeviceDesc% = ACPIAPIC_MP_HAL, ACPIAPIC_MP, ACPIAPIC_UP, ACPIPIC_UP; ACPI APIC-based PC (MP)
%MPS_UP.DeviceDesc% = MPS_UP_HAL, MPS_UP, ACPIAPIC_UP ; MPS UP PC
%MPS_MP.DeviceDesc% = MPS_MP_HAL, MPS_MP, MPS_UP, ACPIAPIC_MP, ACPIAPIC_UP ; MPS MP PC

After that you will be able to choose any hal on an APIC system and it will be installed by the built-in routines. So far it should work without any further problems though it will need some two reboots until erverything is switched over.

Jimmy

Ich kann bestätigen, dass dadurch wieder alle HAL-Typen zur Auswahl stehen. Nach einem Neustart wurde die zweite CPU im Taskmanager angezeigt und auch genutzt.

Posted in Uncategorized | Tagged , , , , | Leave a comment

Aktualisierungen

Gerade gestartet und schon aktualisiert. WordPress läuft jetzt als Version 2.7. Diese Gelegenheit habe ich genutzt, die Vorschläge von Bren Ozar aus seinem Blog-Eintrag
How to Start a Technical Blog, Part 3: WordPress Plugins
umzusetzen. Ich habe jetzt ein paar sinnvolle Plugins hinzugefügt. OpenID finde ich mit das interessantest davon.

Posted in Uncategorized | Tagged , | Leave a comment