Při instalaci komponent System Center Operations Manager 2007 na serveru Windows 2008, na němž je spuštěn Windows Firewall, je zajištěno vytvoření pravidel pro příchozí připojení (Inbound Rules) pro základní komunikaci, s jednou výjimkou. Chybí povolení příchozího připojení TCP na port 51909, takže žádný ACS forwarder se nedokáže spojit s kolektorem. Řádku uvedenou v seznamu na posledním místě dodáme ručně:

image

Pokud si vypíšeme na serveru SCOM, kde je ACS kolektor (server FIUTONE), stav připojení, máme v nejlepším případě připojen pouze lokální počítač:

netstat | findstr "51909"
  TCP    10.1.1.207:49291       FIUTONE:51909          ESTABLISHED
  TCP    10.1.1.207:51909       FIUTONE:49291          ESTABLISHED

Na serveru DC2, kde jsme spustili sběr auditních záznamů (akce Enable Audit Collection), se objevují události 4369 v logu Operations Manager. Forwarder se připojuje na správnou adresu i port, ale spojení se neuskuteční:

Date and Time: 3.4.2009 10:13:12 
Log Name: Operations Manager 
Source: AdtAgent Generating 
Rule: Microsoft Audit Collection Services Forwarder Event Collection Rule 
Event Number: 4369 
Level: Warning 
Logging Computer: DC2 
User: NT AUTHORITY\NETWORK SERVICE

Description: 
Forwarder unsuccessfully tried to connect to the following collector(s): 
fiutone.sin.cz:51909, status: 0x79 (TCP connect), source: registry addresses tried:
10.1.1.207:51909

If the list of collectors is blank, then AdtAgent was unable to locate a collector. 

Common reasons for this message are: 
The machine(s) listed is not online 
AdtServer is not running on the machine(s) listed 
AdtServer on the machine(s) listed is not listening on the specified port 
TCP connectivity to the AdtServer machine is blocked by firewall, IPSec, or other filtering mechanism 
AdtServer on the machine(s) listed actively refused the connection (due to policy or current activity load)

Pravidlo doplníme nejlépe pomocí Server Manageru:

Server Manager / Configuration / Windows Firewall with Advanced Security / Inbound Rules | New Rule
Rule Type: Port,
Protocols and Ports | TCP | Specific local ports: 51909
Action: Allow the connection
Profile: Domain/Private/Public
Name: Operations Manager ACS (Forwarders)

Po restartu služby Adtagent (tj ACS Forwarder) na serverech se konečně sběr záznamů z bezpečnostního logu zahájí. Kontrola připojení (netstat | findstr "51909") ukáže připojené servery, kde je aktivován sběr. Pro detailní zjištění stavu systému ACS používám vedle pohledu v konzole SCOM / Monitoring / Microsoft Audit Collection Services také jednoduchý skript. Ten využívá nástroj příkazové řádky adtadmin. Skript se skládá ze dvou souborů ACS_Status.cmd a Parser_Stats.vbs:

@echo off
rem      ACS_Status.cmd
echo.
echo WRITING ACTUAL STATUS (TXT FILE)
\windows\system32\security\adtserver\adtadmin -stats > Actual_Status.txt
cscript PARSER_STATS.VBS
echo.
echo CONNECTED FORWARDERS ARE:
type Connected_Forwarders.txt
echo.
echo -----------------------------------------------------

Výstupní soubor Actual_Status.txt je možné načíst v Excelu (formát csv). Jednoduchý Visual Basic Script, který převede výstup do čitelné formy - Parser_Stats.vbs:

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTxtFR = objFSO.OpenTextFile("Actual_Status.TXT", ForReading)
Set objTxtFW = objFSO.OpenTextFile("Connected_forwarders.TXT", ForWriting, True)
'
' first line is Header
arrRecord = objTxtFR.Readline

i=1
Do While objTxtFR.AtEndOfStream <> True
     arrRecord = split(objTxtFR.Readline, ",",-1)
     wscript.echo " "
     wscript.echo "Value: " & arrRecord(0)
     wscript.echo "SID: " & arrRecord(1)
     wscript.echo "Name: " & arrRecord(2)
     wscript.echo "GrupID: " & arrRecord(3)
     wscript.echo "Version: " & arrRecord(4)
     wscript.echo "Connected: " & arrRecord(5)
     wscript.echo "Total Transmitted Events: " & arrRecord(6)
     wscript.echo "Total Size of Transmitted Events: " & arrRecord(7)
     wscript.echo "Recv Packet Count: " & arrRecord(8)
     wscript.echo "Recv Packet Size: " & arrRecord(9)
     wscript.echo "Seconds Since Connection: " & arrRecord(10)
     wscript.echo "Average Event Rate: " & arrRecord(11)
     wscript.echo "Current Event Rate: " & arrRecord(12)
     wscript.echo "Average time to collector(in ms): " & arrRecord(13)
     wscript.echo "Connect Time: " & arrRecord(14)
     wscript.echo "Last Action: " & arrRecord(15)
     wscript.echo "Disconnect Time: " & arrRecord(16)
     wscript.echo "---------------------------------------------------- " & i
     If arrRecord(5) > 0 Then
         objTxtFW.WriteLine(arrRecord(2))
     End If 
     i = i + 1
Loop

 Poznámka: popisuji stav, který je výsledkem procesu instalace a konfigurace systému, jak je popsána v seriálu zde.