Zabbixでホスト自動登録を設定して監視を自動化する方法

Others,Zabbix

Zabbixのホスト自動登録のための設定手順です。
Windowsサーバーを例に、ホストの自動登録から監視の開始までを自動登録アクションを利用して実施しています。

今回は、Zabbixのホスト自動登録機能の説明から、自動登録アクションの新規作成、自動登録に必要なzabbix_agent2.conf(またはzabbix_agent.conf)の設定、そしてホストの自動登録までを確認しています。

※Zabbixのバージョンは、7.0LTS(7.0.17)を利用しています。
※Windows ServerはWindows Server 2025 Datacenter Azure Edition x64を利用しています。
※Zabbix Agent 2で手順を確認していますが、Zabbix Agentも同様の手順でインストールできます。

スポンサーリンク

Zabbixのホスト自動登録機能とは?

Zabbixのホスト自動登録機能とは?

Zabbixエージェントのアクティブチェック機能を利用して取得した情報をもとに、監視対象ホストを自動登録することができます。
ホスト登録の処理自体は、Zabbixサーバーの自動登録機能によって実行されます。

アクティブエージェントの自動登録

    • ホストの追加
    • ホストグループの追加
    • テンプレートのリンク
    • ホストの有効化、無効化の選択
    • インベントリモードの設定
    • メッセージの送信

ホストの自動登録と同時に、テンプレートも設定できるため、監視の登録を自動的に開始することができます。
ホストの有効化・無効化も選択できるので、自動登録は行うが有効化は手動で行う、といった運用も可能です。

自動登録アクションの設定がある

通知のメニューの中にアクションの設定があります。
アクションの設定の中の1つとして、自動登録のアクション設定があります。
自動登録アクションを利用することで、監視対象ホストの登録条件や、登録時の設定内容などを指定できます。

ホストメタデータに設定された内容に基づいて自動登録される

監視対象ホストの登録内容は、Zabbixエージェントのアクティブチェックで送信された情報をもとに自動登録されます。
HostMetadataまたはHostMetadataItemに設定された値は、Zabbixサーバの自動登録アクションの条件として利用されます。

Zabbix エージェント (UNIX)

他にも自動登録に利用できる設定があります。
zabbix_agent.confまたはzabbix_agent2.confの中で設定します。

zabbix_agent.confの設定項目
Hostname 自動登録時のホスト名を設定します。
HostnameItem 動的に取得した値を利用して、自動登録時に使用するホスト名を生成します。
Hostnameが未定義の場合のみ利用されます。Hostnameと重複して設定することはできません。
既定値はsystem.hostnameです。
HostMetadata

自動登録のマッチングに使用するメタデータを設定します。
固定値で設定します。

HostMetadataItem 自動登録のマッチングに利用するメタデータを、動的な値(アイテム値)によって設定します。
HostMetadataが未定義の場合のみ使用されます。
HostInterface

自動登録時にサーバ側で作成されるホストのインターフェースに使用する値を設定します。
固定値で設定します。

HostInterfaceItem ホストのインターフェース設定に利用する文字列を、動的な値(アイテム値)によって設定します。
HostInterfaceが未定義の場合のみ使用されます。

追加だけではなく削除もできる

処理内容には追加だけでなく削除も含まれます。
ホストメタデータを利用して、自動登録された監視対象ホストを削除することもできます。

PSKの利用を強制することもできる

自動登録時に、PSKの利用を強制することもできます。
PSKが合致しない場合は、自動登録されません。

自動登録時のPSK設定
監視の一般設定に自動登録のメニューがあります。
暗号化レベルにPSKの設定項目があります。
暗号化レベルで暗号なしのチェックを外すことで、PSKの利用を強制することができます。

—広告—

Zabbixのホスト自動登録設定手順

自動登録アクションを新規作成

監視対象ホストの自動登録は、自動登録アクションの設定内容に基づいて実行されます。
アクションで自動登録の条件を設定し、実行内容でホスト登録時の動作を指定します。

今回は、ホストの自動登録から監視の自動開始までを想定した設定としています。
ホストメタデータにWindowsを含む場合に、ホストの追加、ホストグループへの追加、Windows監視テンプレートのリンクを行います。

    • 実行条件
      • タイプ : ホストメタデータ
      • オペレータ : 含む
      • 値 : Windows
    • 実行内容
      • ホストを追加
      • ホストグループに追加
        • ホストグループ : test_host_group
      • テンプレートをリンク
        • Windows by Zabbix agent
自動登録アクションを新規作成
通知のメニューからアクションを選択します。
自動登録アクションを選択します。
アクションの作成を選択します。
自動登録アクションの作成を開始(Zabbixのホスト自動登録設定手順)

新規アクションの設定画面が表示されます。
アクションのタブで実行条件の追加を選択します。
新規条件のタイプとして、ホスト名、ホストメタデータ、プロキシから選択します。
値を含む場合や含まない場合などの条件を指定できます。

