1 ネットワークディスカバリルールの設定

概要

Zabbix がホストとサービスを検出するために使用するネットワークディスカバリルールを設定するには、次の手順を実行します。

  • データ収集 → ディスカバリ に移動します
  • ディスカバリルールの作成 をクリックします(既存のルールを編集する場合はルール名をクリックします)
  • ディスカバリルールの属性を編集します

ルール属性

必須入力フィールドには、赤いアスタリスクが付いています。

パラメータ 説明
名前 ルールの一意な名前。例えば、「ローカルネットワーク」。
検出方法 ディスカバリは次のいずれかによって実行されます。
サーバー - Zabbixサーバーによる
プロキシ - Zabbixプロキシによる(プロキシ名フィールドで選択)
IP範囲 ディスカバリ対象のIPアドレス範囲。以下の形式を使用できます。
単一IP: 192.168.1.33
IPアドレス範囲: 192.168.1-10.1-255。範囲は、対象となるアドレス総数によって制限されます(64K未満)。
IPマスク: 192.168.4.0/24
サポートされるIPマスク:
IPv4アドレスの場合 /16 - /30
IPv6アドレスの場合 /112 - /128
リスト: 192.168.1.1-255, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24
このフィールドでは、スペース、タブ、および複数行を使用できます。
更新間隔 このパラメータは、Zabbixがこのルールを実行する頻度を定義します。
間隔は、前回のディスカバリ実行が終了した後から計測されるため、重複実行は発生しません。
時間サフィックス をサポートしています。例: 30s、1m、2h、1d。
ユーザーマクロ をサポートしています。
ユーザーマクロを使用していて、その値が変更された場合(例: 1w → 1h)、次回のチェックは以前の値に従って実行される点に注意してください(この例ではかなり先になります)。
タイプごとの最大同時チェック数 ディスカバリチェックを並列処理するため、サービスチェックごとのディスカバリスレッド(ワーカー)の最大数を設定します。
1つ - 1スレッド
無制限 - スレッド数無制限(ただし、StartDiscoverers パラメータの値を超えません)
カスタム - カスタムのスレッド数を設定(0-999)
libsnmp実装の特性により、SNMPv3非同期サービスチェックを含むすべてのディスカバリルールは1つのワーカーで処理されます。つまり、ワーカー数を増やしてもディスカバリ速度は向上しません。
チェック Zabbixはディスカバリにこのチェック一覧を使用します。 をクリックすると、ポップアップウィンドウで新しいチェックを設定できます。
サポートされるチェック: SSH、LDAP、SMTP、FTP、HTTP、HTTPS、POP、NNTP、IMAP、TCP、Telnet、Zabbixエージェント、SNMPv1エージェント、SNMPv2エージェント、SNMPv3エージェント、ICMP ping。
プロトコルベースのディスカバリでは、SNMPがSNMP OIDを問い合わせる場合を除き、各ホストのテストに net.tcp.service[] 機能を使用します。Zabbixエージェントは、暗号化されていないモードでアイテムを問い合わせることでテストされます。詳細は エージェントアイテム を参照してください。
「ポート」パラメータには、次のいずれかを指定できます。
単一ポート: 22
ポート範囲: 22-45
リスト: 22-45,55,60-70
Zabbix 7.0 以降、LDAPチェックを除くすべてのサービスチェックは非同期で実行されます。
Zabbix 7.0 以降、HTTP/HTTPsチェックは libcurl 経由で実行されます。Zabbixサーバー/プロキシが libcurl なしでコンパイルされている場合、HTTPチェックは以前のバージョンと同様に動作します(つまりTCPチェックとして動作します)が、HTTPSチェックは動作しません。
デバイス一意性条件 一意性条件には次のものを指定できます。
IPアドレス - 単一IPの複数デバイスを処理しません。同じIPを持つデバイスがすでに存在する場合、それはすでに検出済みとみなされ、新しいホストは追加されません。
<discovery check> - ZabbixエージェントチェックまたはSNMPエージェントチェック。
ディスカバリ時に使用される一意性条件は、アクション実行時にシステムで使用されるホスト識別とは異なる点に注意してください。ディスカバリ時の一意性条件は、2つ以上の検出済みデバイスが同一かどうか(または異なるかどうか)を定義するものです。一方、Zabbixでのホスト識別条件はIPアドレスのみです(ホストの作成 を参照)。
ホスト名 作成されるホストの技術的なホスト名を、次のいずれかを使用して設定します。
DNS名 - DNS名(デフォルト)
IPアドレス - IPアドレス
<discovery check> - ディスカバリチェックで受信した文字列値(例: Zabbixエージェント、SNMPエージェントチェック)
あわせて参照: ホスト命名
表示名 作成されるホストの表示名を、次のいずれかを使用して設定します。
ホスト名 - 技術的なホスト名(デフォルト)
DNS名 - DNS名
IPアドレス - IPアドレス
<discovery check> - ディスカバリチェックで受信した文字列値(例: Zabbixエージェント、SNMPエージェントチェック)
あわせて参照: ホスト命名
有効 チェックボックスがオンの場合、このルールは有効であり、Zabbixサーバーによって実行されます。
オフの場合、このルールは有効ではなく、実行されません。
ファイルディスクリプタの制限を超えています

