3 Zabbixエージェント2
概要
Zabbixエージェント 2 は、Zabbixエージェント の新世代版であり、Go で記述されています(Zabbixエージェントの一部の C コードを再利用しています)。 これは、次のことを目的として設計されています。
- TCP 接続数を削減する。
- チェックの並行実行性を向上させる。
- 最小限のコードでシンプルなチェックを提供するプラグインや、長時間実行されるスクリプトや定期レポートを伴う独立したデータ収集で構成される複雑なチェックをサポートするプラグインによって、容易に拡張できるようにする。
- これまでのすべての機能をサポートし、Zabbixエージェントの置き換えとして機能する。
Zabbixエージェント 2 のすべてのメトリクスは、プラグインによって収集されます。
以下の機能はプラグイン固有のものです。
- パッシブチェックとアクティブチェックの両方に対するスケジュール間隔および柔軟な間隔
- スケジュールおよびタスクの並行実行性を考慮したタスクキュー管理
- プラグインレベルのタイムアウト
- 起動時の Zabbixエージェント 2 とそのプラグインの互換性チェック
プラグインには 2 種類あります。
独自のプラグインを作成することもできます。
独自に作成したプラグインは、エージェント 2 に組み込む必要はありません。ロード可能なプラグインとして追加できるため、新しいメトリクス用プラグインの作成を簡素化できます。
ロード可能なプラグインは、Zabbixエージェント 2 を再コンパイルすることなく、実行時に追加できます。
パッシブチェックとアクティブチェック
Zabbixエージェント2はZabbixエージェントと同様にパッシブおよびアクティブチェックをサポートしています。 さらに、Zabbixエージェント2アクティブチェックは、柔軟な/スケジューリング間隔をサポートし、1つのアクティブサーバー内の同時実行性をチェックします。
デフォルトでは、Zabbixエージェント2はリソース使用量の急増を防ぐために、アイテムの更新間隔内の条件付きランダム時間にアクティブチェックの最初のデータ収集をスケジュールします。エージェントの再起動直後に予定された更新確認間隔にないアクティブチェックを実行するには、設定ファイルでForceActiveChecksOnStartパラメーター(グローバルレベル)またはPlugins.<プラグイン名>.System.ForceActiveChecksOnStart (特定のプラグインチェックにのみ影響します)を設定します。プラグインレベルのパラメーターが設定されている場合、グローバルパラメーターを上書きします。
同時実行性の確認
異なるプラグインからのチェックは同時に実行できます。1つのプラグイン内で同時に実行されるチェック数は、プラグインのcapacity設定によって制限されます。各プラグインにはハードコードされたcapacity設定(デフォルトは1000)がある場合があり、Plugins設定パラメータの Plugins.<PluginName>.System.Capacity=N 設定を使用してこの値を下げることができます。
サポートしているプラットフォーム
サポートしているプラットフォームについては、要件ページを参照してください。
UNIX系OS上のZabbixエージェント2
UNIX系OS上の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 および Windows エージェント | |
| -c --config <config-file> | 設定ファイルへのパス。 このオプションを使用して、デフォルト以外の設定ファイルを指定できます。 UNIX では、デフォルトは /usr/local/etc/zabbix_agent2.conf、または compile-time 変数 --sysconfdir または --prefix で設定された値です。 Windows では、デフォルトは C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf です。 |
| -f --foreground | Zabbix エージェントをフォアグラウンドで実行します(デフォルト: true)。 |
| -p --print | 既知のアイテムを表示して終了します。 注: user parameter の結果も返すには、設定ファイルを指定する必要があります(デフォルトの場所にない場合)。 |
| -t --test <item key> | 指定したアイテムをテストして終了します。 注: user parameter の結果も返すには、設定ファイルを指定する必要があります(デフォルトの場所にない場合)。 |
| -T --test-config | 設定ファイルを検証して終了します。 |
| -h --help | ヘルプ情報を表示して終了します。 |
| -v --verbose | デバッグ情報を表示します。このオプションは -p および -t オプションと一緒に使用してください。 |
| -V --version | エージェントのバージョンおよびライセンス情報を表示します。 |
| -R --runtime-control <option> | 管理機能を実行します。runtime control を参照してください。 |
| Windows エージェントのみ | |
| -m --multiple-agents | 複数のエージェントインスタンスを使用します(-i、-d、-s、-x オプションと併用)。 インスタンスのサービス名を区別するため、各サービス名には指定した設定ファイルの Hostname 値が含まれます。 |
| -S --startup-type <value> | Zabbix Windows エージェントサービスの起動タイプを設定します。使用可能な値:automatic - (デフォルト) Windows 起動時にサービスを自動的に開始します。delayed - 自動開始されるサービスの起動完了後に、サービスの開始を遅らせます。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 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
ランタイム制御
ランタイム制御は、リモート制御のためのいくつかのオプションを提供します。
| オプション | 説明 |
|---|---|
| log_level_increase | ログレベルを上げます。 |
| log_level_decrease | ログレベルを下げます。 |
| metrics | 利用可能なメトリックを一覧表示します。 |
| version | エージェントのバージョンを表示します。 |
| userparameter_reload | 現在の設定ファイルからUserParameterおよびIncludeオプションの値を再ロードします。 |
| help | ランタイムコントロールのヘルプを表示します。 |
例:
- エージェント2のログレベルを上げます
- ランタイム制御オプションを出力します
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help
設定ファイル
Zabbix agent 2 の設定パラメータは、一部の例外を除き、ほとんどが Zabbix エージェントのものと一致しています。
| パラメータ | 説明 | |
|---|---|---|
| Zabbix agent 2 固有の設定パラメータ | ||
| 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 エージェント固有の設定パラメータで、Zabbix agent 2 ではサポートされないもの | ||
| AllowRoot, User |
デーモン化をサポートしていないため、Zabbix agent 2 ではサポートされません。 | |
| EnableRemoteCommands | 非推奨です。代わりに、両方のエージェントで AllowKey および DenyKey パラメータが使用されます。 |
|
| ListenBacklog | Zabbix エージェントでは、TCP キュー内の保留中接続の最大数を定義するために使用されます。Zabbix agent 2 ではサポートされません。 | |
| LoadModule, LoadModulePath |
ロード可能なモジュールは Zabbix agent 2 ではサポートされません。 | |
| MaxLinesPerSecond, LogRemoteCommands |
Zabbix agent 2 では、代わりに Plugins.Log.MaxLinesPerSecond および Plugins.SystemRun.LogRemoteCommands が使用されます。 |
|
| StartAgents | このパラメータは、Zabbix エージェントではパッシブチェックの並行性を高めるか、無効化するために使用されます。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で終了します。