エージェント

概要

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にインストールできます。

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

オプション

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

Parameter Description
UNIX and Windows agent
-c --config <config-file> 設定ファイルへのパス。
このオプションを使用すると、デフォルト以外の設定ファイルを指定できます。
-f --foreground Zabbix エージェントをフォアグラウンドで実行します(デフォルト: true)。
-p --print 既知のアイテムを表示して終了します。
ユーザーパラメータの結果も返すには、設定ファイルを指定する必要があります(デフォルトの場所にない場合)。
-t --test <item key> 指定したアイテムをテストして終了します。
ユーザーパラメータの結果も返すには、設定ファイルを指定する必要があります(デフォルトの場所にない場合)。
-T --test-config 設定ファイルを検証して終了します。
-h --help ヘルプ情報を表示します。
-V --version バージョン番号を表示します。
UNIX agent only
-R --runtime-control <option> 管理機能を実行します。runtime control を参照してください。
Windows agent only
-m --multiple-agents 複数のエージェントインスタンスを使用します(-i-d-s-x オプションと併用)。
各インスタンスのサービス名を区別するため、各サービス名には指定した設定ファイルの Hostname 値が含まれます。
-S --startup-type <value> Zabbix Windows エージェントサービスの起動種類を設定します。使用可能な値:
automatic - (default) 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 キーのユーザーパラメータをテストする。
  • 設定ファイルのデフォルトパス C:\\Program Files\\Zabbix Agent\\zabbix_agentd.conf を使用して、Windows 用の Zabbix Agent サービスをインストールする。
  • エージェント実行ファイルと同じフォルダにある zabbix_agentd.conf 設定ファイルを使用し、設定ファイルの Hostname 値を追加してサービス名を一意にした Windows 用の Zabbix Agent [Hostname] サービスをインストールする。
  • エージェント実行ファイルと同じフォルダにある zabbix_agentd.conf 設定ファイルを使用して、インストール済みの 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
ランタイム制御

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

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

例:

  • すべてのプロセスのログレベルを上げる
  • 3番目の listener プロセスのログレベルを上げる
  • 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' ユーザーに切り替わります。このユーザーはシステム上に存在している必要があります。 エージェントを 'root' として実行できるのは、エージェントの設定ファイルで AllowRoot パラメータを適切に変更した場合のみです。

設定ファイル

設定ファイルのデフォルトパスは次のとおりです。

  • UNIX では、デフォルトは /usr/local/etc/zabbix_agentd.conf、または コンパイル時 変数 --sysconfdir もしくは --prefix で指定された値です。
  • Windows では、デフォルトは C:\\Program Files\\Zabbix Agent\\zabbix_agentd.conf です。

ホスト上でエージェントの単一インスタンスが動作している場合は、デフォルトの設定ファイル、または コマンドライン で指定した設定ファイルを使用できます。
複数インスタンスの場合は、各エージェントインスタンスがそれぞれ独自の設定ファイルを持つ必要があります(そのうち1つのインスタンスはデフォルトの設定ファイルを使用できます)。

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

ロケール

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

終了コード

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