Momentan bin ich daran einen einfachen SAP2SCOM Connector zu entwickeln. Leider stellt sich die Informationsrecherche im SAP Umfeld für mich als relativ schwierig dar. Daher: Falls jemand ebenfalls mal in diesem Umfeld etwas machen darf, hier zwei relevante Links:
Für Visual Studio 2003 gibt es einen SAP .NET Connector um auf BAPI und Webservices von SAP zuzugreifen. Für neuere Versionen gibt es diesen nicht mehr. Trotzdem mach dieses Add-On die Entwicklung einfacher, da es die komplette Komplexität kapselt. Möchte man dies also heute noch nutzen, dann gibt es unter http://www.codeproject.com/KB/dotnet/Connect_SAP_from_VS2008.aspx eine Anleitung dazu.
Für die Extraktion der Alert Informationen aus dem CCMS von SAP habe ich nur wenige Informationen gefunden. Das beste Dokument natürlich erst als dieser Teil schon fast abgeschlossen war: External Interface for Alert Management.
meistens bin ich ja auf eurer Seite. Aber mache Dinge muss man nicht verstehen, oder?
Das ist kein gemeinsamer Dienst der System Center Familie (soweit ist die Integration wirklich noch nicht), sondern der Operations Manager Dienst (System Center Operations Manager 2007 R2). Gemeinsame Identitäten schaffen ist gut. Alle Familienmitglieder nur mit dem Nachnamen anzusprechen ist aber zu viel des Guten. Bitte nennt den Dienst doch mindestens System Center Operations Agent oder so ähnlich!
Im Rahmen einer Supportanfrage bei MS wurde ich auf eine einfache Möglichkeit hingewiesen, wie man aufzeichnen kann, wann welches Skript durch den OpsMgr Agent ausgeführt wird:
Zusammenfassend werden die Filter im Process Monitor von Sysinternals (jetzt Microsoft) so gesetzt, dass der Start und das Ende von cscript.exe Prozessen aufgezeichnet werden. Da dabei auch die Parameter mit protokolliert werden, ist so einfach zu sehen ob und wann ein Skript mit welchen Eigenschaften aufgerufen wurde. Beim Prozessende erkennt man auch eventuelle fehlerhafte Exitcodes.
Dies ist natürlich auch beim Entwickeln neuer Skript sehr nutzlich!
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
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)
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.
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:
16" href="http://communities.vmware.com/message/313128#313128">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.
In meinem Umfeld ist Nagios als oberster Überwachungspunkt definiert worden. Daher hat sich bereits eine on mir betreute Diplomarbeit u.a. mit der Anbindung von SCOM an Nagios beschäftigt. Daraus hat sich ergeben, dass sich SCOM am Besten mittels send_ncsa anbinden lässt, da dieses Tool (das auch für Windows existiert) die Übertragung verschlüsseln kann und nicht auf Email (Verzögerung und was ist wenn man damit die Emailumgebung überwachen will?) bzw. snmp (wird von einigen als unsicher angesehen…) setzt.
Innerhalb der Diplomarbeit wurde ein vbs Skript entwickelt, dass regelmäßig ausgeführt die Alerts ausliest und per send_ncsa weiterleitet. Auf Seiten des Nagios existiert pro weitergeleiteten Host ein dummy Host (nicht aktiv überwacht) und ein Service SCOM.
Im Rahmen der Produktivsetzung, die ich letzte Woche bekommen habe, habe ich mich entschieden, dass es sinnvoller ist dieses Script als Connector für SCOM umzusetzen. Bis jetzt läuft es recht gut..