11 Microsoft Windows上のZabbixエージェント

エージェントの設定

両世代のZabbixエージェントは、Windowsサービスとして実行されます。Zabbix agent 2 の場合は、以下の手順内の agentdagent2 に置き換えてください。

Microsoft Windowsホストでは、Zabbixエージェントの単一インスタンスまたは複数インスタンスを実行できます。単一インスタンスでは、次のいずれかを使用できます。

  • エージェントのバイナリと同じディレクトリにあるデフォルトの設定ファイル
  • コマンドラインで指定した設定ファイル

複数インスタンスの場合、各エージェントインスタンスはそれぞれ専用の設定ファイルを持つ必要があります(いずれか1つのインスタンスはデフォルトの設定ファイルを使用できます)。

設定ファイルの例は、Zabbixソースアーカイブ内で次の場所にあります。

  • Zabbix agent の場合は conf/zabbix_agentd.conf
  • Zabbix agent2 の場合は conf/zabbix_agent2.conf

設定ファイルを明示的に指定せずに、アーカイブからWindows用のZabbixエージェント/Zabbix agent 2をサービスとしてインストールする場合は、エージェントをインストールする前に次の作業を行ってください。

  • conf/zabbix_agentd.conf を、zabbix_agentd.exe がインストールされるディレクトリに手動でコピーする必要があります。
  • conf/zabbix_agent2.conf および conf/zabbix_agent2.d ディレクトリを、zabbix_agent2.exe がインストールされるディレクトリに手動でコピーする必要があります。

Zabbix Windowsエージェントの設定の詳細については、設定ファイルのオプションを参照してください。

Hostname パラメータ

ホストでアクティブチェックを実行するには、Zabbix エージェントでホスト名を定義しておく必要があります。さらに、エージェント側で設定するホスト名の値は、Webインターフェースでそのホストに設定された「ホスト名」と完全に一致している必要があります。

エージェント側のホスト名の値は、エージェントの設定ファイル内の Hostname または HostnameItem パラメータで定義できます。これらのパラメータのいずれかが指定されていない場合は、デフォルト値が使用されます。

HostnameItem パラメータのデフォルト値は、"system.hostname" エージェントキーが返す値です。Windows では、これは gethostname() 関数の結果を返します。この関数は、ローカルホスト名を判定するために名前空間プロバイダーへ問い合わせを行います。どの名前空間プロバイダーからも応答がない場合は、NetBIOS 名が返されます。

Hostname のデフォルト値は、HostnameItem パラメータが返す値です。したがって、これら両方のパラメータが未指定の場合、実際のホスト名はホストの NetBIOS 名になります。Zabbix エージェントは、NetBIOS ホスト名を使用して Zabbix サーバーからアクティブチェックの一覧を取得し、その結果を送信します。

"system.hostname" キーは、typetransform という 2 つのオプションパラメータをサポートしています。

Type は、アイテムが返す名前の種類を決定します。

  • netbios (デフォルト) - NetBIOS ホスト名を返します。これは 15 文字までに制限され、英大文字のみです。
  • host - 大文字と小文字を区別し、完全な実際の Windows ホスト名(ドメインなし)を返します。
  • shorthost - 最初のドットより前のホスト名部分を返します。 名前にドットが含まれない場合は、文字列全体を返します。
  • fqdn - 完全修飾ドメイン名(末尾のドットなし)を返します。

Transform では、ホスト名に対する追加の変換ルールを指定できます。

  • none (デフォルト) - 元の大文字・小文字をそのまま使用します。
  • lower - テキストを小文字に変換します。

そのため、zabbix_agentd.conf ファイルの設定を簡素化し、統一するには、次の 3 つの異なる方法を使用できます。

  1. Hostname または HostnameItem パラメータを未定義のままにし、Zabbix エージェントに NetBIOS ホスト名をホスト名として使用させる。
  2. Hostname パラメータを未定義のままにし、HostnameItem を次のように定義する:
    HostnameItem=system.hostname[host] - Zabbix エージェントに完全な実際の Windows ホスト名(大文字・小文字を区別)をホスト名として使用させます
    HostnameItem=system.hostname[shorthost,lower] - Zabbix エージェントに最初のドットより前のホスト名部分のみを、小文字に変換してホスト名として使用させます。
    HostnameItem=system.hostname[fqdn] - Zabbix エージェントに完全修飾ドメイン名をホスト名として使用させます。

