プラグインは、Zabbix の監視機能を拡張するオプションを提供します。プラグインは Go プログラミング言語で記述されており、Zabbix エージェント 2 でのみサポートされます。 プラグインは、C 言語で記述された ロード可能なモジュール や、Zabbix の機能を拡張するための その他の方法 に代わる手段を提供します。
以下の機能は、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=zabbix、Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 など
これらのパラメータの値がアイテムキーまたは名前付きセッションパラメータに指定されていない場合、プラグインはデフォルト値を使用します。デフォルトパラメータも定義されていない場合は、ハードコードされたデフォルト値が使用されます。
アイテムキーにパラメータが指定されていない場合、Zabbixエージェント2はデフォルトパラメータセクションで定義された値を使用してメトリックの収集を試みます。
名前付きセッションは、プラグインパラメータの追加レベルを表し、監視対象のインスタンスごとに個別の認証パラメータセットを指定するために使用できます。 各名前付きセッションパラメータは、以下の構造を持つ必要があります。
Plugins.<プラグイン名>.Sessions.<セッション名>.<パラメータ>=<値>
URI、ユーザー名、パスワードを個別に指定する代わりに、connString アイテムキーパラメータとしてセッション名を使用できます。
アイテムキーでは、最初のパラメータは connString または URI のいずれかになります。 最初のキーパラメータがどのセッション名にも一致しない場合は、URI として扱われます。 アイテムキーに埋め込まれた URI 認証情報を渡すことはサポートされていないため、代わりに名前付きセッションパラメータを使用してください。
使用可能な 名前付きセッションパラメータ のリストは、プラグインによって異なります。
アイテムキーパラメータに新しい値を指定することにより、セッションパラメータを上書きすることができます(例 を参照)
名前付きセッションにパラメータが定義されていない場合、Zabbixエージェント2はデフォルトプラグインパラメータで定義された値を使用します。
Zabbix エージェント 2 プラグインは、接続関連のパラメータ値を以下の順序で検索します。
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.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:
デフォルトの設定パラメータを使用してメトリックを収集します。
設定パラメータ:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password
アイテムキー: pgsql.ping[,,,postgres]
この設定の結果、エージェントは以下のパラメータを使用して PostgreSQL に接続します。
プラグインによっては、複数のインスタンスから同時にメトリクスを収集することをサポートしています。
ローカルとリモートの両方のインスタンスを監視することができます。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. |
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 プラグイン設定パラメータも参照してください。 |
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 - ヘルプ情報を表示します。