2 Zabbixエージェント

概要

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

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

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

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

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

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

エージェントのチェックタイプは、対応する監視アイテムタイプを選択することで設定します。 Zabbixエージェントは、「Zabbixエージェント」または「Zabbixエージェント(アクティブ)」タイプのアイテムを処理します。

サポートしているプラットフォーム

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

UNIX系OS上のZabbixエージェント

UNIX系OS上の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上でのZabbixエージェント

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

インストール

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

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

オプション

1つのホストで複数のエージェントインスタンスを実行することができます。 1つのインスタンスはデフォルトの設定ファイル、またはコマンドラインで指定した設定ファイルを使用できます。 複数のインスタンスを実行する場合、各エージェントインスタンスは独自の設定ファイルを持つ必要があります(インスタンスの1つはデフォルトの設定ファイルを使用できます)。

Zabbixエージェントで使用できるコマンドラインパラメータは以下の通りです:

パラメータ 説明
UNIXおよびWindowsエージェント
-c --config <config-file> 設定ファイルへのパス。
このオプションを使用して、デフォルト以外の設定ファイルを指定できます。
UNIXの場合、デフォルトは /usr/local/etc/zabbix_agentd.conf または コンパイル時の変数 --sysconfdir または --prefix で設定されたもの
Windowsの場合、デフォルトは C:\Program Files\Zabbix Agent\zabbix_agentd.conf
-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"キーのユーザーパラメータをテスト
  • デフォルトの設定ファイルパスC:\Program Files\Zabbix Agent\zabbix_agentd.confを使用してWindows用の"Zabbix Agent"サービスをインストール
  • エージェント実行ファイルと同じフォルダにある設定ファイルzabbix_agentd.confを使用し、サービス名を設定ファイルのHostname値で拡張して一意にした"Zabbix Agent [Hostname]"サービスをWindowsにインストール
  • エージェント実行ファイルと同じフォルダにある設定ファイルzabbix_agentd.confを使用して、インストール済みの"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>] ログレベルを上げます。
ターゲットが指定されていない場合、すべてのプロセスが対象となります。
ターゲットは以下のように指定できます:
プロセスタイプ - 指定したタイプのすべてのプロセス(例: listener)
すべてのエージェントプロセスタイプを参照してください。
プロセスタイプ,N - プロセスタイプと番号(例: listener,3)
pid - プロセスID(1~65535)。より大きな値の場合は、ターゲットを 'process-type,N' のように指定してください。
log_level_decrease[=<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'ユーザーに切り替わります。 エージェントを'root'として実行するには、エージェントの設定ファイルで'AllowRoot'パラメータを適切に変更する必要があります。

設定ファイル

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

ロケール

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

終了コード

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