2 Zabbixエージェント

概要

Zabbixエージェントは、ローカルリソースやアプリケーション(ハードドライブ、メモリ、プロセッサ統計情報など)を能動的に監視するために、監視対象に配置されます。

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

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

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

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

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

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

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

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

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

UNIX系OS上の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エージェントページを参照してください。

オプション

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

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

Parameter Description
UNIX および Windows エージェント
-c --config <config-file> 設定ファイルへのパス。
このオプションを使用して、デフォルト以外の設定ファイルを指定できます。
UNIX でのデフォルトは /usr/local/etc/zabbix_agentd.conf、または compile-time 変数 --sysconfdir または --prefix で設定された値です。
Windows でのデフォルトは C:\Program Files\Zabbix Agent\zabbix_agentd.conf です。
-f --foreground Zabbixエージェントをフォアグラウンドで実行します(デフォルト: true)。
-p --print 既知のアイテムを表示して終了します。
: user parameter の結果も返すには、設定ファイルを指定する必要があります(デフォルトの場所にない場合)。
-t --test <item key> 指定したアイテムをテストして終了します。
: user parameter の結果も返すには、設定ファイルを指定する必要があります(デフォルトの場所にない場合)。
-T --test-config 設定ファイルを検証して終了します。
-h --help ヘルプ情報を表示します。
-V --version バージョン番号を表示します。
UNIX エージェントのみ
-R --runtime-control <option> 管理機能を実行します。runtime control を参照してください。
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" キーを持つ user parameter をテストする
  • デフォルトの設定ファイルパス 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 現在の設定ファイルから、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 - パッシブチェックを待ち受けるプロセス

これらのプロセスタイプは、エージェントのログファイルを使用して確認できます。

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

実行ユーザー

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

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

設定ファイル

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

ロケール

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

終了コード

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