3 Zabbixエージェント2
概要
Zabbix エージェント 2 は、Go で記述された Zabbix エージェント の新世代版です(Zabbix エージェントの一部の C コードを再利用しています)。 これは次の目的で設計されています。
- TCP 接続数を削減する
- チェックの並列性 を改善する
- 最小限のコードで単純なチェックを提供するプラグインや、長時間実行されるスクリプトおよび定期的なレポートを伴う独立したデータ収集から成る複雑なチェックをサポートするプラグインによって、容易に拡張できるようにする
- Zabbix エージェントの代替として機能し、これまでのすべての機能をサポートする
Zabbix エージェント 2 のすべてのメトリクスは、プラグインによって収集されます。
これらの機能は、プラグインに固有のものです。
- パッシブチェックとアクティブチェックの両方に対する、スケジュールされた柔軟な間隔
- スケジュールとタスクの並列実行を考慮したタスクキュー管理
- プラグインレベルのタイムアウト
- 起動時の Zabbix エージェント 2 とそのプラグインの互換性チェック
プラグインには 2 種類あります。
独自の プラグイン を作成することもできます。
カスタム作成したプラグインをエージェント 2 に組み込む必要はありません。 ロード可能プラグインとして追加できるため、新しいメトリクス向けのプラグイン作成を簡素化できます。
ロード可能プラグインは、Zabbix エージェント 2 を再コンパイルせずに実行時に追加できます。
パッシブチェックとアクティブチェック
Zabbix エージェント 2 は、Zabbix エージェントと同様に、パッシブチェックとアクティブチェックをサポートしています。
さらに、Zabbix エージェント 2 のアクティブチェックは、1つのアクティブサーバー内での柔軟な/スケジューリング間隔およびチェックの同時実行をサポートしています。
デフォルトでは、再起動後、Zabbix エージェント 2 はリソース使用量の急増を防ぐため、アクティブチェックの最初のデータ収集を、アイテムの更新間隔内の条件付きランダムな時刻にスケジュールします。
エージェントの再起動直後に、Scheduling 更新間隔を持たないアクティブチェックを実行するには、設定ファイルで ForceActiveChecksOnStart パラメータ(グローバルレベル)または Plugins.<Plugin name>.System.ForceActiveChecksOnStart(特定のプラグインチェックにのみ影響)を設定します。
プラグインレベルのパラメータが設定されている場合は、グローバルパラメータよりも優先されます。
同時実行数の確認
異なるプラグインからのチェックは同時に実行できます。1つのプラグイン内で同時に実行できるチェック数は、プラグインのキャパシティ設定によって制限されます。
各プラグインには、ハードコードされたキャパシティ設定(デフォルトは 1000)があり、Plugins.<PluginName>.System.Capacity=N 設定を Plugins 設定 パラメータ で指定することで、これを下げることができます。
サポートしているプラットフォーム
サポートしているプラットフォームについては、要件ページを参照してください。
Unix系システム上のエージェント 2
Unix系システム上の Zabbix エージェント 2 は、監視対象のホスト上で実行されます。
インストール
Zabbixエージェント 2 は、Linux ベースのシステムに以下のいずれかの方法でインストールできます。
- Zabbix パッケージ - Agent 2 コンポーネントを選択し(Zabbix のバージョン、OS ディストリビューション、OS バージョンを選択した後)、手順に従ってください。
- Zabbix ソース - ソースファイルをダウンロードし、
--enable-agent2オプションを指定して設定を行い、エージェントをコンパイルしてください。
Zabbixエージェント 2 の監視機能は、別途提供されるロード可能なプラグインによって拡張できます。 詳細については、ロード可能なプラグインを参照してください。
パッケージとしてインストールされている場合
Zabbix エージェント 2 はフォアグラウンドプロセスとして動作し、バックグラウンドで実行するために外部のサービスマネージャー(例: systemd)に依存します。 Zabbix エージェント 2 には、Linux でのデーモン化を行うための組み込みサポートはありません。
エージェントは次のコマンドで起動できます:
systemctl start zabbix-agent2
Zabbix エージェント 2 を停止、再起動、または状態確認するには、次のコマンドを使用します:
systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
手動で起動する
zabbix_agent2 バイナリを見つけて直接実行することで、Zabbix エージェントを起動できます。たとえば、次のようにします。
zabbix_agent2
Windowsシステム上のエージェント2
Zabbixエージェント2はスタンドアロンプロセスとして実行されますが、Windowsサービスとして実行することもできます。
インストール
Zabbixエージェント 2 は、Windows では次のいずれかの方法でインストールできます。
- コンパイル済み Zabbixエージェント バイナリ - エージェントの MSI インストーラーパッケージをダウンロードし、MSI からの Windows エージェントのインストール ページの手順に従ってください。
- Zabbix ソース - ソースファイルをダウンロードし、Windows での Zabbixエージェント 2 のビルド ページの手順に従ってください。
Zabbixエージェント 2 の監視機能は、別途提供されるロード可能なプラグインによって拡張できます。 詳細については、ロード可能なプラグイン を参照してください。
ZIP アーカイブから Zabbixエージェント 2 を Windows サービスとしてインストールする場合の追加情報については、Microsoft Windows 上の Zabbixエージェント ページを参照してください。
オプション
Zabbix エージェント 2 では、以下のコマンドラインパラメータを使用できます。
| Parameter | Description |
|---|---|
| UNIX and Windows agent | |
-c --config <config-file> |
設定ファイルへのパス。 このオプションを使用すると、デフォルト以外の設定ファイルを指定できます。 |
-f --foreground |
Zabbix エージェントをフォアグラウンドで実行します(デフォルト: true)。 |
-p --print |
既知のアイテムを表示して終了します。 ユーザーパラメータの結果も返すには、設定ファイルを指定する必要があります(デフォルトの場所にない場合)。 |
-t --test <item key> |
指定したアイテムをテストして終了します。 ユーザーパラメータの結果も返すには、設定ファイルを指定する必要があります(デフォルトの場所にない場合)。 |
-T --test-config |
設定ファイルを検証して終了します。 |
-h --help |
ヘルプ情報を表示して終了します。 |
-v --verbose |
デバッグ情報を表示します。このオプションは -p および -t オプションと併用してください。 |
-V --version |
エージェントのバージョンとライセンス情報を表示します。 |
-R --runtime-control <option> |
管理機能を実行します。ランタイムコントロールを参照してください。 |
| Windows agent only | |
-m --multiple-agents |
複数のエージェントインスタンスを使用します(-i、-d、-s、-x オプション)。インスタンスのサービス名を区別するため、各サービス名には指定した設定ファイルの Hostname 値が含まれます。 |
-S --startup-type <value> |
Zabbix Windows エージェントサービスの起動タイプを設定します。使用可能な値:automatic - (default) Windows 起動時にサービスを自動的に開始します;delayed - 自動起動するサービスの起動完了後にサービスの開始を遅延します;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 2\\zabbix_agent2.confへのデフォルトパスを使用して、Windows 用の Zabbix Agent サービスをインストールする。 - エージェント実行ファイルと同じフォルダにある設定ファイル
zabbix_agent2.confを使用して、インストール済みの Windows 用 Zabbix Agent サービスの起動タイプを変更する。
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
ランタイム制御
ランタイム制御では、リモート制御用のいくつかのオプションを利用できます。
| Option | Description |
|---|---|
log_level_increase |
ログレベルを上げます。 |
log_level_decrease |
ログレベルを下げます。 |
metrics |
利用可能なメトリクスを一覧表示します。 |
version |
エージェントのバージョンを表示します。 |
userparameter_reload |
現在の設定ファイルから UserParameter および Include オプションの値を再読み込みします。 |
help |
ランタイム制御のヘルプ情報を表示します。 |
例:
- エージェント 2 のログレベルを上げる。
- ランタイム制御オプションを表示する。
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help
設定ファイル
設定ファイルのデフォルトパスは次のとおりです。
- UNIX では、デフォルトは
/usr/local/etc/zabbix_agent2.conf、または コンパイル時 変数--sysconfdirもしくは--prefixで設定された値です。 - Windows では、デフォルトは
C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.confです。
エージェントの単一インスタンスがホスト上で実行されている場合、そのインスタンスはデフォルトの設定ファイル、または コマンドライン で指定された設定ファイルを使用できます。
複数インスタンスの場合、各エージェントインスタンスはそれぞれ独自の設定ファイルを持つ必要があります(インスタンスのうち1つはデフォルトの設定ファイルを使用できます)。
Zabbix agent 2 の設定パラメータは、いくつかの例外を除き、ほとんどが Zabbix agent のものと一致します。
| Parameters | Description | |
|---|---|---|
| Zabbix agent 2-specific configuration parameters | ||
ControlSocket |
実行時制御ソケットのパスです。Zabbix agent 2 は 実行時コマンド に制御ソケットを使用します。 | |
EnablePersistentBuffer,PersistentBufferFile,PersistentBufferPeriod |
これらのパラメータは、アクティブアイテム向けに Zabbix agent 2 の永続ストレージを設定するために使用します。 | |
ForceActiveChecksOnStart |
再起動直後にアクティブチェックを実行するか、時間を均等に分散して実行するかを決定します。 | |
Plugins |
プラグインは、それぞれ独自のパラメータを持つ場合があります。形式は Plugins.<Plugin name>.<Parameter>=<value> です。一般的なプラグインパラメータとして System.Capacity があり、同時に実行できるチェック数の上限を設定します。 |
|
StatusPort |
Zabbix agent 2 が HTTP ステータス要求を受け付けるポート、および設定済みプラグインの一覧と一部の内部パラメータを表示するためのポートです。 | |
| Zabbix agent-specific configuration parameters not supported on Zabbix agent 2 | ||
AllowRoot,User |
デーモン化をサポートしていないため、Zabbix agent 2 ではサポートされません。 | |
EnableRemoteCommands |
非推奨です。代わりに、両方のエージェントで AllowKey および DenyKey パラメータを使用します。 |
|
ListenBacklog |
Zabbix agent では、TCP キュー内の保留中接続の最大数を定義するために使用します。Zabbix agent 2 ではサポートされません。 | |
LoadModule,LoadModulePath |
ロード可能モジュールは Zabbix agent 2 ではサポートされません。 | |
MaxLinesPerSecond,LogRemoteCommands |
Zabbix agent 2 では、代わりに Plugins.Log.MaxLinesPerSecond と Plugins.SystemRun.LogRemoteCommands を使用します。 |
|
StartAgents |
Zabbix agent では、パッシブチェックの同時実行数を増やす、または無効化するために使用します。Zabbix agent 2 では、同時実行数はプラグイン単位で設定され、capacity 設定で制限できます。Server パラメータが指定されていない場合、Zabbix Agent 2 ではパッシブチェックは無効になります。 |
|
詳細については、Zabbix agent2 の設定ファイルオプションを参照してください。
終了コード
Zabbix エージェント 2 は、古い OpenSSL バージョン (1.0.1、1.0.2) でもコンパイルできます。
この場合、Zabbix は OpenSSL 内でのロック用にミューテックスを提供します。
ミューテックスのロックまたはアンロックに失敗すると、エラーメッセージが標準エラーストリーム (STDERR) に出力され、エージェント 2 はそれぞれ戻りコード 2 または 3 で終了します。