同時チェック数が多い場合、ディスカバリマネージャのファイルディスクリプタの制限に達する可能性があります。

検出に必要なファイルディスクリプタの数は、ディスカバリワーカーの数 × 1000 に相当します。 デフォルトでは、ディスカバリワーカーは5ですが、システムのソフトリミットは約1024です。

この制限に近づくと、Zabbixは各ワーカーの種類ごとにデフォルトの同時チェック数を減らし、ログファイルに警告を書き込みます。 ただし、ユーザーが種類ごとの最大同時チェック数にZabbixによって計算された値よりも高い値を設定した場合、Zabbixはワーカー1つあたりユーザーが定義した値を使用します。

実際に使用するシナリオ

この例では、ローカルネットワークの192.168.1.1~192.168.1.254の範囲のIPアドレスをチェックするネットワークディスカバリを設定します。

このシナリオでは、以下のことをおこなう設定をします:

  • Zabbixエージェントが動作しているホストを検出
  • 検出は10分間隔で実行
  • アップタイムが1時間以上のホストは監視対象に追加
  • ダウンタイムが24時間以上のホストは監視対象から削除
  • Linuxホストはグループ「Linux servers」に追加
  • Windowsホストはグループ「Windows servers」に追加
  • LinuxホストではテンプレートLinuxを使用
  • WindowsホストではテンプレートWindowsを使用
ステップ1

IP範囲に対するネットワークディスカバリルールを定義します。

Zabbixは、Zabbixエージェントに接続して system.uname キーの値を取得することにより、 192.168.1.1-192.168.1.254 のIP範囲内にあるホストのディスカバリを試みます。エージェントから受信した値は、 ホストの命名や、異なるオペレーティングシステムごとに異なるアクションを適用するために使用できます。たとえば、 Windowsサーバーをテンプレート Windows にリンクし、Linuxサーバーをテンプレート Linux にリンクします。

このルールは10分ごとに実行されます。

このルールが追加されると、Zabbixは自動的にディスカバリを開始し、 以降の処理のためにディスカバリベースのイベントの生成を開始します。

ステップ 2

新たに検出されたLinuxサーバーをそれぞれのグループ/テンプレートに追加するための検出アクションを定義します。

このアクションは以下のコンディションが成立する場合有効になります。

  • サービス"Zabbix agent"が"動作"している。
  • system.uname (ルールを定義する際に使用したZabbixエージェントのキー)の値に"Linux"という文字列が含まれる。
  • アップタイムが1時間(3600秒)を超えている。

アクションによって以下のオペレーションが実行されます。

  • 新たに検出したホストをグループ"Linux servers"に追加する。(まだ追加されていないホストの場合はホストの追加も実行する)
  • ホストをテンプレート"Linux"にリンクする。"Linux"テンプレートに含まれるアイテムとトリガーを使用してホストの監視が自動的に開始される。
ステップ 3

新たに検出されたWindowsサーバーをそれぞれのグループ/テンプレートに追加するための検出アクションを定義します。

ステップ 4

動作していないサーバーを削除するための検出アクションを定義します。

"Zabbix agent"サービスが24時間(86400秒)以上downしている場合、サーバーは削除されます。 A server will be removed if "Zabbix agent" service is 'down' for more than 24 hours (86400 seconds).