3 Zabbixエージェント2

概要

Zabbixエージェント 2 は、Go で記述された新世代の Zabbixエージェント です(Zabbixエージェント の一部の C コードを再利用しています)。 これは、以下を目的として設計されています。

  • TCP 接続数を削減する。
  • チェックの並行性を向上させる。
  • プラグインによって容易に拡張できるようにする。プラグインは、最小限のコードでシンプルなチェックを提供し、長時間実行されるスクリプトや定期レポートを伴う独立したデータ収集で構成される複雑なチェックもサポートする。
  • これまでのすべての機能をサポートし、Zabbixエージェント の置き換えとして機能する。

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エージェント 2 の監視機能は、別途提供されるロード可能なプラグインによって拡張できます。 詳細については、ロード可能なプラグイン を参照してください。

Windows サービスとして Zabbixエージェント 2 を(ZIP アーカイブから)インストールする際の追加情報については、Microsoft Windows 上の Zabbixエージェント ページを参照してください。

オプション

Zabbixエージェント2では次のコマンドラインパラメーターを使用できます:

パラメーター 説明
UNIXとWindowsエージェント
-c --config <config-file> 設定ファイルへのパスを指定します。
このオプションを使用してデフォルトではない設定ファイルを指定できます。
UNIXの場合、デフォルトは/usr/local/etc/zabbix_agent2.confであるか、コンパイル時の変数--sysconfdirまたは--prefixで設定されます。
Windowsの場合、デフォルトはC:\Program Files\Zabbix Agent 2\zabbix_agent2.confです。
-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エージェントのみ
-m --multiple-agents 複数のエージェントインスタンスを使用する (-i, -d, -s, -xオプションと一緒に)。
インスタンスのサービス名を区別するために、各サービス名には、指定された設定ファイルのホスト名の値が含まれます。
-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"キーを使用してユーザーパラメーターをテストする
  • Windowsの"Zabbixエージェント"サービスを設定ファイルC:\Program Files\Zabbix Agent 2\zabbix_agent2.confのデフォルトのパスを用いてインストールする
  • エージェントの実行可能ファイルと同じフォルダーにある構成ファイル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 HTTP ステータス要求を受け付け、設定済みプラグインの一覧および一部の内部パラメータを表示するために、Zabbix agent 2 が待ち受けるポートです。
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で終了します。