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

概要

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

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

ルール属性

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

パラメータ 説明
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マスク:
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
このフィールドでは、スペース、タブ、および複数行を使用できます。
Update interval このパラメータは、Zabbixがこのルールを実行する頻度を定義します。
前回のディスカバリ実行が終了してから間隔が計測されるため、実行が重複することはありません。
時間サフィックス をサポートしています。例: 30s、1m、2h、1d。
ユーザーマクロ をサポートしています。
ユーザーマクロを使用していて、その値が変更された場合(例: 1w → 1h)、次回のチェックは変更前の値に従って実行される点に注意してください(この例ではかなり先の時刻になります)。
Maximum concurrent checks per type ディスカバリチェックを並列処理するため、サービスチェックごとのディスカバリスレッド(ワーカー)の最大数を設定します:
One - 1スレッド
Unlimited - スレッド数無制限(ただし、StartDiscoverers パラメータの値を超えません)
Custom - カスタムのスレッド数を設定(0-999)
libsnmp実装の特性により、SNMPv3非同期サービスチェックを持つすべてのディスカバリルールは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エージェントは、暗号化されていないモードでアイテムを問い合わせることでテストされます。詳細は エージェントアイテム を参照してください。
'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 name 作成されるホストの技術的なホスト名を、以下を使用して設定します:
DNS name - DNS名(デフォルト)
IP address - IPアドレス
<discovery check> - ディスカバリチェックで受信した文字列値(例: Zabbixエージェント、SNMPエージェントチェック)
あわせて参照: ホスト命名
Visible name 作成されるホストの表示名を、以下を使用して設定します:
Host name - 技術的なホスト名(デフォルト)
DNS name - DNS名
IP address - IPアドレス
<discovery check> - ディスカバリチェックで受信した文字列値(例: Zabbixエージェント、SNMPエージェントチェック)
あわせて参照: ホスト命名
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).