This is a translation of the original English documentation page. Help us make it better.

2 プラグイン

概要

プラグインは、Zabbix の監視機能を拡張するオプションを提供します。プラグインは Go プログラミング言語で記述されており、Zabbix エージェント 2 でのみサポートされます。 プラグインは、C 言語で記述された ロード可能なモジュール や、Zabbix の機能を拡張するための その他の方法 に代わる手段を提供します。

以下の機能は、Zabbix エージェント 2 とそのプラグインに固有のものです。

  • パッシブチェックとアクティブチェックの両方において、スケジュールされた間隔と柔軟な間隔のサポート
  • スケジュールとタスクの同時実行を考慮したタスクキューの管理
  • プラグインレベルのタイムアウト
  • 起動時の Zabbix エージェント 2 とそのプラグインの互換性チェック

Zabbix 6.0 以降、プラグインはエージェント 2 に直接統合する必要がなくなり、ロード可能なプラグインとして追加できるようになりました。これにより、新しい監視メトリックを収集するための追加プラグインの作成プロセスが容易になります。

このページでは、Zabbix のネイティブプラグインとロード可能プラグインの一覧を示し、ユーザーの観点からプラグイン設定の原則について説明します。

独自のプラグインの作成手順については、開発者センター および Zabbix エージェント 2 用サンプルプラグイン を参照してください。

Zabbix エージェント 2 とロード可能プラグイン間の通信プロセス、およびメトリック収集プロセスの詳細については、接続図 を参照してください。

プラグインの設定

このセクションでは、一般的なプラグイン設定の原則とベストプラクティスについて説明します。

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

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

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

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

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

  • Plugins.<プラグイン名>.<セッション名>.<パラメータ>=<値> は、名前付きセッション を介して、異なる監視対象ごとに個別のパラメータセットを定義するために使用されます。

すべてのパラメータ名は、以下の要件に準拠する必要があります。

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

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

デフォルト値

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

Plugins.<プラグイン名>.Default.<パラメータ>=<値>

例:Plugins.Mysql.Default.Username=zabbixPlugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 など

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

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

名前付きセッション

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

Plugins.<プラグイン名>.Sessions.<セッション名>.<パラメータ>=<値>

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

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

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

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

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

パラメータの優先順位

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

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

Monitoring of two instances “MySQL1” and “MySQL2”.

Configuration parameters:

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

Item keys: mysql.ping[MySQL1], mysql.ping[MySQL2]

Example 2

Providing some of the parameters in the item key (supported since Zabbix 6.4.2).

Configuration parameters:

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

Item key: pgsql.ping[session1,new_username,,postgres]

As a result of this configuration, the agent will connect to PostgreSQL using the following parameters:

  • URI from session parameter: 192.0.2.234:5432
  • Username from the item key: new_username
  • Password from session parameter (since it is omitted in the item key): session_password
  • Database name from the item key: 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

プラグイン

Zabbix agent 2 でサポートされているすべてのメトリックは、プラグインによって収集されます。

Built-in

Zabbixエージェント2用の以下のプラグインは、すぐにご利用いただけます。プラグイン名をクリックすると、プラグインリポジトリに移動し、詳細情報をご確認いただけます。

プラグイン名 説明 サポートされているアイテムキー コメント
エージェント 使用されている Zabbix エージェントのメトリック agent.hostname、agent.ping、agent.version サポートされているキーには、Zabbix エージェントの キー と同じパラメーターがあります。
Ceph Ceph モニタリング ceph.df.details、ceph.osd.stats、ceph.osd.discovery、ceph.osd.dump、
ceph.ping、ceph.pool.discovery、ceph.status
CPU システム CPU モニタリング (CPU 数/CPU コア、検出された CPU、使用率) system.cpu.discovery、system.cpu.num、system.cpu.util サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。
Docker Docker コンテナの監視 docker.container_info、docker.container_stats、docker.containers、docker.containers.discovery、
docker.data_usage、docker.images、docker.images.discovery、docker.info、docker.ping
参照:
構成パラメータ
ファイル ファイル メトリックのコレクション vfs.file.cksum、vfs.file.contents、vfs.file.exists、vfs.file.md5sum、
vfs.file.regexp、vfs.file.regmatch、vfs.file.size、vfs.file.time
サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。
カーネル カーネル監視 kernel.maxfiles、kernel.maxproc サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。
ログ ログファイルの監視 log、log.count、logrt、logrt.count サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。

