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

エージェントの設定

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

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

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

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

設定ファイルの例は、Zabbix のソースアーカイブに次のファイルとして含まれています。

  • Zabbix エージェントの場合は conf/zabbix_agentd.conf
  • Zabbix エージェント 2 の場合は conf/zabbix_agent2.conf

設定ファイルを明示的に指定せずに、アーカイブから Windows 用の Zabbix エージェント/エージェント 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 キーは、type と transform という 2 つのオプションパラメーターをサポートしています。

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

  • netbios(デフォルト) - 15 文字以内で、すべて大文字の NetBIOS ホスト名を返します。
  • 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 が指定されている場合、エージェントは Windows サービス「Zabbix Agent [Windows_db_server]」としてインストールされます。 したがって、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エージェントは、NUMAノード間でCPUが不均一に分散されている非標準のWindows構成をサポートしていません。 論理CPUが不均一に分散されている場合、一部のCPUではCPUパフォーマンスメトリクスを利用できないことがあります。 たとえば、72個の論理CPUと2つのNUMAノードがある場合、両方のノードにそれぞれ36個のCPUが必要です。