プラグインは、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>
パラメータ名は、以下の要件を満たす必要があります:
認証に必要なパラメータが item キーや名前付きセッションパラメータで提供されない場合、プラグインはハードコードされた
デフォルト値を使用します。
名前付きセッションは、プラグインパラメータの追加レベルを表し、監視対象の各インスタンスに対して個別の認証パラメータ
セットを定義するために使用することができます。各名前付きセッションのパラメータは、以下のような構造になっている
必要があります:
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 として使用することができます:
バージョン 6.0.18 以降、Zabbix エージェント 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
この設定により、各セッション名はアイテムキーのconnStringとして使用できるようになります。例: mysql.ping[MySQL1]
または mysql.ping[MySQL2]
アイテムキーにいくつかのパラメータを指定します。 (Zabbix 6.0.17 以降でサポートされています)
設定パラメータ:
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に接続します。
デフォルトの設定パラメータを使用してメトリックを収集します。
設定パラメータ:
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用の以下のプラグインは、すぐにご利用いただけます。プラグイン名をクリックすると、プラグインリポジトリに移動し、詳細情報をご確認いただけます。
プラグイン名 | 説明 | サポートされているアイテムキー | コメント |
---|---|---|---|
Agent | 使用されている 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 |
参照: 構成パラメータ |
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 エージェントの キー と同じです。 |
Kernel | カーネル監視 | kernel.maxfiles、kernel.maxproc | サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。 |
Log | ログファイルの監視。 | 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 パラメータをアイテム キー パラメータとして渡すことはできません。mysql.custom.query アイテム キーは、Zabbix 6.0.21 以降でサポートされています。 |
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 | |
Smart | 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 でのみ使用できます。 参照: 構成パラメータ |
Swap | スワップ領域のサイズ(バイト/パーセンテージ) | 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 と同じです。 |
Uptime | システム稼働時間メトリックの収集。system.uptime | サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。 | |
VFSDev | VFS メトリック コレクション | vfs.dev.discovery、vfs.dev.read、vfs.dev.write | サポートされているキーのパラメーターは、Zabbix エージェントの キー と同じです。 |
WebCertificate | TLS/SSL ウェブサイト証明書の監視 | web.certificate.get | |
WebPage | 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 エージェントの キー と同じです。 |
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。 |
ロード可能なプラグインを以下のオプションで起動した場合: - -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 - Zabbix 6.0.13 以降、ロード可能なプラグインは Zabbix 本体と同じバージョン管理システムを使用するようになりました。 その結果、MongoDB プラグインのバージョンは 1.2.0 から 6.0.13 に変更され、PostgreSQL プラグインのバージョンは 1.2.1 から 6.0.13 に変更されました。