参照:
プラグイン構成パラメーター (Unix/Windows)
Memcached Memcached サーバーの監視 memcached.ping、memcached.stats
Modbus Modbus データを読み取ります。 modbus.get サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。
MQTT MQTTトピックの公開値を受け取ります。 mqtt.get MQTTブローカーへの暗号化接続を設定するには、エージェント設定ファイルでTLSパラメータをnamed sessionまたはdefaultパラメータとして指定します。現在、TLSパラメータをアイテムキーパラメータとして渡すことはできません。
MySQL MySQLとそのフォークの監視 mysql.custom.query、mysql.db.discovery、mysql.db.size、mysql.get_status_variables、
mysql.ping、mysql.replication.discovery、mysql.replication.get_slave_status、mysql.version
データベースへの暗号化接続を設定するには、エージェント設定ファイルでTLSパラメータをnamed sessionまたはdefaultパラメータとして指定します。現在、TLSパラメータをアイテムキーパラメータとして渡すことはできません。
NetIf ネットワーク インターフェースの監視 net.if.collisions、net.if.discovery、net.if.in、net.if.out、net.if.total サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。
Oracle Oracle データベースの監視 oracle.diskgroups.stats、oracle.diskgroups.discovery、oracle.archive.info、oracle.archive.discovery、
oracle.cdb.info、oracle.custom.query、oracle.datafiles.stats、oracle.db.discovery、
oracle.fra.stats、oracle.instance.info、oracle.pdb.info、oracle.pdb.discovery、
oracle.pga.stats、oracle.ping、oracle.proc.stats、 oracle.redolog.info、
oracle.sga.stats、oracle.sessions.stats、oracle.sys.metrics、oracle.sys.params、
oracle.ts.stats、oracle.ts.discovery、oracle.user.info、oracle.version
プラグインを使用する前に、Oracle Instant Client をインストールしてください。
Proc プロセスの CPU 使用率 proc.cpu.util サポートされているキーには、Zabbix エージェントの key と同じパラメーターがあります。
Redis Redis サーバーの監視 redis.config、redis.info、redis.ping、redis.slowlog.count
スマート S.M.A.R.T. モニタリング smart.attribute.discovery、smart.disk.discovery、smart.disk.get 必要な最小 smartctl バージョンは 7.1 です。
Zabbix エージェント 2 を実行するユーザーには、smartctl への sudo/root アクセス権が必要です。プラグインは次のコマンドのみを使用します:
/usr/sbin/smartctl -a *
/usr/sbin/smartctl --scan *
/usr/sbin/smartctl -j -V

サポートされている キー は、パッシブ チェックとアクティブ チェックの両方として、Linux/Windows 上の Zabbix エージェント 2 でのみ使用できます。
参照:
構成パラメータ
SW インストールされているパッケージの一覧 system.sw.packages、system.sw.packages.get サポートされているキーには、Zabbix エージェントの key と同じパラメーターがあります。
スワップ スワップ領域のサイズ(バイト/パーセンテージ) system.swap.size サポートされているキーには、Zabbix エージェントの キー と同じパラメーターがあります。
SystemRun 指定されたコマンドを実行します。 system.run サポートされているキーには、Zabbix エージェントの key と同じパラメーターがあります。

参照:
プラグイン構成パラメーター (Unix/Windows)
Systemd systemd サービスの監視 systemd.unit.discovery、systemd.unit.get、systemd.unit.info
TCP TCP 接続の可用性チェック net.tcp.port サポートされているキーは、Zabbix エージェントの キー と同じパラメーターを持ちます。
UDP UDP サービスの可用性とパフォーマンスを監視 net.udp.service、net.udp.service.perf サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。
Uname システムに関する情報の取得 system.hostname、system.sw.arch、system.uname サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。
稼働時間 システム稼働時間メトリックの収集 system.uptime サポートされているキーには、Zabbix エージェントの キー と同じパラメーターがあります。
VFSDev VFS メトリック コレクション vfs.dev.discovery、vfs.dev.read、vfs.dev.write サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。
WebCertificate TLS/SSL ウェブサイト証明書の監視 web.certificate.get
Webページ Webページの監視 web.page.get、web.page.perf、web.page.regexp サポートされているキーのパラメーターは、Zabbixエージェントのキーと同じです。
ZabbixAsync 非同期メトリック収集 net.tcp.listen、net.udp.listen、sensor、system.boottime、system.cpu.intr、system.cpu.load、
system.cpu.switches、system.hw.cpu、system.hw.macaddr、system.localtime、system.sw.os、
system.swap.in、system.swap.out、vfs.fs.discovery
サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。
ZabbixStats Zabbix サーバー/プロキシの内部メトリックまたはキュー内の遅延アイテムの数 zabbix.stats サポートされているキーには、Zabbix エージェントの keys と同じパラメーターがあります。
ZabbixSync 同期メトリック収集 net.dns、net.dns.record、net.tcp.service、net.tcp.service.perf、proc.mem、
proc.num、system.hw.chassis、system.hw.devices、system.sw.packages、
system.users.num、vfs.dir.count、vfs.dir.size、vfs.fs.get、vfs.fs.inode、
vfs.fs.size、vm.memory.size
サポートされているキーのパラメーターは、Zabbixエージェントと同じです。 キー
ロード可能

