共用方式為


運算式

 

適用於: System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager

用來建立監視和規則的精靈通常會要求您輸入運算式,以指定要收集之資料的準則。 只有在運算式成立的情況下,監視或規則才會套用。

例如,您可能有個規則,針對特定的事件產生警示。 您不想要針對寫入事件記錄檔的每一個事件發出警示,所以在運算式中指定事件編號和事件來源。 規則將會分析寫入事件記錄檔的所有事件,但只會針對具有指定來源和編號的事件產生警示。

運算式可以簡單到只包含單一準則,或可以是複合運算式,包含多個準則和複雜邏輯。 您建立的大多數運算式都只會有一或兩個準則,很少使用複雜邏輯。

用於運算式的語法會視不同的資料來源類型而異。 針對某些資料來源,您能夠在對話方塊中選取準則,因此不必瞭解基礎語法。 至於其他資料來源,您則必須了解並輸入適當的語法。 下列各節提供各資料來源準則的詳細資料。

準則語法

每一個準則都由「參數名稱」、「運算子」和「值」組成。 下列各節將詳細說明各個項目。

參數名稱

「參數名稱」會從規則或監視的資料來源指定參數。 參數名稱的語法會視要收集的資料類型而不同。 參數名稱的語法會視要收集的資料類型而不同。

以下各節提供不同資料來源類型的參數名稱語法。

Windows 事件

Windows 事件會在運算式對話方塊中提供提示來選取個別內容,因此一般並不需要瞭解實際的語法。 內容清單及其說明位於 Windows 事件

事件描述未包含在內容名稱的下拉式清單中。 如需使用,可以在 EventDescription 中輸入。 不過在使用事件描述之前,您應先確認在描述中使用的資訊是否可在參數中可用。 事件描述通常由標準文字以及透過參數加入的唯一資訊所組成。 參數由於包含特定資訊,因此比完整描述更有效率。

文字記錄檔

文字記錄檔不會提供參數名稱的提示,因此您需要使用適當的語法來輸入。 文字記錄檔有兩種類型:一種是每行當作單一項目處理的一般文字記錄檔,另一種則是使用分隔符號隔開每個項目欄位的一般 CSV 文字記錄檔。

針對一般文字記錄檔,會使用下列語法以單一參數參照整個項目。

Params/Param[1]

針對一般 CSV 文字記錄檔,則會使用下列語法以項目的每個欄位的獨立參數參照項目的每個欄位,其中 # 是指從 1 開始的欄位編號:

