2 Zabbixエージェント

概要

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

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

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

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

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

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

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

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

サポートするプラットフォーム

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

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

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

インストール

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

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

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

事前コンパイル済みのZabbixエージェントバイナリは、macOS、IBM AIX、FreeBSD、OpenBSD、Solaris向けにダウンロードできます。 現在の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上でのZabbixエージェント

Windows上のZabbixエージェントは、Windowsサービスとして実行されます。

インストール

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

Zabbix エージェント(ZIP アーカイブから)を 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 - (既定) 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 を使用して、Windows 用の Zabbix Agent [Hostname] サービスをインストールし、設定ファイルの 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 現在の設定ファイルから UserParameterInclude オプションの値を再読み込みします。

例:

  • すべてのプロセスのログレベルを上げる
  • 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 - パッシブチェックを待ち受けるプロセス。

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

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

プロセスユーザー

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

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

設定ファイル

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

  • UNIX では、デフォルトは /usr/local/etc/zabbix_agentd.conf、または compile-time 変数 --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 を返します。