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

概要

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

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

ルール属性

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

Parameter Description
Name ルールの一意な名前です。例えば、「ローカルネットワーク」です。
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がルールを実行する頻度を定義します。
間隔は、前回のディスカバリ実行が終了した後から計測されるため、重複は発生しません。
Time suffixes をサポートしています。例: 30s、1m、2h、1d。
User macros をサポートしています。
ユーザーマクロが使用され、その値が変更された場合(例: 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エージェントは、暗号化されていないモードでアイテムを問い合わせることでテストされます。詳細は 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は、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).