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パッケージ - 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エージェントバイナリ - ZabbixエージェントのMSIインストーラーパッケージをダウンロードし、MSIからのWindowsエージェントのインストールページの手順に従ってください。
- Zabbixソース - ソースファイルをダウンロードし、WindowsでのZabbixエージェントのビルドページの手順に従ってください。
ZIPアーカイブからZabbixエージェントをWindowsサービスとしてインストールする方法の詳細については、Microsoft Windows上のZabbixエージェントページを参照してください。
オプション
1台のホスト上で、エージェントの複数インスタンスを実行できます。 単一のインスタンスでは、デフォルトの設定ファイル、またはコマンドラインで指定した設定ファイルを使用できます。 複数インスタンスの場合、各エージェントインスタンスはそれぞれ専用の設定ファイルを持つ必要があります(インスタンスの1つはデフォルトの設定ファイルを使用できます)。
以下のコマンドラインパラメータをZabbixエージェントで使用できます。
| Parameter | Description |
|---|---|
| UNIX and Windows agent | |
| -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 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" キーを持つ 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
実行時制御
実行時制御オプションを使用すると、エージェントプロセスのログレベルを変更できます。
| オプション | 説明 | 対象 |
|---|---|---|
| log_level_increase[=<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'パラメータを適切に変更する必要があります。
設定ファイル
Zabbixエージェントの設定の詳細については、zabbix_agentdまたはWindowsエージェントの設定ファイルオプションを参照してください。
ロケール
エージェントが一部のテキストエージェントアイテムで期待される内容を返すためには、UTF-8ロケールが必要です。 ほとんどの最新のUnix系システムではデフォルトでUTF-8ロケールが設定されていますが、システムによっては明示的に設定する必要がある場合があります。
終了コード
Zabbixエージェントは、正常に終了した場合は0を返し、失敗した場合は1を返します。