This is a translation of the original English documentation page. Help us make it better.

14 プラグイン

概要

プラグインは、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 エージェント 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 として扱われます。

ただし、:

  • キーパラメーターに connString (セッション名) を指定する場合、ユーザー名とパスワードのキーパラメーターは空である 必要があります。
  • 埋め込み 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 として使用することができます:

mysql.ping[MySQL1]
       mysql.ping[MySQL2]
パラメータの優先順位

バージョン 6.0.18 以降、Zabbix エージェント 2 プラグインは、接続関連のパラメータ値を以下の順序で検索します。

  1. 最初のアイテムキーパラメータをセッション名と比較します。一致するものが見つからない場合は、実際の値として扱われます。この場合、手順 3 はスキップされます。一致するものが見つかった場合は、パラメータ値(通常は URI)が名前付きセッションで定義されている必要があります。
  2. その他のパラメータは、アイテムキーが定義されている場合はそこから取得されます。
  3. アイテムキーパラメータ(例:パスワード)が空の場合、プラグインは対応する名前付きセッションパラメータを検索します。
  4. セッションパラメータも指定されていない場合は、対応する デフォルトパラメータ で定義されている値が使用されます。
  5. 他のすべてが失敗した場合、プラグインはハードコードされたデフォルト値を使用します。
例 1

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]

例 2

アイテムキーにいくつかのパラメータを指定します。 (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に接続します。

  • セッションパラメータのURI: 192.0.2.234:5432
  • アイテムキーのユーザー名: new_username
  • セッションパラメータのパスワード(アイテムキーでは省略されているため): session_password
  • アイテムキーのデータベース名: postgres
例 3

デフォルトの設定パラメータを使用してメトリックを収集します。

設定パラメータ:

Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
       Plugins.PostgreSQL.Default.User=zabbix
       Plugins.PostgreSQL.Default.Password=password

アイテムキー: pgsql.ping[,,,postgres]

この設定の結果、エージェントは以下のパラメータを使用して PostgreSQL に接続します。

  • デフォルトの URI: 192.0.2.234:5432
  • デフォルトのユーザー名: zabbix
  • デフォルトのパスワード: password
  • アイテムキーのデータベース名: postgres
コネクション

プラグインによっては、複数のインスタンスから同時にメトリクスを収集することをサポートしています。
ローカルとリモートの両方のインスタンスを監視することができます。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 に変更されました。