Zabbixエージェント2用のロード可能なプラグインは、そのままでは利用できないため、別途インストールする必要があります。

プラグイン名をクリックすると、詳細情報を含むプラグインリポジトリに移動します。

プラグイン名 説明 サポートされているアイテムキー コメント
Ember+ Ember+ の監視 ember.get 現在はソースからのビルドのみ利用可能です (Unix および Windows 両方)

Ember+ プラグイン設定パラメータ も参照してください。
MongoDB MongoDBサーバーとクラスターの監視(ドキュメントベースの分散データベース) mongodb.collection.stats、mongodb.collections.discovery、mongodb.collections.usage、mongodb.connpool.stats、
mongodb.db.stats、mongodb.db.discovery、mongodb.jumbo_chunks.count、mongodb.oplog.stats、
mongodb.ping、mongodb.rs.config、mongodb.rs.status、mongodb.server.status、
mongodb.sh.discovery、mongodb.version
データベースへの暗号化された接続を構成するには、エージェント構成ファイルでTLSパラメータをnamedセッション パラメータとして指定
現在、TLS パラメータをアイテムキーパラメータとして渡すことはできません。

MongoDB プラグイン設定パラメータ も参照してください。
MSSQL MSSQL データベースの監視 mssql.availability.group.get、mssql.custom.query、mssql.db.get、mssql.job.status.get、mssql.last.backup.get、mssql.local.db.get、mssql.mirroring.get、mssql.nonlocal.db.get、mssql.perfcounter.get、mssql.ping、mssql.quorum.get、mssql.quorum.member.get、mssql.replica.get、mssql.version データベースへの暗号化された接続を構成するには、エージェント構成ファイルで TLS パラメーターを named session または default パラメーターとして指定します。現在、TLS パラメータをアイテムキーパラメータとして渡すことはできません。

MSSQL プラグイン設定パラメータも参照してください。
NVIDIA GPU NVIDIA GPU の監視 nvml.device.count、nvml.device.decoder.utilization、nvml.device.ecc.mode、nvml.device.encoder.stats.get、nvml.device.encoder.utilization、nvml.device.energy.consumption、nvml.device.errors.memory、nvml.device.errors、nvml.device.errors.register、nvml.device.fan.speed.avg、nvml.device.get、nvml.device.graphics.frequency、nvml.device.memory.bar1.get、nvml.device.memory.fb.get、nvml.device.memory.frequency、 nvml.device.pci.utilization、nvml.device.performance.state、nvml.device.power.limit、nvml.device.power.usage、nvml.device.serial、nvml.device.sm.freq、nvml.device.temperature、nvml.device.utilization、nvml.device.video.freq、nvml.system.driver.version、nvml.version NVIDIA GPUプラグインの設定パラメータも参照してください。
PostgreSQL PostgreSQLとそのフォークの監視。 pgsql.autovacuum.count、pgsql.archive、pgsql.bgwriter、pgsql.cache.hit、pgsql.connections、
pgsql.custom.query、pgsql.dbstat、pgsql.dbstat.sum、pgsql.db.age、pgsql.db.bloating_tables、
pgsql.db.discovery、pgsql.db.size、pgsql.locks、pgsql.oldest.xid、pgsql.ping、pgsql.queries、
pgsql.replication.count、pgsql.replication.process、pgsql.replication.process.discovery、pgsql.replication.recovery_role、 pgsql.replication.status、
pgsql.replication_lag.b、pgsql.replication_lag.sec、pgsql.uptime、pgsql.version、pgsql.wal.stat
データベースへの暗号化接続を設定するには、エージェント設定ファイルでTLSパラメータをnamed sessionまたはdefaultパラメータとして指定
現在、TLSパラメータをアイテムキーパラメータとして渡すことはできません。

PostgreSQLプラグイン設定パラメータも参照してください。

以下のコマンドで起動した場合の読み込み可能なプラグイン:
- -V --version - プラグインのバージョンとライセンス情報を表示します。
- -h --help - ヘルプ情報を表示します。