設定パラメータ: プラグイン

Zabbix エージェント 2 プラグインの設定パラメータについては、次を参照してください:

プラグイン設定の原則

このページでは、プラグイン設定の原則とベストプラクティスについて説明します。

すべてのプラグインは、Plugins.* パラメータを使用して設定します。これは、Zabbix エージェント 2 の 設定ファイル の一部にすることも、プラグイン独自の 設定ファイル にすることもできます。
プラグインが別の設定ファイルを使用する場合は、そのファイルへのパスを Zabbix エージェント 2 の設定ファイルの Include パラメータで指定する必要があります。

一般的なプラグインパラメータの構造は次のとおりです。

Plugins.<PluginName>.<Parameter>=<Value>

さらに、次の 2 つの特定のパラメータグループがあります。

  • Plugins.<PluginName>.Default.<Parameter>=<Value> は、デフォルトのパラメータ値 を定義するために使用します。

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> は、名前付きセッション を通じて、異なる監視対象ごとに別々のパラメータセットを定義するために使用します。

すべてのパラメータ名は、次の要件に従う必要があります。

  • プラグイン名は大文字で始めることを推奨します
  • パラメータ名は大文字で始める必要があります
  • 特殊文字は使用できません
  • ネストの最大階層数に制限はありません
  • パラメータ数に制限はありません

たとえば、Uptime プラグインに対してのみ、エージェント再起動直後に Scheduling 更新間隔 を持たない アクティブチェック を実行するには、設定ファイルPlugins.Uptime.System.ForceActiveChecksOnStart=1 を設定します。
同様に、CPU プラグインの 同時チェック にカスタム制限を設定するには、設定ファイルPlugins.CPU.System.Capacity=N を設定します。

デフォルト値

接続関連のパラメーター(URI、ユーザー名、パスワードなど)のデフォルト値は、設定ファイルで次の形式で指定できます。

Plugins.<PluginName>.Default.<Parameter>=<Value>

たとえば、Plugins.Mysql.Default.Username=zabbixPlugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 などです。

そのようなパラメーターの値がアイテムキーまたは 名前付きセッション のパラメーターで指定されていない場合、プラグインはデフォルト値を使用します。 デフォルトパラメーターも未定義の場合は、ハードコードされたデフォルト値が使用されます。

アイテムキーにパラメーターがない場合、Zabbix エージェント 2 はデフォルトパラメーターセクションで定義された値を使用してメトリックの収集を試みます。

名前付きセッション

名前付きセッションは、プラグインパラメータの追加レベルを表し、監視対象の各インスタンスごとに個別の認証パラメータセットを指定するために使用できます。
各名前付きセッションパラメータは、次の構造を持つ必要があります。

Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>

セッション名は、URI、ユーザー名、パスワードを個別に指定する代わりに、connString アイテムキーのパラメータとして使用できます。

アイテムキーでは、最初のパラメータは connString または URI のいずれかにできます。
最初のキー パラメータがいずれのセッション名にも一致しない場合は、URI として扱われます。
アイテムキーで埋め込み URI 認証情報を渡すことはサポートされていないため、代わりに名前付きセッションパラメータを使用してください。

利用可能な 名前付きセッションパラメータ の一覧は、プラグインによって異なります。

アイテムキーのパラメータで新しい値を指定することで、セッションパラメータを上書きできます( を参照)。

パラメータが名前付きセッションに定義されていない場合、Zabbix エージェント 2 は デフォルトのプラグインパラメータ で定義された値を使用します。

パラメータの優先順位

Zabbix エージェント 2 のプラグインは、接続関連のパラメータ値を次の順序で検索します。

  1. 最初のアイテムキーのパラメータは、セッション名と比較されます。
    一致しない場合は、実際の値として扱われます。この場合、手順 3 はスキップされます。
    一致する場合は、パラメータ値(通常は URI)を、その名前付きセッションで定義する必要があります。
  2. その他のパラメータは、定義されている場合、アイテムキーから取得されます。
  3. アイテムキーのパラメータ(たとえば password)が空の場合、プラグインは対応する名前付きセッションのパラメータを探します。
  4. セッションパラメータも指定されていない場合は、対応するデフォルトパラメータで定義された値が使用されます。
  5. それでも該当しない場合、プラグインはハードコードされたデフォルト値を使用します。

例 1

"MySQL1" と "MySQL2" の 2 つのインスタンスの監視。

設定パラメータ:

Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
Plugins.Mysql.Sessions.MySQL1.User=mysql1_user
Plugins.Mysql.Sessions.MySQL1.Password=unique_password
Plugins.Mysql.Sessions.MySQL2.Uri=tcp://192.0.2.1:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=different_password

この設定の結果、各セッション名は アイテムキー の connString として使用できます。たとえば、mysql.ping[MySQL1] または mysql.ping[MySQL2] です。

例 2

アイテムキーで一部のパラメータを指定する場合。

設定パラメータ:

Plugins.PostgreSQL.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Sessions.Session1.User=old_username
Plugins.PostgreSQL.Sessions.Session1.Password=session_password

アイテムキー: pgsql.ping[session1,new_username,,postgres]

この設定の結果、エージェントは次のパラメータを使用して PostgreSQL に接続します。

  • セッションパラメータからの URI: 192.0.2.234:5432
  • アイテムキーからのユーザー名: new_username
  • セッションパラメータからのパスワード(アイテムキーでは省略されているため): session_password
  • アイテムキーからのデータベース名: postgres

例 3

デフォルトの設定パラメータを使用してメトリックを収集します。

設定パラメータ:

Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password

アイテムキー: pgsql.ping[,,,postgres]

この設定の結果、エージェントは次のパラメータを使用して PostgreSQL に接続します。

  • デフォルト URI: 192.0.2.234:5432
  • デフォルトのユーザー名: zabbix
  • デフォルトのパスワード: password
  • アイテムキーからのデータベース名: postgres

接続

一部のプラグインは、複数のインスタンスから同時にメトリクスを収集することをサポートしています。 ローカルおよびリモートの両方のインスタンスを監視できます。 TCP および Unix ソケット接続がサポートされています。

プラグインは、インスタンスへの接続をオープン状態に維持するように設定することを推奨します。 接続数が少なくなるため、ネットワークの混雑、遅延、CPU およびメモリ使用量を削減できるという利点があります。 この処理はクライアントライブラリが担当します。

未使用の接続をオープン状態のまま維持する期間は、Plugins.<PluginName>.KeepAlive パラメータで指定できます。 例: Plugins.Memcached.KeepAlive