エージェント

概要

Zabbix エージェントは、ローカルのリソースやアプリケーション(ハードディスク、メモリ、プロセッサ統計など)を能動的に監視するために、監視対象に導入されます。

エージェントは運用情報をローカルで収集し、さらなる処理のためにデータを Zabbix サーバーへ報告します。 障害が発生した場合(ハードディスクの容量がいっぱいになる、またはサービスプロセスがクラッシュするなど)、Zabbix サーバーは、その障害を報告した特定のマシンの管理者に対して能動的に通知できます。

Zabbix エージェントは、統計情報の収集にネイティブのシステムコールを使用するため、非常に効率的です。

1つのホスト上で、エージェントの複数インスタンスを実行できます。

関連項目:

パッシブチェックとアクティブチェック

Zabbix エージェントは、パッシブチェックとアクティブチェックを実行できます。

  • パッシブチェック - Zabbix エージェントは、Zabbix サーバー(またはプロキシ)からの要求に応答します。
    たとえば、サーバーがデータ(CPU負荷など)を要求し、エージェントが結果を返します。
  • アクティブチェック - Zabbix エージェントは、Zabbix サーバー(またはプロキシ)からの要求を待たずにデータを収集して送信します。
    まず、サーバーから監視対象のアイテム一覧(CPU負荷、使用可能メモリなど)を取得し、その後、必要なデータを収集して、新しい値を定期的に返送します。

エージェントのチェックタイプは、該当する監視アイテムタイプを選択して設定します。
Zabbix エージェントは、Zabbix agent または Zabbix agent (active) タイプのアイテムを処理します。

サポート対象プラットフォーム

サポート対象プラットフォームについては、要件ページを参照してください。

Unix系システム上のエージェント

Unix系システム上の Zabbix エージェントは、監視対象のホスト上で実行されます。

インストール

Zabbixエージェントは、以下のいずれかの方法でLinuxベースのシステムにインストールできます。

  • Zabbixパッケージ - Zabbixのバージョン、OSディストリビューション、OSバージョンを選択した後、Agentコンポーネントを選択し、表示される手順に従ってください。
  • Zabbixソース - ソースファイルをダウンロードし、--enable-agentオプションでソースを設定してZabbixエージェントをコンパイルします。

一般的に、32ビットのZabbixエージェントは64ビットシステムでも動作しますが、一部のケースでは失敗する場合があります。

macOS、IBM AIX、FreeBSD、OpenBSD、Solaris用の事前コンパイル済みZabbixエージェントバイナリは、ダウンロードできます。 現在のZabbixサーバー/プロキシバージョンと互換性のあるレガシーバイナリは、NetBSDおよびHP-UX用に利用可能です。

パッケージとしてインストールした場合

Zabbixエージェントはデーモンプロセスとして動作します。 エージェントは以下のコマンドで起動できます。

systemctl start zabbix-agent

これはほとんどのGNU/Linuxシステムで動作します。 他のシステムでは、以下のコマンドを実行する必要があるかもしれません。

/etc/init.d/zabbix-agent start

Zabbixエージェントを停止、再起動、またはステータスを確認するには、以下のコマンドを使用します。

systemctl stop zabbix-agent
systemctl restart zabbix-agent
systemctl status zabbix-agent
手動で起動する

zabbix_agentdバイナリを見つけて直接実行することで、Zabbixエージェントを起動できます。例:

zabbix_agentd

Windowsシステム上のエージェント

Windows上のZabbixエージェントは、Windowsサービスとして動作します。

インストール

Zabbix エージェントは、Windows では次のいずれかの方法でインストールできます。

Zabbix エージェントを Windows サービスとしてインストールする方法(ZIP アーカイブから)についての追加情報は、Microsoft Windows 上の Zabbix エージェント ページを参照してください。

オプション

Zabbix エージェントでは、次のコマンドラインパラメータを使用できます。

パラメータ 説明
UNIX および Windows エージェント
-c --config <config-file> 設定ファイルへのパス。
デフォルト以外の設定ファイルを指定する場合に使用できます。
-f --foreground Zabbix エージェントをフォアグラウンドで実行します(デフォルト: true)。
-p --print 認識されているアイテムを出力して終了します。
ユーザーパラメータの結果も返すには、設定ファイルがデフォルトの場所にない場合、その設定ファイルを指定する必要があります。
-t --test <item key> 指定したアイテムをテストして終了します。
ユーザーパラメータの結果も返すには、設定ファイルがデフォルトの場所にない場合、その設定ファイルを指定する必要があります。
-T --test-config 設定ファイルを検証して終了します。
-h --help ヘルプ情報を表示します。
-V --version バージョン番号を表示します。
UNIX エージェントのみ
-R --runtime-control <option> 管理機能を実行します。ランタイムコントロールを参照してください。
Windows エージェントのみ
-m --multiple-agents 複数のエージェントインスタンスを使用します(-i-d-s-x オプションと併用)。
インスタンスのサービス名を区別するため、各サービス名には指定した設定ファイルの Hostname の値が含まれます。
-S --startup-type <value> Zabbix Windows エージェントサービスのスタートアップの種類を設定します。使用できる値:
automatic - (デフォルト) Windows の起動時にサービスを自動的に開始します。
delayed - 自動的に開始されるサービスの起動が完了した後に、サービスの開始を遅延させます(Windows Server 2008/Vista 以降で使用可能)。
manual - サービスを手動で開始します(ユーザーまたはアプリケーションによる)。
disabled - サービスを無効にし、ユーザーまたはアプリケーションが開始できないようにします。
このオプションは -i オプションと併用することも、インストール済みサービスのスタートアップの種類を変更するために単独で使用することもできます。
-i --install Zabbix Windows エージェントをサービスとしてインストールします。
-d --uninstall Zabbix Windows エージェントサービスをアンインストールします。
-s --start Zabbix Windows エージェントサービスを開始します。
-x --stop Zabbix Windows エージェントサービスを停止します。

