<ComponentReconciliation> セクション内で、カスタム メトリック ファミリに対して照合アルゴリズムを定義できます。 照合アルゴリズムは、監視対象デバイスの設定変更をサポートするために使用します。 デバイスが、あるメトリック ファミリをどのようにサポートするのかは、その設定と考えることができます。 たとえば、インターフェースの数およびその設定は、デバイスが[インターフェース]メトリック ファミリをサポートする方法を表しています。 デバイスのインターフェースに対する変更が発生した場合、Data Aggregator は監視が最新のものであることを保証するために、これらのインターフェースの表現を更新する必要があります。 照合アルゴリズムは、この設定の更新中に適用されます。
特定のメトリック ファミリのサポートでは、個々のコンポーネント アイテムが Data Aggregator で作成されます。 これらのコンポーネント アイテムは、特定のメトリック ファミリをサポートするデバイス設定を表します。 Data Aggregator は、例のように[インターフェース]メトリック ファミリを使用して、ポートのコンポーネント アイテムを作成して、デバイスの各ネットワーク インターフェースを表します。
最初のディスカバリおよびコンポーネント アイテムの作成は、デバイス コレクションを通してデバイスに監視プロファイルが適用されたときに発生します。 監視対象デバイスの変更のサポートが必要であれば、続いてコンポーネントのディスカバリが発生します。 以降のコンポーネント ディスカバリでは、一連のコンポーネント アイテムを更新するのに必要な変更を決定するために、照合アルゴリズムが適用されます。
デバイスの設定が変更された場合には、判断が必要な 4 つのシナリオがあります。
照合アルゴリズムは、既存のコンポーネント アイテムと新規のディスカバリ結果を比較することができる属性のセットを定義します。 属性の値が比較され、既存のコンポーネント アイテムと一致する新規のディスカバリ結果が判断され、また、新規または変更済みのコンポーネントが表示されます。 この比較によって以下の結果が生じます。
照合アルゴリズムでは、一致の 2 つのタイプとして ExactMatch と BestofMatch を定義できます。
ディスカバリ結果が、指定したコンポーネント アイテムのすべての属性と一致する必要があることを指します。
例:ExactMatch 照合アルゴリズム
以下の例は、ExactMatch 一致タイプを定義する照合アルゴリズムを示しています。
<ComponentReconciliation>
<MatchAlgorithmList>
<MatchAlgorithm>
<AlgorithmType>Exact</AlgorithmType>
<MatchAttributeList>
<MatchAttribute>
<Name>{http://im.ca.com/core}Item.Name</Name>
</MatchAttribute>
<MatchAttribute>
<Name>{http://im.ca.com/inventory}Process.Path</Name>
</MatchAttribute>
<MatchAttribute>
<Name>{http://im.ca.com/inventory}Process.Arguments</Name>
</MatchAttribute>
</MatchAttributeList>
</MatchAlgorithm>
</MatchAlgorithmList>
</ComponentReconciliation>
このアルゴリズムは、ディスカバリの結果が既存コンポーネント アイテムの 3 つのすべての属性と一致した場合のみ完全一致になることを示しています。 完全一致にならない場合は、以下のいずれかの状態に応じて結果が生じます。
既存のコンポーネント アイテムの属性と同じ数だけ一致する必要がある属性の最小数を指定します。 各属性には 1 つの「必須」キーが含まれています。 「必須」キーが[true]に設定されていれば、その属性は一致属性のうちの 1 つです。
例:BestofMatch 照合アルゴリズム
以下の例は、BestofMatch 一致タイプを定義する照合アルゴリズムを示しています。
<ComponentReconciliation>
<MatchAlgorithmList>
<MatchAlgorithm>
<AlgorithmType>BestOf</AlgorithmType>
<LeastMatchCount>2</LeastMatchCount>
<MatchAttributeList>
<MatchAttribute>
<Required>true</Required>
<Name>{http://im.ca.com/core}Item.Name</Name>
</MatchAttribute>
<MatchAttribute>
<Name>{http://demo/custom}Process.Path</Name>
</MatchAttribute>
<MatchAttribute>
<Name>{http://demo/custom}Process.Arguments</Name>
</MatchAttribute>
</MatchAttributeList>
</MatchAlgorithm>
</MatchAlgorithmList>
</ComponentReconciliation>
このアルゴリズムは以下の要件を定めています。
注: 一致させる属性値のうちの 1 つは必須属性である必要があります。
BestOf 一致アルゴリズムが照合定義に含まれている場合、以下の結果が発生します。
注: 一致属性の数が複数のコンポーネントで同じ場合、一致するコンポーネント アイテムはランダムで選択されます。 結果として、karaf ログは、この条件に関する警告を記録します。
ユーザは複数の一致アルゴリズムを照合定義に追加することができます。 複数の一致アルゴリズムが追加された場合は、一致の優先順位があります。 MatchAlgorithmList の一番上の一致アルゴリズムの優先順位が最も高くなります。 一番下の一致タイプの優先順位が最も低くなります。
照合定義に複数の一致タイプが含まれている場合は、以下の結果が生じます。
例:

アルゴリズム 1 がより高い優位性を持っているため、ディスカバリ結果 A はコンポーネント 1 一致します。
例:

アルゴリズム 1 がより高い優位性を持っているため、ディスカバリ結果 A はコンポーネント 1 に一致します。
例:

この例では、ディスカバリ結果 B は、コンポーネント 2 よりも多くの属性を持つコンポーネント 1 に一致します。 2.ディスカバリ結果 A はコンポーネント 1 に一致します。これは、より優位性の高いアルゴリズムで一致するためです。 このため、コンポーネント 1 の一致はディスカバリ結果 A となり、ディスカバリ結果 B はコンポーネント 2. 2 に一致します。
注: 照合アルゴリズムを定義していない場合、Data Aggregator は Item.Name 属性を使用してコンポーネントを照合します。
|
Copyright © 2014 CA Technologies.
All rights reserved.
|
|