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

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

オプション

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

Parameter Description
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 - (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 を使用して、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 - パッシブチェックを待ち受けるプロセス。

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

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

プロセスユーザー

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 を返します。