You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

2 プラグイン

概要

プラグインは、Zabbix agent 2の監視機能を拡張します。 Goプログラミング言語で記述されており、ロード可能モジュール(Cで記述)や、Zabbixの機能を拡張するためのその他の方法の代替手段を提供します。

これらの機能は、agent 2およびそのプラグインに固有のものです。

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

Zabbix agent 2がサポートするすべてのメトリクスは、プラグインによって収集されます。 このページでは、ユーザーの視点からプラグインの設定原則について説明し、Zabbixが提供する組み込みおよびロード可能なプラグインの両方を一覧表示します。

Zabbix 6.0以降、プラグインはagent 2に組み込む必要がなくなりました。 ロード可能なプラグインとして追加できるため、新しいメトリクス用のプラグイン作成が簡単になります。 独自のプラグイン作成手順については、Developer centerおよびZabbix agent 2用のサンプルプラグインを参照してください。

プラグインの設定

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

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

一般的なプラグインパラメータは、以下の構造を持ちます。

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

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

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

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

たとえば、アクティブチェックで、Scheduling 更新間隔を持たないものを、エージェントの再起動直後にUptimeプラグインのみに対して実行するには、設定ファイル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 agent 2はデフォルトパラメータセクションで定義された値を使用してメトリックの収集を試みます。

名前付きセッション

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

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

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

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

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

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

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

パラメータの優先順位

Zabbix agent 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

この設定の結果、各セッション名はitemキーの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

組み込みプラグイン

Zabbix agent 2 の組み込みプラグインは、すぐに利用できます。 プラグイン名をクリックすると、追加情報が記載されたプラグインリポジトリに移動します。

プラグイン名 説明 サポートされているアイテムキー コメント
Agent 使用中のZabbixエージェントのメトリクス。 agent.hostname, agent.ping, agent.version サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
CPU システムCPUの監視(CPU/CPUコア数、検出されたCPU、使用率)。 system.cpu.discovery, system.cpu.num, system.cpu.util サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
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
詳細は以下も参照:
設定パラメータ
File ファイルメトリクスの収集。 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エージェントのkeysと同じパラメータを持ちます。
Kernel カーネルの監視。 kernel.maxfiles, kernel.maxproc サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
Log ログファイルの監視。 log, log.count, logrt, logrt.count サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。

詳細は以下も参照:
プラグイン設定パラメータ(Unix/Windows)
Memcached Memcachedサーバーの監視。 memcached.ping, memcached.stats
Modbus Modbusデータの読み取り。 modbus.get サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
MQTT MQTTトピックの公開値の受信。 mqtt.get MQTTブローカーへの暗号化接続を設定するには、エージェント設定ファイルでTLSパラメータを名前付きセッションまたはデフォルトパラメータとして指定します。現在、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パラメータを名前付きセッションまたはデフォルトパラメータとして指定します。現在、TLSパラメータはアイテムキーのパラメータとして渡すことはできません。
NetIf ネットワークインターフェースの監視。 net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
Oracle Oracle Databaseの監視。 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 Redisへの暗号化接続を設定するには、エージェント設定ファイルでTLSパラメータを名前付きセッションまたはデフォルトパラメータとして指定します。TLSパラメータはアイテムキーのパラメータとして渡すことはできません。TLSの設定が誤っている、または無効な場合、Zabbix agent 2の起動ができなくなることがあるため、証明書ファイル、権限、パスを有効化前に確認してください。
Smart S.M.A.R.T.監視。 smart.attribute.discovery, smart.disk.discovery, smart.disk.get 必要なsmartctlの最小バージョンは7.1です。
Zabbix agent 2を実行するユーザーには、smartctlへのsudo/root権限が必要です。プラグインは以下のコマンドのみを使用します:
/usr/sbin/smartctl -a *
/usr/sbin/smartctl --scan *
/usr/sbin/smartctl -j -V

サポートされているkeysは、Linux/Windows上のZabbix agent 2でのみ、パッシブ・アクティブチェックの両方で使用できます。
詳細は以下も参照:
設定パラメータ
SW インストール済みパッケージの一覧取得。 system.sw.packages, system.sw.packages.get サポートされているキーは、Zabbixエージェントのkeyと同じパラメータを持ちます。
Swap スワップ領域のサイズ(バイト/パーセンテージ)。 system.swap.size サポートされているキーは、Zabbixエージェントのkeyと同じパラメータを持ちます。
SystemRun 指定したコマンドの実行。 system.run サポートされているキーは、Zabbixエージェントのkeyと同じパラメータを持ちます。

詳細は以下も参照:
プラグイン設定パラメータ(Unix/Windows)
Systemd systemdサービスの監視。 systemd.unit.discovery, systemd.unit.get, systemd.unit.info
TCP TCP接続の可用性チェック。 net.tcp.port サポートされているキーは、Zabbixエージェントのkeyと同じパラメータを持ちます。
UDP UDPサービスの可用性とパフォーマンスの監視。 net.udp.service, net.udp.service.perf サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
Uname システム情報の取得。 system.hostname, system.sw.arch, system.uname サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
Uptime システム稼働時間メトリクスの収集。 system.uptime サポートされているキーは、Zabbixエージェントのkeyと同じパラメータを持ちます。
VFSDev VFSメトリクスの収集。 vfs.dev.discovery, vfs.dev.read, vfs.dev.write サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
WebCertificate TLS/SSLウェブサイト証明書の監視。 web.certificate.get
WebPage ウェブページの監視。 web.page.get, web.page.perf, web.page.regexp サポートされているキーは、Zabbixエージェントのkeysと同じパラメータを持ちます。
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エージェントのkeysと同じパラメータを持ちます。

ロード可能なプラグイン

Zabbix agent 2 のロード可能なプラグインは、デフォルトでは利用できず、別途インストールが必要です。

プラグインをインストールする前に、README ファイルを確認してください。 特定の要件やインストール手順が記載されている場合があります。

プラグイン名をクリックすると、追加情報を含むプラグインの README ファイルがあるプラグインリポジトリに移動します。

プラグイン名 説明 サポートされているアイテムキー コメント
Ceph Ceph の監視。 ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
Ceph プラグインの設定パラメータも参照してください。
Ember+ Ember+ の監視。 ember.get 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 パラメータを 名前付きセッションパラメータとして指定します。
現在、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 パラメータを 名前付きセッションまたはデフォルトパラメータとして指定します。現在、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.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.frequency, nvml.device.temperature, nvml.device.utilization, nvml.device.video.frequency, 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 パラメータを 名前付きセッションまたはデフォルトパラメータとして指定します。
現在、TLS パラメータはアイテムキーのパラメータとして渡すことはできません。

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

ロード可能なプラグインは、以下のオプションで起動できます:
- -V --version - プラグインのバージョンとライセンス情報を表示;
- -h --help - ヘルプ情報を表示;
- -t, --test <item key> — テスト用にプラグインを起動(プラグイン設定は無視されます)。