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エージェント 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.MaxLinesPerSecondPlugins.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 で終了します。