コマンドラインパラメータの使用例:

  • 値を含む、組み込みエージェントアイテムをすべて出力する。
  • 指定した設定ファイルで mysql.ping キーが定義されているユーザーパラメータをテストする。
  • 設定ファイルのデフォルトパスを使用して、Windows 用の Zabbix Agent サービスをインストールする。
  • エージェント実行ファイルと同じフォルダーにある設定ファイルを使用して、Windows 用の Zabbix Agent [Hostname] サービスをインストールし、設定ファイルの Hostname の値をサービス名に追加して一意にする。
  • エージェント実行ファイルと同じフォルダーにある設定ファイルを使用して、インストール済みの Windows 用 Zabbix Agent サービスのスタートアップの種類を変更する。
zabbix_agentd --print
zabbix_agentd -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agentd.exe -i
zabbix_agentd.exe -i -m -c zabbix_agentd.conf
zabbix_agentd.exe -c zabbix_agentd.conf -S delayed
ランタイム制御

ランタイム制御オプションを使用すると、エージェントプロセスのログレベルを変更できます。

オプション 説明 対象
log_level_increase[=<target>] ログレベルを上げます。
target を指定しない場合、すべてのプロセスが影響を受けます。
対象は次のように指定できます。
プロセスタイプ - 指定したタイプのすべてのプロセス(例: listener
すべてのエージェントプロセスタイプを参照してください。
プロセスタイプ,N - プロセスタイプと番号(例: listener,3
pid - プロセス識別子(165535)。これより大きい値を指定する場合は、対象を「プロセスタイプ,N」の形式で指定してください。
log_level_decrease[=<target>] ログレベルを下げます。
target を指定しない場合、すべてのプロセスが影響を受けます。
userparameter_reload 現在の設定ファイルから、UserParameterおよびIncludeオプションの値を再読み込みします。

例:

  • すべてのプロセスのログレベルを上げる
  • 3番目のリスナープロセスのログレベルを上げる
  • PID 1234のプロセスのログレベルを上げる
  • すべてのアクティブチェックプロセスのログレベルを下げる
zabbix_agentd -R log_level_increase
zabbix_agentd -R log_level_increase=listener,3
zabbix_agentd -R log_level_increase=1234
zabbix_agentd -R log_level_decrease="active checks"

OpenBSD、NetBSD、Windowsではランタイム制御はサポートされていません。

エージェントプロセスの種類

エージェントのプロセスの種類は次のとおりです。

  • active checks - アクティブチェックを実行するプロセス。
  • collector - データ収集を行うプロセス。
  • listener - パッシブチェックを待ち受けるプロセス。

これらのプロセスの種類は、エージェントのログファイルで確認できます。

エージェントのログファイルは、ファイル所有者のみが読み書きできる権限で作成されます。 さらに、このファイルは所有者グループによる読み取りが可能です。 それ以外の権限はすべて拒否されます。

ユーザーとして実行

UNIX上のZabbixエージェントは、root以外のユーザーとして実行するように設計されています。 起動したroot以外のユーザーとして実行されます。 そのため、問題なく任意のroot以外のユーザーとしてエージェントを実行できます。

「root」として実行しようとすると、ハードコードされた「zabbix」ユーザーに切り替わります。このユーザーはシステム上に存在している必要があります。 エージェント設定ファイルの AllowRoot パラメータを適切に変更した場合にのみ、「root」としてエージェントを実行できます。

設定ファイル

設定ファイルのデフォルトパスは、オペレーティングシステムとZabbixのインストール方法によって異なります。

  • UNIXの場合、デフォルトは次のとおりです。
    • ソースからインストールした場合: /usr/local/etc/zabbix_agentd.conf、またはコンパイル時の変数 --sysconfdir または --prefix で設定したパス。
    • パッケージまたはアプライアンスからインストールした場合: /etc/zabbix/zabbix_agentd.conf
  • Windowsの場合、デフォルトは C:\Program Files\Zabbix Agent\zabbix_agentd.conf です。

ホスト上でエージェントのインスタンスを1つだけ実行している場合は、デフォルトの設定ファイル、またはコマンドラインで指定した設定ファイルを使用できます。 複数のインスタンスを実行する場合は、各エージェントインスタンスに専用の設定ファイルが必要です(いずれかのインスタンスではデフォルトの設定ファイルを使用できます)。

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

ロケール

エージェントは UTF-8 ロケールを必要とするため、一部のテキスト系エージェントアイテムが期待どおりの内容を返せるようにしてください。 ほとんどの最新の Unix 系システムでは UTF-8 ロケールがデフォルトですが、明示的に設定する必要があるシステムもあります。

終了コード

Zabbix エージェントは、正常終了の場合に 0 を返し、失敗の場合に 1 を返します。