Params/Param[#]

您可以在事件運算式找到文字記錄檔運算式的進一步詳細資料。

WMI 事件

WMI 事件不會提供參數名稱的提示,因此您需要使用適當的語法來輸入。

WMI 事件可用的內容會視要監視的事件類型而不同。 資料會採取屬性包的形式,其中有一或多個 WMI 類別執行個體的內容集合。 利用使用 __InstanceCreationEvent 或 __InstanceDeletionEvent 的查詢建立的 WMI 事件會有名為 TargetInstance 的單一集合,其中包含要建立或刪除的執行個體。 使用 __InstanceModificationEvent 建立的 WMI 事件則還會有另一個名為 PreviousInstance 的集合。

WMI 事件的內容語法如下:

Collection[@Name='TargetInstance']/Property[@Name='Caption']

您可以在 WMI 事件找到 WMI 事件的進一步詳細資料。

Syslog 事件

Syslog 事件不會提供參數名稱的提示,因此您需要使用適當的語法來輸入。 Syslog 事件的內容語法就是內容的名稱。 這些內容列在 系統事件中。

SNMP 事件

SNMP 探查和陷阱不會提供參數名稱的提示,因此您需要使用適當的語法來輸入。 SNMP 探查或陷阱標頭中內容的語法就是內容的名稱。

當使用單一 OID 時:

SnmpVarBinds/SnmpVarBind/ElementName

當您有多個 OID 並想以數字順序參照每個 OID。 第一個 OID 是 1,第二個是 2,以此類推:

SnmpVarBinds/SnmpVarBind[#]/ElementName

當您有多個 OID 並想以特定 OID 參照每個 OID:

SnmpVarBinds/SnmpVarBind[OID="OID"]/ElementName

SNMP 事件的進一步詳細資料列在 SNMP 事件中。

指令碼

指令碼不會提供參數名稱的提示,因此您需要使用適當的語法來輸入。 監視指令碼會以屬性包的形式輸出資訊其中包含一或多個值。 參數會使用下列語法,從屬性包指定其中一個值的名稱:

Property[@Name="PropertyName"]

您可以在指令碼監視器和規則找到監視指令碼的進一步詳細資料。

運算子

「運算子」 會指定將在 [參數名稱] 中指定的資料內容值和 [值] 中指定的值之間進行比較的方式。 下表顯示可能的值。

運算子

說明

等於

資料中指定的字串或數字完全等於 [值] 中指定的字串或數字。 如果這是字串值,比較時不區分大小寫。

不等於

資料中指定的字串或數字不完全等於 [值] 中指定的字串或數字。 如果這是字串值,比較時不區分大小寫。

大於

資料中的值大於 [值] 中指定的數字。

大於或等於

資料中的值大於或等於 [值] 中指定的數字。

小於

資料中的值小於 [值] 中指定的數字。

小於或等於

資料中的值小於或等於 [值] 中指定的數字。

包含

[值] 中指定的字串出現在資料中的某處。

不包含

[值] 中指定的字串未出現在資料中的某處。

符合萬用字元

[值] 中指定的字串符合包含萬用字元的字串。 萬用字元為 *,代表任何數目的字元。

不符合萬用字元

[值] 中指定的字串不符合包含萬用字元的字串。 萬用字元為 *,代表任何數目的字元。

符合規則運算式

資料中的字串符合 [值] 中指定的規則運算式。

不符合規則運算式

資料中的字串不符合 [值] 中指定的規則運算式。

值可以是輸入 [值] 欄位的特定文字或數字。 例如,特定事件可由其來源和號碼定義。 這些都是可以輸入 [值] 欄位的常數值。

值也可以來自目標物件上的內容。 您可以使用目標物件或物件任何父系上的任何內容。 若要檢視任何物件的內容及其值清單,可以在 [已探索的清查] 檢視中檢視該物件。

目標內容針對不同物件會有不同的值。 例如,您可以使用 [邏輯磁碟 (伺服器)] 作為目標,並在準則中要求磁碟的總大小。 邏輯磁碟有個名為 [大小(MB)] 的內容,其中儲存磁碟的總大小。 此內容的值會隨著管理群組中的不同磁碟而不同。 當您使用目標變數作為值時,系統會針對每個物件獨立評估該值。

您可以按一下準則行右側的省略符號按鈕來選取目標內容。 這會顯示您選取作為目標物件以及該物件父系的所有可用內容清單。 如果選取其中一個內容,系統就會將適當的目標變數新增到準則中。

範例

Windows 事件

下列運算式會識別來源為 Contoso 以及事件編號為 100 的 Windows 事件。

參數名稱

運算子

AND 群組 (全部條件均成立)

事件識別碼

等於

100

事件來源

等於

Contoso

下列運算式會識別來源為 Contoso、事件編號為 100 以及參數 1 中有 “Error” 一字的 Windows 事件。

參數名稱

運算子

AND 群組 (全部條件均成立)

事件識別碼

等於

100

事件來源

等於

Contoso

參數 1

等於

錯誤

下列運算式會識別來源為 Contoso、事件編號為 100 以及描述中任何位置有 “Error” 一字的 Windows 事件。

參數名稱

運算子

AND 群組 (全部條件均成立)

事件識別碼

等於

100

事件來源

等於

Contoso

EventDescription

包含

錯誤

文字記錄檔

下列運算式會識別一般文字記錄檔中包含 “Error” 一字的項目。

參數名稱

運算子

Params/Param[1]

包含

錯誤

下列運算式會識別一般 csv 文字記錄檔中第三個欄位包含 “Error” 一字的項目。

參數名稱

運算子

Params/Param[3]

等於

錯誤

指令碼

下列運算式會從名為 “PerfValue” 的指令碼識別介於 10 和 20 之間的數值。

參數名稱

運算子

AND 群組 (全部條件均成立)

Property[@Name="PerfValue"]

大於

10

Property[@Name="PerfValue"]

小於

20