ディスカバリーフィルターとは何ですか?
データソースインスタンスフィルターは、デバイスレベルでインスタンスとして入力できるオブジェクトを制御します。 これらのフィルターは、必要なアラートとデータ収集を保持するために使用されますが、LogicMonitorが重要でないインフラストラクチャでアラートを作成するのを防ぎます。 Active Discoveryによって検出されたすべてのオブジェクトから、フィルター条件を満たすオブジェクトのみが監視に追加されます。 フィルタは、マルチインスタンスデータソース定義のアクティブディスカバリセクションにあります。
ユースケース:WMIインスタンスフィルタリング
既存の非アクティブディスカバリデータソースを再構成し、それらを複数のデバイスに自動的に適用するのが一般的な方法です。 WinServices-データソースは、Active Discoveryが有効になるように複製および編集され、特定のWindowsサービスを選択的に監視するために使用されることがよくあります。 たとえば、フィルタリングを使用して、名前に「Windows」を含み、自動的に開始するように設定されているすべてのサービスを監視できます。
このクラスに使用されるWMIクエリの出力について考えてみます。 これは、win32_serviceクラスを呼び出すことによってテストデバイスから取得された非常に長いサービスのリストの始まりです。
$ !wmi h=10.37.13.177 select * from win32_service
>>>>>>>
SYSTEMCREATIONCLASSNAME=>Win32_ComputerSystem
STATE=>Stopped
STATUS=>OK
DESCRIPTION=>Adobe Acrobat Updater keeps your Adobe software up to date.
STARTED=>false
STARTMODE=>Disabled
ACCEPTSTOP=>false
DISPLAYNAME=>Adobe Acrobat Update Service
DESKTOPINTERACT=>false
TAGID=>0
EXITCODE=>1077
CREATIONCLASSNAME=>Win32_Service
NAME=>AdobeARMservice
WAITHINT=>0
STARTNAME=>LocalSystem
PATHNAME=>"C:\Program Files (x86)\Common Files\Adobe\ARM\1.0\armsvc.exe"
INSTALLDATE=>
CHECKPOINT=>0
SERVICESPECIFICEXITCODE=>0
ACCEPTPAUSE=>false
CAPTION=>Adobe Acrobat Update Service
PROCESSID=>0
SYSTEMNAME=>WIN-DOES
SERVICETYPE=>Own Process
ERRORCONTROL=>
すべてのサービスは実際の値に関係なく同じクラス属性を表示するため、それらをフィルターで使用して、関連するサービスのみを監視できます。
追加の各フィルターラインは、論理AND演算子で評価されることに注意してください。 潜在的なインスタンスは、ここで両方の要件を満たす必要があります。
これにより、表示名でサービスが除外され、必要なサービスが残ります。
ユースケース:スクリプトインスタンスフィルタリング
同じ方法を、インスタンスを異なる形式で出力するデータソースに適用できます。 たとえば、最近リリースされたVMware_vSphere_VMsnapshotsです。 このデータソースは、インスタンスレベルのプロパティを作成して適用する組み込みのGroovyスクリプトを介して検出を実行します。
// Get props/ILP
def props_hash = ['auto.config.alternate_guest_os_Name': vm?.config?.alternateGuestName,
'auto.config.annotation' : vm?.config?.annotation,
'auto.config.firmware' : vm?.config?.firmware,
'auto.config.guest_os_full_Name' : vm?.config?.guestFullName,
'auto.config.guest_os_id' : vm?.config?.guestId,
'auto.config.managed_by' : vm?.config?.managedBy?.type ?: "false",
'auto.config.modified' : vm?.config?.modified?.getTime(),
'auto.config.template' : vm?.config?.template,
'auto.guest.guest_os_family' : vm?.guest?.guestFamily,
'auto.guest.guest_os_full_name' : vm?.guest?.guestFullName,
'auto.guest.guest_os_id' : vm?.guest?.guestId,
'auto.guest.hostname' : vm?.guest?.hostName,
'auto.guest.tools_version' : vm?.guest?.toolsVersion,
'auto.guest.tools_version_status' : vm?.guest?.toolsVersionStatus2,
'auto.hardware.memory_mb' : vm?.config?.hardware?.memoryMB ?: 0,
'auto.hardware.num_cpu' : vm?.config?.hardware?.numCPU ?: 0,
'auto.hardware.num_cores_per_socket' : vm?.config?.hardware?.numCoresPerSocket ?: 0,
'auto.hardware.num_virtual_disks' : vm?.summary?.config?.numVirtualDisks ?: 0,
'auto.hardware.num_ethernet_cards' : vm?.summary?.config?.numEthernetCards ?: 0,
'auto.resource_pool' : vm?.resourcePool?.name,
'auto.resource_pool_full_path' : resource_pool_array.reverse().join(' -> '),
'auto.snapshot_count' : vm?.layoutEx?.snapshot?.size() ?: 0,
'auto.cluster' : esxhost?.parent?.name,
'auto.cluster_full_path' : cluster_path_array.reverse().join(' -> '),
'auto.runtime.host' : esxhost?.name,
'auto.runtime.connection_state' : vm?.runtime?.connectionState,
'auto.runtime.power_state' : vm?.runtime?.powerState]
参考までに、フィルタリングが適用される前のインスタンスのILPは次のようになります。
これらのインスタンスレベルの各プロパティは、検出された各インスタンスで提供されるため、LogicMonitorはフィルターを使用してこれらのプロパティを呼び出すことができます。 ユースケースの例として、「お客様は、XNUMXつのラボリソースプールから仮想マシンを除外することに関心がありました。 この顧客は、生成されたアラームに関心がなく、テスト環境からデータを収集することを望まなかったためです。
ユースケース:SNMPフィルタリングのトラブルシューティング
デフォルトのフィルターは、インスタンスを期待しているが表示されていない顧客に混乱をもたらす場合があります。 たとえば、
NetAppSnapVolには、次のフィルターが含まれています。
一般的なシナリオは、さらに多くが予想される場合に、XNUMXつのスナップボリュームのみが表示されることです。 データソース定義に設定されたSNMPOIDを使用して、手動ウォークを実行し、インスタンスの完全なリストを取得します。
$ !snmpwalk SOMEHOST .1.3.6.1.4.1.789.1.5.4.1.2
Walking OID .1.3.6.1.4.1.789.1.5.4.1.2 from host=SOMEHOST, version=v2c, port=161, timeout=3 seconds:
1 => aggr2
10 => /vol/cache1img3/.snapshot
11 => /vol/cache1img4/
12 => /vol/cache1img4/.snapshot
13 => /vol/cache1img5/
14 => /vol/cache1img5/.snapshot
15 => /vol/cache1img6/
16 => /vol/cache1img6/.snapshot
17 => /vol/cache1img7/
18 => /vol/cache1img7/.snapshot
19 => /vol/cache1img8/
2 => aggr2/.snapshot
20 => /vol/cache1img8/.snapshot
21 => /vol/cachepreprod/
22 => /vol/cachepreprod/.snapshot
23 => /vol/cache1imgtest/
24 => /vol/cache1imgtest/.snapshot
3 => /vol/new_root/
4 => /vol/new_root/.snapshot
5 => /vol/cache1img1/
6 => /vol/cache1img1/.snapshot
7 => /vol/cache1img2/
8 => /vol/cache1img2/.snapshot
9 => /vol/cache1img3/