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

14 プラグイン

概要

プラグインは、Zabbix の監視機能を拡張するオプションを提供します。 プラグインは Go プログラミング言語で記述されており、Zabbix エージェント 2 のみでサポートされています。

Plugins provide an alternative to loadable modules (written in C), and other methods for extending Zabbix functionality, such as user parameters (agent metrics), external checks (agent-less monitoring), and system.run[] Zabbix agent item. プラグインはロード可能モジュール (C言語で記述)に代わるもので、Zabbixの機能を拡張するその他の方法として、ユーザーパラメータ(agent メトリクス)、外部チェック(エージェントレスモニタリング)や system. run[] Zabbix エージェントアイテム があります。

以下の機能は、Zabbix agent 2とそのプラグインに固有のものです:

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

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

このページでは、Zabbix のネイティブでロード可能なプラグインを一覧表示し、ユーザーの観点からプラグイン構成の原則について説明します。 独自のプラグインを作成する手順については、プラグイン開発ガイドラインを参照してください。

プラグインの設定

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

すべてのプラグインは Plugins.* パラメータを使用して設定します。このパラメータは、Zabbix agent 2の[configuration file](/manual/appendix/config/zabbix_agent2)の一部、
またはプラグイン自身の[configuration file](/manual/appendix/config/zabbix_agent2_plugins)のいずれかに設定することが
できます。プラグインが別の設定ファイルを使用する場合、Zabbix agent 2設定ファイルのIncludeパラメータにこのファイルへの
パスを指定する必要があります。

各プラグインのパラメータは、以下のような構造になっている必要があります:

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

パラメータ名は、以下の要件を満たす必要があります:

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

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

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

URI、ユーザー名、パスワードを別々に指定する代わりに、セッション名を connString の item キーパラメーターとして
使用することができます。item キーでは、最初のパラメータは connString または Uri のいずれかにすることができます。
最初のキーパラメータが設定ファイルで指定されたセッション名と一致する場合、名前付きセッションパラメータを使用して
チェックが実行されます。最初のキーパラメータがどのセッション名にも一致しない場合、それはUri として扱われます。

ただし、:

  • キーパラメーターに connString (セッション名) を指定する場合、ユーザー名とパスワードのキーパラメーターは空である 必要があります。
  • 埋め込み URI の認証情報を渡すことはサポートされていませんので、代わりに名前付きセッションの使用を検討してください。
  • 名前付きセッションで認証パラメータが指定されない場合、ハードコードされたデフォルト値が使用されます。

使用可能な名前付きセッションパラメータのリストはプラグインによって異なります。詳細は
各プラグインの configuration files を参照してください。

例: 2つのインスタンス "MySQL1" と "MySQL2" の監視は、以下のように設定することができます。:

Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
       Plugins.Mysql.Sessions.MySQL1.User=<UsernameForMySQL1>
       Plugins.Mysql.Sessions.MySQL1.Password=<PasswordForMySQL1>    
       Plugins.Mysql.Sessions.MySQL2.Uri=tcp://127.0.0.1:3307   
       Plugins.Mysql.Sessions.MySQL2.User=<UsernameForMySQL2>
       Plugins.Mysql.Sessions.MySQL2.Password=<PasswordForMySQL2>

これらの名前は、URIの代わりにキーの connString として使用することができます:

mysql.ping[MySQL1]
       mysql.ping[MySQL2]
Parameter priority

Since version 6.4.3, Zabbix agent 2 plugins search for connection-related parameter values in the following order:

  1. The first item key parameter is compared to session names. If no match is found it is treated as an actual value; in this case, step 3 will be skipped. If a match is found, the parameter value (usually, a URI) must be defined in the named session.
  2. Other parameters will be taken from the item key if defined.
  3. If an item key parameter (for example, password) is empty, plugin will look for the corresponding named session parameter.
  4. If the session parameter is also not specified, the value defined in the corresponding default parameter will be used.
  5. If all else fails, the plugin will use the hardcoded default value.
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.0.17).

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
Example 3

Collecting a metric using default configuration parameters.

Configuration parameters:

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

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

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

  • Default URI: 192.0.2.234:5432
  • Default username: zabbix
  • Default password: password
  • Database name from the item key: postgres
ハードコードされたデフォルト値

認証に必要なパラメータが item キーや名前付きセッションパラメータで提供されない場合、プラグインはハードコードされた
デフォルト値を使用します。

コネクション

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

インスタンスへの接続をオープン状態に保つようにプラグインを設定することをお勧めします。その利点は、ネットワークの輻輳、
レイテンシー、およびCPUとメモリの使用量を削減できることです。クライアントライブラリは、この処理を行います。

未使用の接続をオープンにしておく時間は、Plugins.<PluginName>.KeepAliveパラメータで決定されます。 例: Plugins.Memcached.KeepAlive

プラグイン

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

Built-in

The following plugins for Zabbix agent 2 are available out-of-the-box. Click on the plugin name to go to the plugin repository with additional information.

