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 バージョンを選択した後、エージェントコンポーネントを選択し、表示される手順に従います。
- 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 エージェントのビルド ページの手順に従います。
Zabbix エージェントを Windows サービスとしてインストールする方法(ZIP アーカイブから)についての追加情報は、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- パッシブチェックを待ち受けるプロセス。
これらのプロセス種別は、エージェントのログファイルで確認できます。
Zabbix 7.4.6 以降、エージェントのログファイルはファイル所有者のみが読み書きできる権限で作成されます。 さらに、ファイルは所有者グループによる読み取りが可能です。 それ以外の権限はすべて拒否されます。
プロセスユーザー
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 を返します。