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

概要

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

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

ルール属性

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

Parameter Description
Name ルールの一意な名前。たとえば、「Local network」。
Discovery by 検出の実行元:
Server - Zabbix サーバーによる
Proxy - Zabbix プロキシによる(プロキシ名フィールドで選択)
IP range 検出対象の IP アドレス範囲。次の形式を指定できます:
単一 IP: 192.168.1.33
IP アドレス範囲: 192.168.1-10.1-255. 範囲は、対象となるアドレスの総数(64K 未満)によって制限されます。
IP マスク: 192.168.4.0/24
サポートされる IP マスク:
/16 - /30 for IPv4 addresses
/112 - /128 for IPv6 addresses
リスト: 192.168.1.1-255, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24
このフィールドでは、スペース、タブ、複数行を使用できます。
Update interval このパラメータは、Zabbix がルールをどのくらいの頻度で実行するかを定義します。
間隔は、前回の検出処理の終了後に計測されるため、重複は発生しません。
Time suffixes がサポートされています。例: 30s, 1m, 2h, 1d。
User macros がサポートされています。
Note ユーザーマクロを使用してその値が変更された場合(例: 1w → 1h)、次回のチェックは以前の値に従って実行されます(例の値ではかなり先になります)。
Maximum concurrent checks per type 検出チェックの並列処理のために、サービスチェックごとの検出スレッド(ワーカー)の最大数を設定します:
One - 1 スレッド
Unlimited - 無制限のスレッド数(ただし StartDiscoverers パラメータで指定された数を超えない)
Custom - 任意のスレッド数を設定(0-999)
なお、SNMPv3 の非同期サービスチェックを使用するすべての検出ルールは、libsnmp の実装上の特性により 1 つのワーカーで処理されます。つまり、ワーカー数を増やしても検出速度は向上しません。
Checks 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 エージェントは、暗号化されていないモードでアイテムを問い合わせることでテストされます。詳細は agent items を参照してください。
'Ports' パラメータには次のいずれかを指定できます:
単一ポート: 22
ポート範囲: 22-45
リスト: 22-45,55,60-70
Zabbix 7.0 以降、LDAP チェックを除くすべてのサービスチェックは非同期で実行されます。
Zabbix 7.0 以降、HTTP/HTTPS のチェックは libcurl 経由で実行されます。Zabbix サーバー/プロキシが libcurl なしでコンパイルされている場合、HTTP チェックは以前のバージョンと同様に動作します(つまり TCP チェックとして動作します)が、HTTPS チェックは動作しません。
Device uniqueness criteria 一意性の基準は次のいずれかです:
IP address - 複数の単一 IP デバイスは処理しません。同じ IP のデバイスがすでに存在する場合、それはすでに検出済みと見なされ、新しいホストは追加されません。
<discovery check> - Zabbix エージェントまたは SNMP エージェントのチェック。
検出時に使用される一意性の基準は、アクション実行時のシステム内でのホスト識別とは同じではないことに注意してください。検出時の一意性の基準は、2 つ以上の検出済みデバイスが同一かどうか(または異なるかどうか)を定義します。一方、Zabbix でのホスト識別の基準は IP アドレスのみです(Host creation を参照)。
Host name 作成されるホストの技術名を次のいずれかで設定します:
DNS name - DNS 名(デフォルト)
IP address - IP アドレス
<discovery check> - 検出チェックで取得した文字列値(例: Zabbix エージェント、SNMP エージェントのチェック)
参照: Host naming
Visible name 作成されるホストの表示名を次のいずれかで設定します:
Host name - 技術名(デフォルト)
DNS name - DNS 名
IP address - IP アドレス
<discovery check> - 検出チェックで取得した文字列値(例: Zabbix エージェント、SNMP エージェントのチェック)
参照: Host naming
Enabled チェックボックスをオンにすると、ルールは有効になり、Zabbix サーバーによって実行されます。
オフの場合、ルールは無効で、実行されません。
ファイルディスクリプタ上限の超過

同時チェック数が多い場合、discovery manager のファイルディスクリプタ上限を使い切る可能性があります。

検出に必要なファイルディスクリプタ数は、discovery worker の数 * 1000 に相当します。
デフォルトでは discovery worker は 5 個ですが、システムのソフトリミットはおおよそ 1024 です。

この上限に近づくと、Zabbix は各 worker ごとのデフォルトの「種類ごとの同時チェック数」を減らし、ログファイルに警告を書き込みます。
ただし、ユーザーが Maximum concurrent checks per type に Zabbix が計算した値より大きい値を設定している場合、Zabbix は 1 つの worker に対してユーザー定義の値を使用します。

実際に使用するシナリオ

この例では、ローカルネットワークの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は、192.168.1.1-192.168.1.254のIP範囲でZabbixエージェントに接続し、system.unameキーの値を取得することでホストを検出しようとします。エージェントから受信した値は、ホストの名前付けや、異なるオペレーティングシステムごとに異なるアクションを適用するために使用できます。たとえば、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).