Plugin name Description Supported item keys Comments
Agent Metrics of the Zabbix agent being used. agent.hostname, agent.ping, agent.version Supported keys have the same parameters as Zabbix agent keys.
Ceph Ceph monitoring. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
CPU System CPU monitoring (number of CPUs/CPU cores, discovered CPUs, utilization percentage). system.cpu.discovery, system.cpu.num, system.cpu.util Supported keys have the same parameters as Zabbix agent keys.
Docker Monitoring of Docker containers. docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery,
docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping
See also:
Configuration parameters
File File metrics collection. vfs.file.cksum, vfs.file.contents, vfs.file.exists, vfs.file.md5sum,
vfs.file.regexp, vfs.file.regmatch, vfs.file.size, vfs.file.time
Supported keys have the same parameters as Zabbix agent keys.
Kernel Kernel monitoring. kernel.maxfiles, kernel.maxproc Supported keys have the same parameters as Zabbix agent keys.
Log Log file monitoring. log, log.count, logrt, logrt.count Supported keys have the same parameters as Zabbix agent keys.

See also:
Plugin configuration parameters (Unix/Windows)
Memcached Memcached server monitoring. memcached.ping, memchached.stats
Modbus Reads Modbus data. modbus.get Supported keys have the same parameters as Zabbix agent keys.
MQTT Receives published values of MQTT topics. mqtt.get
MySQL Monitoring of MySQL and its forks. mysql.db.discovery, mysql.db.size, mysql.get_status_variables,
mysql.ping, mysql.replication.discovery, mysql.replication.get_slave_status, mysql.version
To configure encrypted connection to the database, use named sessions and specify the TLS parameters for the named session in the agent configuration file. Currently, TLS parameters cannot be passed as item key parameters.
NetIf Monitoring of network interfaces. net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total Supported keys have the same parameters as Zabbix agent keys.
Oracle Oracle Database monitoring. 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
Install the Oracle Instant Client before using the plugin.
Proc Process CPU utilization percentage. proc.cpu.util Supported key has the same parameters as Zabbix agent key.
Redis Redis server monitoring. redis.config, redis.info, redis.ping, redis.slowlog.count
Smart S.M.A.R.T. monitoring. smart.attribute.discovery, smart.disk.discovery, smart.disk.get Sudo/root access rights to smartctl are required for the user executing Zabbix agent 2. The minimum required smartctl version is 7.1.

Supported keys can be used with Zabbix agent 2 only on Linux/Windows, both as a passive and active check.
See also:
Configuration parameters
Swap Swap space size in bytes/percentage. system.swap.size Supported key has the same parameters as Zabbix agent key.
SystemRun Runs specified command. system.run Supported key has the same parameters as Zabbix agent key.

See also:
Plugin configuration parameters (Unix/Windows)
Systemd Monitoring of systemd services. systemd.unit.discovery, systemd.unit.get, systemd.unit.info
TCP TCP connection availability check. net.tcp.port Supported key has the same parameters as Zabbix agent key.
UDP Monitoring of the UDP services availability and performance. net.udp.service, net.udp.service.perf Supported keys have the same parameters as Zabbix agent keys.
Uname Retrieval of information about the system. system.hostname, system.sw.arch, system.uname Supported keys have the same parameters as Zabbix agent keys.
Uptime System uptime metrics collection. system.uptime Supported key has the same parameters as Zabbix agent key.
VFSDev VFS metrics collection. vfs.dev.discovery, vfs.dev.read, vfs.dev.write Supported keys have the same parameters as Zabbix agent keys.
WebCertificate Monitoring of TLS/SSL website certificates. web.certificate.get
WebPage Web page monitoring. web.page.get, web.page.perf, web.page.regexp Supported keys have the same parameters as Zabbix agent keys.
ZabbixAsync Asynchronous metrics collection. 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
Supported keys have the same parameters as Zabbix agent keys.
ZabbixStats Zabbix server/proxy internal metrics or number of delayed items in a queue. zabbix.stats Supported keys have the same parameters as Zabbix agent keys.
ZabbixSync Synchronous metrics collection. 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.
Supported keys have the same parameters as Zabbix agent keys.
読み込み可

ロード可能なプラグインを以下のオプションで起動した場合: - -V --version - プラグインのバージョンとライセンス情報を出力します。 - -h --help - ヘルプ情報を出力します。

プラグイン名をクリックして、追加情報を含むプラグイン リポジトリに移動します。

プラグイン名 説明 対応アイテムキー コメント
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
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.wal.stat
このプラグインは Zabbix 6.0.10 以降でロード可能です (以前はビルトインでした)。

データベースへの暗号化された接続を構成するには、named_sessions を作成し、エージェント構成ファイルで名前付きセッションの TLS パラメーターを指定します。 現在、TLS パラメーターをアイテム キー パラメーターとして渡すことはできません。

参照: ロード可能なプラグインの構築.

Footnotes

1 - Since Zabbix 6.0.13, loadable plugins started using the same versioning system as Zabbix itself. As a result, MongoDB plugin version has changed from 1.2.1 to 6.0.13.