プラグインは、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 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 として扱われます。
ただし、:
使用可能な名前付きセッションパラメータのリストはプラグインによって異なります。詳細は
各プラグインの 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 として使用することができます:
Since version 6.4.3, Zabbix agent 2 plugins search for connection-related parameter values in the following order:
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]
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:
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:
認証に必要なパラメータが item キーや名前付きセッションパラメータで提供されない場合、プラグインはハードコードされた
デフォルト値を使用します。
プラグインによっては、複数のインスタンスから同時にメトリクスを収集することをサポートしています。
ローカルとリモートの両方のインスタンスを監視することができます。TCP および Unix ソケット接続がサポートされています。
インスタンスへの接続をオープン状態に保つようにプラグインを設定することをお勧めします。その利点は、ネットワークの輻輳、
レイテンシー、およびCPUとメモリの使用量を削減できることです。クライアントライブラリは、この処理を行います。
未使用の接続をオープンにしておく時間は、Plugins.<PluginName>.KeepAliveパラメータで決定されます。 例: Plugins.Memcached.KeepAlive
Zabbix agent 2 でサポートされているすべてのメトリックは、プラグインによって収集されます。
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 パラメーターをアイテム キー パラメーターとして渡すことはできません。 |
参照: ロード可能なプラグインの構築.
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.