ホスト名は、Windows サービスのインストール、起動、停止、アンインストールに使用される Windows サービス名の一部としても使用されます。たとえば、Zabbix エージェントの設定ファイルに Hostname=Windows_db_server が指定されている場合、エージェントは "Zabbix Agent [Windows_db_server]" という Windows サービスとしてインストールされます。したがって、各 Zabbix エージェントインスタンスに異なる Windows サービス名を持たせるには、各インスタンスで異なるホスト名を使用する必要があります。

エージェントをWindowsサービスとしてインストールする

エージェントをインストールする前に、conf/zabbix_agentd.conf を手動で
zabbix_agentd.exe をインストールするディレクトリにコピーしてください。

デフォルトの設定ファイルで Zabbix エージェントの単一インスタンスをインストールするには、次のようにします。

zabbix_agentd.exe --install

64ビットシステムでは、実行中の64ビットプロセスに関連するすべてのチェックを正しく動作させるために、64ビット版の Zabbix エージェントが必要です。

デフォルト以外の設定ファイルを使用する場合は、サービスのインストールに次のコマンドを使用してください。

zabbix_agentd.exe --config <your_configuration_file> --install

設定ファイルにはフルパスを指定する必要があります。

Zabbix エージェントの複数インスタンスは、次のようにサービスとしてインストールできます。

  zabbix_agentd.exe --config <configuration_file_for_instance_1> --install --multiple-agents
  zabbix_agentd.exe --config <configuration_file_for_instance_2> --install --multiple-agents
  ...
  zabbix_agentd.exe --config <configuration_file_for_instance_N> --install --multiple-agents

インストールされたサービスは、コントロールパネルに表示されるようになります。

エージェントの起動

エージェントサービスを開始するには、コントロールパネルを使用するか、コマンドラインから実行します。

デフォルトの設定ファイルでZabbixエージェントの単一インスタンスを起動するには:

 zabbix_agentd.exe --start

Zabbixエージェントの単一インスタンスを別の設定ファイルで起動するには:

 zabbix_agentd.exe --config <your_configuration_file> --start

Zabbixエージェントの複数インスタンスのうち1つを開始するには:

 zabbix_agentd.exe --config <configuration_file_for_this_instance> --start --multiple-agents

エージェントの停止

エージェントサービスを停止するには、コントロールパネルを使用するか、コマンドラインからコマンドを実行します。

デフォルトの設定ファイルで開始されたZabbixエージェントの単一インスタンスを停止するには

 zabbix_agentd.exe --stop

別の設定ファイルで開始されたZabbixエージェントの単一インスタンスを停止するには

 zabbix_agentd.exe --config <your_configuration_file> --stop

Zabbixエージェントの複数インスタンスのうち1つを停止するには

 zabbix_agentd.exe --config <configuration_file_for_this_instance> --stop --multiple-agents

Windowsサービスとしてのエージェントのアンインストール

デフォルトの設定ファイルを使用してZabbixエージェントの単一インスタンスをアンインストールするには

   zabbix_agentd.exe --uninstall

デフォルト以外の設定ファイルを使用してZabbixエージェントの単一インスタンスをアンインストールするには

   zabbix_agentd.exe --config <your_configuration_file> --uninstall

WindowsサービスからZabbixエージェントの複数のインスタンスをアンインストールするには

  zabbix_agentd.exe --config <configuration_file_for_instance_1> --uninstall --multiple-agents
  zabbix_agentd.exe --config <configuration_file_for_instance_2> --uninstall --multiple-agents
  ...
  zabbix_agentd.exe --config <configuration_file_for_instance_N> --uninstall --multiple-agents

制限

Windows用Zabbixエージェントは、CPUがNUMAノード全体に不均一に分散されている非標準のWindows構成をサポートしていません。論理CPUが不均一に分散されている場合、一部のCPUではCPUパフォーマンスメトリックが使用できない場合があります。たとえば、2つのNUMAノードを持つ72個の論理CPUがある場合、両方のノードにそれぞれ36個のCPUが必要です。