プラグインは、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 でサポートされているすべてのメトリックは、プラグインによって収集されます。
Zabbixエージェント2用の以下のプラグインは、すぐにご利用いただけます。プラグイン名をクリックすると、プラグインリポジトリに移動し、詳細情報をご確認いただけます。
プラグイン名 | 説明 | サポートされているアイテムキー | コメント |
---|---|---|---|
エージェント | 使用されている Zabbix エージェントのメトリック | agent.hostname、agent.ping、agent.version | サポートされているキーには、Zabbix エージェントの キー と同じパラメーターがあります。 |
Ceph | Ceph モニタリング | ceph.df.details、ceph.osd.stats、ceph.osd.discovery、ceph.osd.dump、 ceph.ping、ceph.pool.discovery、ceph.status |
|
CPU | システム CPU モニタリング (CPU 数/CPU コア、検出された CPU、使用率) | system.cpu.discovery、system.cpu.num、system.cpu.util | サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。 |
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 |
参照: 構成パラメータ |
ファイル | ファイル メトリックのコレクション | 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 エージェントの キー と同じです。 |
カーネル | カーネル監視 | kernel.maxfiles、kernel.maxproc | サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。 |
ログ | ログファイルの監視 | log、log.count、logrt、logrt.count | サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。 参照: プラグイン構成パラメーター (Unix/Windows) |
Memcached | Memcached サーバーの監視 | memcached.ping、memcached.stats | |
Modbus | Modbus データを読み取ります。 | modbus.get | サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。 |
MQTT | MQTTトピックの公開値を受け取ります。 | mqtt.get | MQTTブローカーへの暗号化接続を設定するには、エージェント設定ファイルでTLSパラメータをnamed sessionまたはdefaultパラメータとして指定します。現在、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パラメータをnamed sessionまたはdefaultパラメータとして指定します。現在、TLSパラメータをアイテムキーパラメータとして渡すことはできません。 |
NetIf | ネットワーク インターフェースの監視 | net.if.collisions、net.if.discovery、net.if.in、net.if.out、net.if.total | サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。 |
Oracle | Oracle データベースの監視 | 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 | |
スマート | S.M.A.R.T. モニタリング | smart.attribute.discovery、smart.disk.discovery、smart.disk.get | 必要な最小 smartctl バージョンは 7.1 です。 Zabbix エージェント 2 を実行するユーザーには、smartctl への sudo/root アクセス権が必要です。プラグインは次のコマンドのみを使用します: /usr/sbin/smartctl -a * /usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -V サポートされている キー は、パッシブ チェックとアクティブ チェックの両方として、Linux/Windows 上の Zabbix エージェント 2 でのみ使用できます。 参照: 構成パラメータ |
SW | インストールされているパッケージの一覧 | system.sw.packages、system.sw.packages.get | サポートされているキーには、Zabbix エージェントの key と同じパラメーターがあります。 |
スワップ | スワップ領域のサイズ(バイト/パーセンテージ) | system.swap.size | サポートされているキーには、Zabbix エージェントの キー と同じパラメーターがあります。 |
SystemRun | 指定されたコマンドを実行します。 | system.run | サポートされているキーには、Zabbix エージェントの key と同じパラメーターがあります。 参照: プラグイン構成パラメーター (Unix/Windows) |
Systemd | systemd サービスの監視 | systemd.unit.discovery、systemd.unit.get、systemd.unit.info | |
TCP | TCP 接続の可用性チェック | net.tcp.port | サポートされているキーは、Zabbix エージェントの キー と同じパラメーターを持ちます。 |
UDP | UDP サービスの可用性とパフォーマンスを監視 | net.udp.service、net.udp.service.perf | サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。 |
Uname | システムに関する情報の取得 | system.hostname、system.sw.arch、system.uname | サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。 |
稼働時間 | システム稼働時間メトリックの収集 | system.uptime | サポートされているキーには、Zabbix エージェントの キー と同じパラメーターがあります。 |
VFSDev | VFS メトリック コレクション | vfs.dev.discovery、vfs.dev.read、vfs.dev.write | サポートされているキーのパラメーターは、Zabbix エージェントの keys と同じです。 |
WebCertificate | TLS/SSL ウェブサイト証明書の監視 | web.certificate.get | |
Webページ | Webページの監視 | web.page.get、web.page.perf、web.page.regexp | サポートされているキーのパラメーターは、Zabbixエージェントのキーと同じです。 |
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エージェントと同じです。 キー |
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 プラグイン設定パラメータも参照してください。 |
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、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.freq、nvml.device.temperature、nvml.device.utilization、nvml.device.video.freq、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パラメータをnamed sessionまたはdefaultパラメータとして指定 現在、TLSパラメータをアイテムキーパラメータとして渡すことはできません。 PostgreSQLプラグイン設定パラメータも参照してください。 |
以下のコマンドで起動した場合の読み込み可能なプラグイン:
- -V --version - プラグインのバージョンとライセンス情報を表示します。
- -h --help - ヘルプ情報を表示します。