※プロキシはアクティブチェックを受信したプロキシを指定します。例えば、このプロキシから受信した場合のみ自動登録アクションを実行する、といった指定が可能です。

自動登録アクションの実行条件を追加(Zabbixのホスト自動登録設定手順)
自動登録アクションの実行条件で利用可能なタイプ(Zabbixのホスト自動登録設定手順)
ホストメタデータを指定します。
Windowsを含む場合としています。
自動登録アクションの実行条件でホストメタデータを利用した場合の例(Zabbixのホスト自動登録設定手順)
自動登録アクションの実行条件の設定例(Zabbixのホスト自動登録設定手順)

自動登録時の処理設定を行います。
実行内容のタブで、実行内容の追加を選択します。
処理内容には、ホストの追加だけでなく、さまざまな処理が用意されています。

※追加だけでなく、削除することも可能です。

自動登録アクションの実行内容を追加(Zabbixのホスト自動登録設定手順)
自動登録アクションの実行内容で選択可能な処理内容(Zabbixのホスト自動登録設定手順)
条件に合致した場合の、処理内容を設定します。
今回は、ホストの追加、ホストグループの追加、テンプレートをリンクの処理を設定します。
自動登録アクションの実行内容で処理内容としてホストの追加を選択した場合の例(Zabbixのホスト自動登録設定手順)
自動登録アクションの実行内容で処理内容としてホストグループへの追加を選択した場合の例(Zabbixのホスト自動登録設定手順)
自動登録アクションの実行内容で、処理内容としてテンプレートのリンクを選択した場合の例(Zabbixのホスト自動登録設定手順)
設定が完了したら、新規アクションを追加します。 自動登録アクションを追加(Zabbixのホスト自動登録設定手順)
自動登録アクションが追加されたことを確認できます。 自動登録アクションの表示例(Zabbixのホスト自動登録設定手順)

zabbix_agent.confでHostMetadataを設定

zabbix_agent2.confでHostMetadataに値を追加します。
今回は、Windowsという文字列を追加しています。

zabbix_agent2.confを編集

# zabbix_agent2.confのHostMetadataを編集(146行目付近)

### Option: HostMetadata
# Optional parameter that defines host metadata.
# Host metadata is used at host auto-registration process.
# An agent will issue an error and not start if the value is over limit of 2034 bytes.
# If not defined, value will be acquired from HostMetadataItem.
#
# Mandatory: no
# Range: 0-2034 bytes
# Default:
# HostMetadata=

HostMetadata=Windows 

Zabbixエージェントを再起動

Zabbixエージェントを再起動して、zabbix_agent2.confの変更内容を反映させます。

Zabbixエージェントを再起動

PS C:\> zabbix_agent2 -x
zabbix_agent2 [6584]: 'Zabbix Agent 2’ stopped successfully
PS C:\> zabbix_agent2 -s
zabbix_agent2 [6512]: 'Zabbix Agent 2’ started successfull

※Windowsの場合は、サービス管理ツールから再起動する方法もあります。

ホストの自動登録を確認

ホストが自動登録されたかどうかを確認します。
なお、Discovered hostsのホストグループには、自動登録されます。

ホストの自動登録を確認
ホストが自動登録されていることが確認できます。
処理内容に設定された通り、テンプレート、ホストグループが設定されていることが確認できます。
自動登録されたホストの例(一覧表示)(Zabbixのホスト自動登録設定手順)
自動登録されたホストの設定例(Zabbixのホスト自動登録設定手順)

※プロキシおよびプロキシグループが存在する環境のため、自動的にプロキシグループに追加されています。

HostMetadataItemを利用したホストの自動登録

HostMetadataの設定は固定値です。
OSごとにテンプレートを変える場合には、OSごとに設定したzabbix_agent2.confを用意しておく必要があります。

HostMetadataItemを利用すると、動的な値(アイテム値)を利用してホストメタデータを設定することができます。
例えば、system.unameを利用すると、取得した値を用いてOSの判別に利用できます。
OSごとにzabbix_agent2.confを準備する必要がなくなります。

system.unameで取得される値には、OSの情報が含まれます。
今回の場合は、Windowsという文字が含まれます。
先ほど作成した自動登録アクションの条件に合致します。
同様にホストを自動登録することができます。

※先ほど設定したHostMetadata=Windowsはコメントアウトします。

zabbix_agent2.confを編集

# zabbix_agent2.confのHostMetadataItemを編集(157行目付近)

### Option: HostMetadataItem
# Optional parameter that defines an item used for getting host metadata.
# Host metadata is used at host auto-registration process.
# During an auto-registration request an agent will log a warning message if
# the value returned by specified item is over limit of 65535 characters.
# This option is only used when HostMetadata is not defined.
#
# Mandatory: no
# Default:
# HostMetadataItem=

