7 プラグインの設定パラメータ

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 agent 2 はデフォルトのプラグインパラメータで定義された値を使用します。

パラメータの優先順位

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

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

例1

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

設定パラメータ:

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.0: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