プラグインは、Zabbix agent 2の監視機能を拡張します。 Goプログラミング言語で記述されており、ロード可能モジュール(Cで記述)や、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つの特定のパラメータグループがあります。
デフォルトパラメータ値を定義するための Plugins.<PluginName>.Default.<Parameter>=<Value> 。
名前付きセッションを介して異なる監視対象ごとに個別のパラメータセットを定義するための Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> 。
すべてのパラメータ名は、以下の要件に従う必要があります。
たとえば、アクティブチェックで、Scheduling 更新間隔を持たないものを、エージェントの再起動直後にUptimeプラグインのみに対して実行するには、設定ファイルで Plugins.Uptime.System.ForceActiveChecksOnStart=1 を設定します。 同様に、CPUプラグインの同時チェック数のカスタム上限を設定するには、設定ファイルで Plugins.CPU.System.Capacity=N を設定します。
接続関連のパラメータ(URI、ユーザー名、パスワードなど)のデフォルト値は、設定ファイルで以下の形式で設定できます。
例えば、Plugins.Mysql.Default.Username=zabbix、Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017などです。
このようなパラメータの値がアイテムキーや名前付きセッションパラメータで指定されていない場合、プラグインはデフォルト値を使用します。 デフォルトパラメータも未定義の場合は、ハードコードされたデフォルト値が使用されます。
アイテムキーにパラメータが指定されていない場合、Zabbix agent 2はデフォルトパラメータセクションで定義された値を使用してメトリックの収集を試みます。
名前付きセッションは、プラグインパラメータの追加レベルを表し、監視対象の各インスタンスごとに個別の認証パラメータセットを指定するために使用できます。 各名前付きセッションパラメータは、以下の構造を持つ必要があります。
セッション名は、URI、ユーザー名、および/またはパスワードを個別に指定する代わりに、connStringアイテムキーのパラメータとして使用できます。
アイテムキーでは、最初のパラメータはconnStringまたはURIのいずれかです。 最初のキーのパラメータがセッション名と一致しない場合、それはURIとして扱われます。 アイテムキーで埋め込みURI認証情報を渡すことはサポートされていないため、代わりに名前付きセッションパラメータを使用してください。
利用可能な名前付きセッションパラメータのリストは、プラグインによって異なります。
アイテムキーのパラメータで新しい値を指定することで、セッションパラメータを上書きすることができます(例を参照)。
名前付きセッションにパラメータが定義されていない場合、Zabbix agent 2はデフォルトのプラグインパラメータで定義された値を使用します。
Zabbix agent 2 プラグインは、接続に関連するパラメータ値を以下の順序で検索します:

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]。
アイテムキーで一部のパラメータを指定する。
設定パラメータ:
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に接続します:
192.0.2.234:5432new_usernamesession_passwordpostgresデフォルトの構成パラメータを使用してメトリックを収集します。
構成パラメータ:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=passwordアイテムキー: pgsql.ping[,,,postgres]
この構成の結果、エージェントは以下のパラメータを使用してPostgreSQLに接続します:
192.0.2.234:5432zabbixpasswordpostgres一部のプラグインは、複数のインスタンスから同時にメトリクスを収集することをサポートしています。 ローカルおよびリモートのインスタンスの両方を監視できます。 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 のロード可能なプラグインは、デフォルトでは利用できず、別途インストールが必要です。
apt install zabbix-agent2-plugin-ember-plus を実行)、またはプラグインをビルドしますプラグインをインストールする前に、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> — テスト用にプラグインを起動(プラグイン設定は無視されます)。