[comment]: # aside: 4

[comment]: # ({bfc59573-d60be363})
# エージェント 2

[comment]: # ({/bfc59573-d60be363})

[comment]: # ({386923f3-734dc3ed})
### 概要

Zabbix agent 2 は、Go で書かれた [Zabbix エージェント](/manual/concepts/agent) の新世代版です（Zabbix エージェントの一部の C コードを再利用しています）。
次の目的で設計されています。

-   TCP 接続数を削減する
-   [チェックの並列性](#check-concurrency) を改善する
-   長時間実行されるスクリプトや、定期的なレポートを伴うスタンドアロンのデータ収集から成る複雑なチェックをサポートしつつ、シンプルなチェックを最小限のコードで提供するプラグインによって、容易に拡張できるようにする
-   Zabbix エージェントの代替として機能し、従来のすべての機能をサポートする

Zabbix agent 2 のすべてのメトリクスは、プラグインによって収集されます。

これらの機能は、プラグインに固有のものです。

-   パッシブチェックとアクティブチェックの両方に対する、スケジュール済みおよび柔軟な間隔
-   スケジュールとタスクの並列性を考慮したタスクキュー管理
-   プラグインレベルのタイムアウト
-   起動時の Zabbix agent 2 とそのプラグインの互換性チェック

プラグインには 2 種類あります。

-   [組み込みプラグイン](/manual/concepts/agent2/builtin_plugins)
-   [ロード可能プラグイン](/manual/concepts/agent2/loadable_plugins)

独自の [プラグイン](/devel/plugins) を作成することもできます。

独自作成したプラグインを agent 2 に組み込む必要はありません。
ロード可能プラグインとして追加できるため、新しいメトリクス向けのプラグイン作成を簡素化できます。

ロード可能プラグインは、Zabbix agent 2 を再コンパイルすることなく、実行時に追加できます。

[comment]: # ({/386923f3-734dc3ed})

[comment]: # ({850cb5ea-eaa0f2bb})
##### パッシブチェックとアクティブチェック

Zabbix エージェント 2 は、Zabbix エージェントと同様に、[パッシブチェックとアクティブチェック](/manual/concepts/agent#passive-and-active-checks)をサポートしています。  
さらに、Zabbix エージェント 2 のアクティブチェックは、1つのアクティブサーバー内で[柔軟な/スケジューリング間隔](/manual/config/items/item/custom_intervals)と[チェックの同時実行](#check-concurrency)をサポートしています。

::: noteclassic
デフォルトでは、再起動後、Zabbix エージェント 2 はリソース使用量の急増を防ぐため、アクティブチェックの最初のデータ収集を、アイテムの更新間隔内の条件付きでランダムな時刻にスケジュールします。  
エージェントの再起動直後に、*スケジューリング* [更新間隔](/manual/config/items/item/custom_intervals#scheduling-intervals)を持たないアクティブチェックを実行するには、[設定ファイル](/manual/concepts/agent2/agent2_params)で `ForceActiveChecksOnStart` パラメータ（グローバルレベル）または `Plugins.<Plugin name>.System.ForceActiveChecksOnStart`（特定のプラグインチェックにのみ影響）を設定します。  
プラグインレベルのパラメータが設定されている場合は、グローバルパラメータよりも優先されます。
:::

[comment]: # ({/850cb5ea-eaa0f2bb})

[comment]: # ({c777f783-05ea1336})
##### 同時実行数の確認

異なるプラグインからのチェックは同時に実行できます。  
1つのプラグイン内で同時に実行できるチェック数は、プラグインのキャパシティ設定によって制限されます。  
各プラグインには、ハードコードされたキャパシティ設定（既定値は `1000`）があり、`Plugins` 設定の [パラメータ](#configuration-file) である `Plugins.<PluginName>.System.Capacity=N` を使用して下げることができます。

[comment]: # ({/c777f783-05ea1336})

[comment]: # ({e1fcda65-a2064519})
### サポート対象プラットフォーム

サポート対象プラットフォームについては、[要件](/manual/installation/requirements#supported-platforms)ページを参照してください。

[comment]: # ({/e1fcda65-a2064519})

[comment]: # ({fd4e7e87-72764340})
### Unix系システム上のエージェント 2

Unix系システム上の Zabbix エージェント 2 は、監視対象のホスト上で実行されます。

[comment]: # ({/fd4e7e87-72764340})

[comment]: # ({ca8909ad-cabc0f5f})
##### インストール

Zabbix エージェント 2 は、Linux ベースのシステムに以下のいずれかの方法でインストールできます。

-   [Zabbix パッケージ](https://www.zabbix.com/download?zabbix=8.0) - Zabbix のバージョン、OS ディストリビューション、OS バージョンを選択した後、Agent 2 コンポーネントを選択し、手順に従ってください。
-   [Zabbix ソース](https://www.zabbix.com/download_sources#pre-release) - ソースファイルをダウンロードし、`--enable-agent2` オプションを指定して [設定](/manual/installation/install/sources#4-configure-the-sources) し、エージェントをコンパイルします。

::: noteclassic
Zabbix エージェント 2 の監視機能は、個別に提供されるロード可能なプラグインによって拡張できます。
詳細は [ロード可能なプラグイン](/manual/concepts/agent2/loadable_plugins) を参照してください。
:::

[comment]: # ({/ca8909ad-cabc0f5f})

[comment]: # ({f46eec4a-710d239c})
##### パッケージとしてインストールされている場合

Zabbix エージェント 2 はフォアグラウンドプロセスとして動作し、バックグラウンド実行には外部のサービスマネージャー（例: systemd）に依存します。  
Zabbix エージェント 2 には、Linux 上でのデーモン化を行うための組み込みサポートはありません。

エージェントは次のコマンドで起動できます:

```bash
systemctl start zabbix-agent2
```

Zabbix エージェント 2 を停止、再起動、または状態確認するには、次のコマンドを使用します:

```bash
systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
```

[comment]: # ({/f46eec4a-710d239c})

[comment]: # ({d6099b39-87c53fa7})
##### 手動で起動する

`zabbix_agent2` バイナリを見つけて直接実行することで、Zabbix エージェントを起動できます。たとえば、次のようにします。

```bash
zabbix_agent2
```

[comment]: # ({/d6099b39-87c53fa7})

[comment]: # ({bc8e1518-466bb9c2})
### Windows システム上のエージェント 2

Zabbix エージェント 2 はスタンドアロンのプロセスとして実行されますが、Windows サービスとしても実行できます。

[comment]: # ({/bc8e1518-466bb9c2})

[comment]: # ({4d20ca06-214485f8})
##### インストール

Zabbixエージェント 2 は、Windows では次のいずれかの方法でインストールできます。

-   [コンパイル済み Zabbixエージェント バイナリ](https://www.zabbix.com/download_agents?version=8.0+LTS) - エージェントの MSI インストーラーパッケージをダウンロードし、[MSI からの Windows エージェントのインストール](/manual/installation/install/win_msi) ページの手順に従ってください。
-   [Zabbix ソース](https://www.zabbix.com/download_sources#pre-release) - ソースファイルをダウンロードし、[Windows での Zabbixエージェント 2 のビルド](/manual/installation/install/win_agent2) ページの手順に従ってください。

::: noteclassic
Zabbixエージェント 2 の監視機能は、別途提供されるロード可能なプラグインによって拡張できます。
詳細については、[ロード可能なプラグイン](/manual/concepts/agent2/loadable_plugins) を参照してください。
:::

ZIP アーカイブから Zabbixエージェント 2 を Windows サービスとしてインストールする場合の追加情報については、[Microsoft Windows 上の Zabbixエージェント](/manual/appendix/install/windows_agent#installing-agent-as-windows-service) ページを参照してください。

[comment]: # ({/4d20ca06-214485f8})

[comment]: # ({5884c14f-45c02f12})
### オプション

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

|Parameter|Description|
|--|--------|
|**UNIX and Windows agent**|<|
|`-c --config <config-file>`|[設定ファイル](/manual/concepts/agent2#configuration-file)へのパス。<br>このオプションを使用すると、デフォルト以外の設定ファイルを指定できます。|
|`-f --foreground`|Zabbix エージェントをフォアグラウンドで実行します（デフォルト: true）。|
|`-p --print`|既知のアイテムを表示して終了します。<br>[ユーザーパラメータ](/manual/config/items/userparameters)の結果も返すには、設定ファイルを指定する必要があります（デフォルトの場所にない場合）。|
|`-t --test <item key>`|指定したアイテムをテストして終了します。<br>[ユーザーパラメータ](/manual/config/items/userparameters)の結果も返すには、設定ファイルを指定する必要があります（デフォルトの場所にない場合）。|
|`-T --test-config`|設定ファイルを検証して終了します。|
|`-h --help`|ヘルプ情報を表示して終了します。|
|`-v --verbose`|デバッグ情報を表示します。このオプションは `-p` および `-t` オプションと併用してください。|
|`-V --version`|エージェントのバージョンとライセンス情報を表示します。|
|`-R --runtime-control <option>`|管理機能を実行します。[runtime control](/manual/concepts/agent2#runtime-control) を参照してください。|
|**Windows agent only**|<|
|`-m --multiple-agents`|複数のエージェントインスタンスを使用します（`-i`、`-d`、`-s`、`-x` オプションと併用）。<br>インスタンスのサービス名を区別するため、各サービス名には指定した設定ファイルの Hostname 値が含まれます。|
|`-S --startup-type <value>`|Zabbix Windows エージェントサービスの起動タイプを設定します。使用可能な値:<br>`automatic` - *(default)* Windows 起動時にサービスを自動的に開始します;<br>`delayed` - 自動起動するサービスの起動完了後にサービスの開始を遅延します;<br>`manual` - サービスを手動で開始します（ユーザーまたはアプリケーションによる）;<br>`disabled` - サービスを無効化し、ユーザーまたはアプリケーションから開始できないようにします。<br>このオプションは `-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 サービスの起動タイプを変更する。

```bash
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
```

[comment]: # ({/5884c14f-45c02f12})

[comment]: # ({dc4e8af5-11aa0de0})
##### ランタイム制御

ランタイム制御では、リモート制御用のいくつかのオプションを利用できます。

|Option|Description|
|--|--------|
|`log_level_increase`|ログレベルを上げます。|
|`log_level_decrease`|ログレベルを下げます。|
|`metrics`|利用可能なメトリクスを一覧表示します。|
|`version`|エージェントのバージョンを表示します。|
|`userparameter_reload`|現在の設定ファイルから `UserParameter` および `Include` オプションの値を再読み込みします。|
|`help`|ランタイム制御のヘルプ情報を表示します。|

例:

-   エージェント 2 のログレベルを上げる。
-   ランタイム制御オプションを表示する。

```bash
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help
```

[comment]: # ({/dc4e8af5-11aa0de0})

[comment]: # ({a5d8808c-77e9b590})
### 設定ファイル

設定ファイルのデフォルトパスは次のとおりです。

-   UNIX では、デフォルトは `/usr/local/etc/zabbix_agent2.conf`、または [コンパイル時](/manual/installation/install/sources#configure-the-sources) 変数 `--sysconfdir` または `--prefix` で設定された値です。
-   Windows では、デフォルトは `C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf` です。

エージェントの単一インスタンスがホスト上で実行されている場合、デフォルトの設定ファイル、または [コマンドライン](/manual/concepts/agent2#options) で指定した設定ファイルを使用できます。
複数インスタンスの場合は、各エージェントインスタンスがそれぞれ独自の設定ファイルを持つ必要があります（インスタンスのうち 1 つはデフォルトの設定ファイルを使用できます）。

Zabbix agent 2 の設定パラメータは、いくつかの例外を除き、主に Zabbix agent のものと一致します。

|Parameters|<|Description|
|-|---------|----------|
|Zabbix agent 2-specific configuration parameters|<|<|
| |`ControlSocket`|実行時制御ソケットのパスです。Zabbix agent 2 は [実行時コマンド](#runtime-control) に control socket を使用します。|
| |`EnablePersistentBuffer`,<br>`PersistentBufferFile`,<br>`PersistentBufferPeriod`|これらのパラメータは、アクティブアイテム向けに Zabbix agent 2 の永続ストレージを設定するために使用します。|
| |`ForceActiveChecksOnStart`|再起動直後にアクティブチェックを実行するか、時間を均等に分散して実行するかを決定します。|
| |`Plugins`|プラグインには、`Plugins.<Plugin name>.<Parameter>=<value>` 形式で独自のパラメータを指定できます。一般的なプラグインパラメータとして `System.Capacity` があり、同時に実行できるチェック数の上限を設定します。|
| |`StatusPort`|HTTP ステータス要求を受け付けるポート、および設定済みプラグインの一覧といくつかの内部パラメータを表示するために Zabbix agent 2 が待ち受けるポートです。|
|Zabbix agent-specific configuration parameters not supported on Zabbix agent 2|<|<|
| |`AllowRoot`,<br>`User`|デーモン化をサポートしていないため、Zabbix agent 2 ではサポートされません。|
| |`EnableRemoteCommands`|非推奨です。代わりに、両方のエージェントで `AllowKey` と `DenyKey` パラメータを使用します。|
| |`ListenBacklog`|Zabbix agent で TCP キュー内の保留中接続の最大数を定義するために使用します。Zabbix agent 2 ではサポートされません。|
| |`LoadModule`,<br>`LoadModulePath`|ロード可能なモジュールは Zabbix agent 2 ではサポートされません。|
| |`MaxLinesPerSecond`,<br>`LogRemoteCommands`|Zabbix agent 2 では、代わりに `Plugins.Log.MaxLinesPerSecond` と `Plugins.SystemRun.LogRemoteCommands` を使用します。|
| |`StartAgents`|このパラメータは、Zabbix agent でパッシブチェックの同時実行数を増やす、または無効化するために使用します。Zabbix agent 2 では、同時実行数はプラグインレベルで設定され、capacity 設定で制限できます。`Server` パラメータが指定されていない場合、Zabbix Agent 2 ではパッシブチェックは無効になります。|

詳細については、[Zabbix agent2](/manual/concepts/agent2/agent2_params) の設定ファイルオプションを参照してください。

[comment]: # ({/a5d8808c-77e9b590})

[comment]: # ({1e1f10a4-472820ac})
### 終了コード

Zabbix エージェント 2 は、古い OpenSSL バージョン (1.0.1、1.0.2) でもコンパイルできます。

この場合、Zabbix は OpenSSL のロック用にミューテックスを提供します。
ミューテックスのロックまたはアンロックに失敗すると、エラーメッセージが標準エラーストリーム (STDERR) に出力され、エージェント 2 はそれぞれ戻りコード `2` または `3` で終了します。

[comment]: # ({/1e1f10a4-472820ac})