HostMetadataItem=system.uname 

アイテムでsystem.unameの値を取得した場合の例です。
ホスト名やOSの情報を確認できます。

【取得値の例】
Windows vm-01 10.0.26100 Microsoft Windows Server 2025 Datacenter Azure Edition x64

system.unameの取得値の例(Zabbixのホスト自動登録設定手順)

OSの種類をホストメタデータによって判断させている例です。
Linuxの場合はLinuxのテンプレートを割り当て、Windowsの場合はWindowsのテンプレートを割り当てています。

OSの種類別に自動登録アクションを作成した場合の例(Zabbixのホスト自動登録設定手順)

HostInterfaceItemを利用したインタフェースの設定例

Zabbixサーバーは、エージェントから直接取得できる監視対象ホストのネットワークインターフェース設定から得られるIPアドレスではなく、NATによって外部に変換されたIPアドレスをホストインターフェースとして登録します。
そのため、ホストを自動登録しても、インターフェース設定に異なるIPアドレスが設定される場合があり、Zabbixエージェントと接続できないケースがあります。

HostInterfaceやHostInterfaceItemを利用して、自動登録時のインターフェースを設定することができます。
HostInterfaceは固定値で設定でき、HostInterfaceItemは動的な値(アイテム値)を利用してインターフェースを設定することができます。
例えば、HostInterfaceItem=system.hostnameとすることで、インターフェース設定にホスト名を利用することができます。

※HostInterfaceとHostInterfaceItemは同時に利用できません。HostInterfaceの設定が優先されます。

zabbix_agent2.confを編集

# zabbix_agent2.confのHostInterfaceItemを編集(182行目付近)

### Option: HostInterfaceItem
# Optional parameter that defines an item used for getting host interface.
# Host interface is used at host auto-registration process.
# During an auto-registration request an agent will log a warning message if
# the value returned by specified item is over limit of 255 characters.
# This option is only used when HostInterface is not defined.
#
# Mandatory: no
# Default:
# HostInterfaceItem=

HostInterfaceItem=system.hostname 

自動登録されたホストのインターフェース設定を確認

インターフェースの設定にDNS名が設定されていることが確認できます。
接続方法もDNSになっていることが確認できます。

ホストのインタフェース設定を確認
インタフェースの設定にDNS名が設定されています。
DNS名には、system.hostnameで取得された値が設定されています。
HostInterfaceItemを利用してインタフェース設定をした場合の例(Zabbixのホスト自動登録設定手順)

監査ログでホスト自動登録のログを確認できる

ホストが自動登録されたログは、監査ログで確認できます。
Systemによってホストが追加されたログが記録されています。

監査ログを確認
ホストが追加されたログが確認できます。
詳細を選択すると、追加されたテンプレート、インタフェース設定なども確認できます。
ホストが自動登録された場合の監査ログ例(Zabbixのホスト自動登録設定手順)

※Zabbixサーバーのログ(zabbix_server.log)でも確認できます。

ホストの無効化や削除の例

自動登録アクションを利用して、自動登録されたホストの無効化や削除も可能です。
今回はホストメタデータの条件に合致しない場合に、ホストを無効化する自動登録アクションを作成し、動作を確認しています。
HostMetadata=non-monitoringとして動作を確認します。

zabbix_agent2.confを編集

# zabbix_agent2.confのHostMetadataを編集(146行目付近)

### Option: HostMetadata
# Optional parameter that defines host metadata.
# Host metadata is used at host auto-registration process.
# An agent will issue an error and not start if the value is over limit of 2034 bytes.
# If not defined, value will be acquired from HostMetadataItem.
#
# Mandatory: no
# Range: 0-2034 bytes
# Default:
# HostMetadata=

HostMetadata=non-monitoring

ホストメタデータにLinuxやWindowsの文字列が含まれない場合は、ホストを無効化する設定にしています。 ホストを無効化する場合の自動アクション設定例(Zabbixのホスト自動登録設定手順)
Zabbixエージェントを再起動して確認します。
ホストのステータスが無効となっていることが確認できます。
自動登録アクションを利用してホストが無効化された場合の例(Zabbixのホスト自動登録設定手順)

—広告—

最後に

Windowsサーバーを例に、Zabbixのホスト自動登録の設定手順を確認しました。
自動登録アクションを作成するだけで、OSの種別に合わせた監視が自動的に開始できてとても便利な機能かと思いました。
今回は基本的な設定の例でしたが、自動登録のアクションやホストメタデータの設定を組み合わせることで柔軟に設定に活用できそうです。

引き続き、いろいろ試してみたいと思います。

Zabbixエージェントのインストール手順やPSKの設定については、こちらで確認しています。

Zabbixでホストを追加登録する場合の手順については、こちらで紹介しています。

Zabbixを利用したAzureのリソース監視設定方法ついては、こちらで紹介しています。

スポンサーリンク