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 を除き、各ホストをテストするために net.tcp.service[] 機能を使用します。SNMP は SNMP OID を問い合わせます。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 サーバーによって実行されます。
オフの場合、ルールは無効で、実行されません。
ファイルディスクリプタの制限を超えています

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

検出に必要なファイルディスクリプタの数は、ディスカバリワーカーの数 × 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).