Plugins provide an option to extend the monitoring capabilities of IJ. Plugins are written in Go programming language and are supported by IJ agent 2 only.
Plugins provide an alternative to loadable modules (written in C), and other methods for extending IJ functionality, such as user parameters (agent metrics), external checks (agent-less monitoring), and system.run[]
IJ agent item.
The following features are specific to IJ agent 2 and its plugins:
Since IJ 6.0.0, plugins don't have to be integrated into the agent 2 directly and can be added as loadable plugins, thus making the creation process of additional plugins for gathering new monitoring metrics easier.
This page lists IJ native and loadable plugins, and describes plugin configuration principles from the user perspective. For instructions about writing your own plugins, see Plugin development guidelines. For more information on the communication process between IJ agent 2 and a loadable plugin, as well as the metrics collection process, see Connection diagram.
This section provides common plugin configuration principles and best practices.
All plugins are configured using Plugins.* parameter, which can either be part of the IJ agent 2 configuration file or a plugin's own configuration file. If a plugin uses a separate configuration file, path to this file should be specified in the Include parameter of IJ agent 2 configuration file.
Each plugin parameter should have the following structure:
Plugins.<PluginName>.<Parameter>=<Value>
Parameter names should adhere to the following requirements:
Named sessions represent an additional level of plugin parameters and can be used to define separate sets of authentication parameters for each of the instances being monitored. Each named session parameter should have the following structure:
Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>
A session name can be used as a connString item key parameter instead of specifying a URI, username, and password separately. In item keys, the first parameter can be either a connString or a Uri. If the first key parameter matches a session name specified in the configuration file, the check will be executed using named session parameters. If the first key parameter doesn't match any session name, it will be treated as a Uri.
Note, that:
The list of available named session parameters depends on the plugin, see individual plugin configuration files for details.
Example: Monitoring of two instances “MySQL1” and “MySQL2” can be configured in the following way:
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>
Now, these names may be used as connStrings in keys instead of URIs:
If a parameter required for authentication is not provided in an item key or in the named session parameters, the plugin will use a hardcoded default value.
Some plugins support gathering metrics from multiple instances simultaneously. Both local and remote instances can be monitored. TCP and Unix-socket connections are supported.
It is recommended to configure plugins to keep connections to instances in an open state. The benefits are reduced network congestion, latency, and CPU and memory usage due to the lower number of connections. The client library takes care of this.
Time period for which unused connections should remain open can be determined by Plugins.<PluginName>.KeepAlive parameter.
Example: Plugins.Memcached.KeepAlive
All metrics supported by IJ agent 2 are collected by plugins.
The following plugins for IJ 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 IJ agent being used. | agent.hostname, agent.ping, agent.version | Supported keys have the same parameters as IJ agent keys. |
Ceph monitoring. | ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump, ceph.ping, ceph.pool.discovery, ceph.status |
||
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 IJ agent keys. | |
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 IJ agent keys. |
Kernel monitoring. | kernel.maxfiles, kernel.maxproc | Supported keys have the same parameters as IJ agent keys. | |
Log file monitoring. | log, log.count, logrt, logrt.count | Supported keys have the same parameters as IJ agent keys. See also: Plugin configuration parameters (Unix/Windows) |
|
Memcached server monitoring. | memcached.ping, memcached.stats | ||
Reads Modbus data. | modbus.get | Supported keys have the same parameters as IJ agent keys. | |
Receives published values of MQTT topics. | mqtt.get | ||
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. | |
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 IJ agent keys. | |
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 before using the plugin. | |
Process CPU utilization percentage. | proc.cpu.util | Supported key has the same parameters as IJ agent key. | |
Redis server monitoring. | redis.config, redis.info, redis.ping, redis.slowlog.count | ||
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 IJ agent 2. The minimum required smartctl version is 7.1. Supported keys can be used with IJ agent 2 only on Linux/Windows, both as a passive and active check. See also: Configuration parameters |
|
Swap space size in bytes/percentage. | system.swap.size | Supported key has the same parameters as IJ agent key. | |
SystemRun | Runs specified command. | system.run | Supported key has the same parameters as IJ agent key. See also: Plugin configuration parameters (Unix/Windows) |
Systemd | Monitoring of systemd services. | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
TCP connection availability check. | net.tcp.port | Supported key has the same parameters as IJ agent key. | |
Monitoring of the UDP services availability and performance. | net.udp.service, net.udp.service.perf | Supported keys have the same parameters as IJ agent keys. | |
Retrieval of information about the system. | system.hostname, system.sw.arch, system.uname | Supported keys have the same parameters as IJ agent keys. | |
System uptime metrics collection. | system.uptime | Supported key has the same parameters as IJ agent key. | |
VFS metrics collection. | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | Supported keys have the same parameters as IJ agent keys. | |
Monitoring of TLS/SSL website certificates. | web.certificate.get | ||
Web page monitoring. | web.page.get, web.page.perf, web.page.regexp | Supported keys have the same parameters as IJ agent keys. | |
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 IJ agent keys. | |
IJ server/proxy internal metrics or number of delayed items in a queue. | zabbix.stats | Supported keys have the same parameters as IJ agent keys. | |
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 IJ agent keys. |
Loadable plugins, when launched with:
- -V --version - print plugin version and license information;
- -h --help - print help information.
Click on the plugin name to go to the plugin repository with additional information.
Plugin name | Description | Supported item keys | Comments |
---|---|---|---|
Monitoring of MongoDB servers and clusters (document-based, distributed database). | 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 |
This plugin is loadable since IJ 6.0.6 (built-in previously). To configure encrypted connections to the database, use named sessions and specify the TLS parameters for the named session in the agent configuration file. Supported in plugin versions 1.2.1, 6.2.7 and newer1. Currently, TLS parameters cannot be passed as item key parameters. See also MongoDB plugin configuration file. |
|
Monitoring of PostgreSQL and its forks. | 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 |
This plugin is loadable since IJ 6.2.4 (built-in previously). To configure encrypted connections 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. |
See also: Building loadable plugins.
1 - Since IJ 6.2.7, loadable plugins started using the same versioning system as IJ itself. As a result, MongoDB plugin version has changed from 1.2.1 to 6.2.7.