Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

4 SNMP OIDsの検出

概要

このセクションでは、スイッチでSNMPの検出を実行します。

アイテムキー

ファイルシステムやネットワークインターフェイスの検出とは異なり、アイテムは必ずしも"snmp.discovery"キーを持っている必要はありません。SNMPエージェントのアイテムタイプで十分です。

SNMP OIDの検出は、Zabbixサーバー/プロキシ2.0以降でサポートされています。

ディスカバリルールを設定するには、次のようにします。

  • 設定テンプレートを開きます
  • 適当なテンプレート行のディスカバリをクリックします

  • 画面の右上隅にある[ディスカバリルールの作成]をクリックします
  • 以下のスクリーンショットのように、必要な詳細をディスカバリルールフォームに入力します

必須入力フィールドは、赤いアスタリスクでマークされています。

検出するOIDはSNMP OIDフィールドで次の形式で定義されます:discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]

ここでの{#MACRO1}, {#MACRO2}…は有効なlldマクロ名であり、 oid1, oid2...はこれらのマクロに意味のある値を生成できるOIDです。 検出されたOIDのインデックスを含む組み込みマクロ{#SNMPINDEX} が、検出されたエンティティに適用されます。 検出されたエンティティは{#SNMPINDEX}マクロ値によってグループ化されます。

何を意味するのかを理解するために、スイッチでいくつかのsnmpwalkを実行してみましょう。

$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifDescr
       IF-MIB::ifDescr.1 = STRING: WAN
       IF-MIB::ifDescr.2 = STRING: LAN1
       IF-MIB::ifDescr.3 = STRING: LAN2
       
       $ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifPhysAddress
       IF-MIB::ifPhysAddress.1 = STRING: 8:0:27:90:7a:75
       IF-MIB::ifPhysAddress.2 = STRING: 8:0:27:90:7a:76
       IF-MIB::ifPhysAddress.3 = STRING: 8:0:27:2b:af:9e

そしてSNMP OIDを次のように設定します:discovery[{#IFDESCR}, ifDescr, {#IFPHYSADDRESS}, ifPhysAddress]

このルールは次のエンティティを検出します。 {#IFDESCR}マクロ:WAN,LAN1,LAN2 {#IFPHYSADDRESS}マクロ:8:0:27:90:7a:75, 8:0:27:90:7a:76, 8:0:27:2b:af:9e {#SNMPINDEX}マクロ:1,2,3

[
           {
               "{#SNMPINDEX}": "1",
               "{#IFDESCR}": "WAN",
               "{#IFPHYSADDRESS}": "8:0:27:90:7a:75"
           },
           {
               "{#SNMPINDEX}": "2",
               "{#IFDESCR}": "LAN1",
               "{#IFPHYSADDRESS}": "8:0:27:90:7a:76"
           },
           {
               "{#SNMPINDEX}": "3",
               "{#IFDESCR}": "LAN2",
               "{#IFPHYSADDRESS}": "8:0:27:2b:af:9e"
           }
       ]

エンティティに指定されたOIDがない場合は、対応するマクロはこのエンティティで省略されます。 たとえば、次のデータがある場合:

ifDescr.1 "Interface #1"
       ifDescr.2 "Interface #2"
       ifDescr.4 "Interface #4"
       
       ifAlias.1 "eth0"
       ifAlias.2 "eth1"
       ifAlias.3 "eth2"
       ifAlias.5 "eth4"

この場合、SNMPディスカバリdiscovery[{#IFDESCR}, ifDescr, {#IFALIAS}, ifAlias]は次の構造を返します。

[
           {
               "{#SNMPINDEX}": 1,
               "{#IFDESCR}": "Interface #1",
               "{#IFALIAS}": "eth0"
           },
           {
               "{#SNMPINDEX}": 2,
               "{#IFDESCR}": "Interface #2",
               "{#IFALIAS}": "eth1"
           },
           {
               "{#SNMPINDEX}": 3,
               "{#IFALIAS}": "eth2"
           },
           {
               "{#SNMPINDEX}": 4,
               "{#IFDESCR}": "Interface #4"
           },
           {
               "{#SNMPINDEX}": 5,
               "{#IFALIAS}": "eth4"
           }
       ]

アイテムプロトタイプ

次のスクリーンショットは、アイテムのプロトタイプでこれらのマクロを使用する方法を示しています。

繰り返して必要な数のアイテムのプロトタイプを作成します。

トリガーのプロトタイプ

次のスクリーンショットはトリガーのプロトタイプでこれらのマクロを使用する方法を示しています。

グラフのプロトタイプ

次のスクリーンショットは、グラフのプロトタイプでこれらのマクロを使用する方法を示しています。

ディスカバリルールの概要:

発見されたエンティティ

サーバーが実行されると、SNMPディスカバリルールが返す値に基づいて、実際のアイテム、トリガー、およびグラフが作成されます。 ホスト設定では、プレフィックスとして、元のディスカバリルールへのオレンジ色のリンクが付けられます。