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

2 Додаци

Преглед

Додаци пружају опцију за проширење могућности праћења Zabbix-а. Додаци су написани у програмском језику Go и подржава их само Zabbix агент 2. Додаци пружају алтернативу модулима за учитавање (написаним у C-у), и другим методама за проширење функционалности Zabbix-а.

Следеће функције су специфичне за агента 2 и његове додатке:

  • подршка за заказане и флексибилне интервале за пасивне и активне провере;
  • управљање редом чекања у односу на распоред и конкурентност задатака;
  • временска ограничења на нивоу додатка;
  • провера компатибилности Zabbix агента 2 и његових додатака при покретању.

Од Zabbix-а 6.0, додаци не морају бити директно интегрисани у агента 2 и могу се додати као додаци за учитавање, чиме се процес креирања додатних додатака за прикупљање нових метрика праћења олакшава.

Ова страница наводи Zabbix нативне и учитавајуће додатке и описује принципе конфигурације додатака из перспективе корисника.

За упутства о писању сопствених додатака, погледајте Центар за програмере и Пример додатка за Zabbix агент 2.

За детаље о процесу комуникације између Zabbix агента 2 и учитавајућег додатка, као и о процесу прикупљања метрика, погледајте Дијаграм везе.

Конфигурисање додатака

Овај одељак пружа уобичајене принципе конфигурације додатака и најбоље праксе.

Сви додаци се конфигуришу помоћу параметра Plugins.*, који може бити део [конфигурационе датотеке] Zabbix агента 2 (/manual/appendix/config/zabbix_agent2) или сопствене [конфигурационе датотеке] додатка (/manual/appendix/config/zabbix_agent2_plugins). Ако додатак користи посебну конфигурациону датотеку, путања до ове датотеке треба да буде наведена у параметру Include конфигурационе датотеке Zabbix агента 2.

Типичан параметар додатка има следећу структуру:

Plugins.<PluginName>.<Parameter>=<Value>

Поред тога, постоје две специфичне групе параметара:

Сва имена параметара треба да се придржавају следећих захтева:

  • препоручује се да имена ваших додатака буду написана великим словима;
  • параметар треба да буде написан великим словима;
  • специјални знакови нису дозвољени;
  • угнежђивање није ограничено максималним нивоом;
  • број параметара није ограничен.

На пример, да бисте извршили активне провере које немају Scheduling интервал ажурирања одмах након поновног покретања агента само за додатак Uptime, поставите Plugins.Uptime.System.ForceActiveChecksOnStart=1 у конфигурационој датотеци. Слично, да бисте поставили прилагођено ограничење за истовремене провере за додатак CPU, поставите Plugins.CPU.System.Capacity=N у конфигурационој датотеци.

Подразумеване вредности

Можете поставити подразумеване вредности за параметре који се односе на везу (URI, корисничко име, лозинку, итд.) у конфигурационој датотеци у формату:

Plugins.<PluginName>.Default.<Parameter>=<Value>

На пример, Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017, итд.

Ако вредност за такав параметар није наведена у кључу ставке или у параметрима намед сессион, додатак ће користити подразумевану вредност. Ако је подразумевани параметар такође недефинисан, користиће се тврдо кодиране подразумеване вредности.

Ако кључ ставке нема никакве параметре, Zabbix агент 2 ће покушати да прикупи метрику користећи вредности дефинисане у одељку подразумеваних параметара.

Именоване сесије

Именоване сесије представљају додатни ниво параметара додатка и могу се користити за одређивање одвојених скупова параметара за аутентификацију за сваку од инстанци које се прате. Сваки именовани параметар сесије треба да има следећу структуру:

Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>

Име сесије може се користити као параметар кључа ставке connString уместо да се посебно наводи URI, корисничко име и/или лозинка.

У кључевима ставки, први параметар може бити connString или URI. Ако се први параметар кључа не подудара ни са једним именом сесије, биће третиран као URI. Имајте на уму да прослеђивање уграђених URI акредитива у кључу ставке није подржано, уместо тога користите именоване параметре сесије.

Листа доступних именованих параметара сесије зависи од додатка.

Могуће је заменити параметре сесије навођењем нових вредности у параметрима кључа ставке (видети example).

Ако параметар није дефинисан за именовану сесију, Zabbix агент 2 ће користити вредност дефинисану у подразумевани параметар додатка.

Приоритет параметра

Zabbix агент 2 додаци траже вредности параметара у вези са везом следећим редоследом:

  1. Параметар кључа прве ставке се упоређује са називима сесије. Ако није пронађено подударање, третира се као стварна вредност; у овом случају, корак 3 ће бити прескочен. Ако се пронађе подударање, вредност параметра (обично URI) мора бити дефинисана у именованој сесији.
  2. Остали параметри ће бити преузети из кључа ставке ако су дефинисани.
  3. Ако је параметар кључа ставке (на пример, лозинка) празан, додатак ће тражити одговарајући именовани параметар сесије.
  4. Ако параметар сесије такође није наведен, користиће се вредност дефинисана у одговарајућем подразумеваном параметру.
  5. Ако ништа друго не успе, додатак ће користити чврсто кодирану подразумевану вредност.
Пример 1

Надгледање две инстанце “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

Навођење неких параметара у кључу ставке.

Параметри конфигурације:

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-socket везе су подржане.

Препоручљиво је да конфигуришете додатке за одржавање веза са инстанцама у отвореном стању. Користи су смањене загушење мреже, кашњење и коришћење CPU-а и меморије због мањег броја веза. Клијентска библиотека узима брига за ово.

Plugins.<PluginName>.KeepAlive може одредити временски период током којег неискоришћене везе треба да остану отворене. параметар. Пример: Plugins.Memcached.KeepAlive

Додаци

Све метрике које подржава Zabbix агент 2 прикупљају додаци.

Built-in

The following plugins for Zabbix 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 Zabbix agent being used. agent.hostname, agent.ping, agent.version Supported keys have the same parameters as Zabbix agent keys.
Ceph Ceph monitoring. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
CPU 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 Zabbix agent keys.
Docker 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 Zabbix agent keys.
Kernel Kernel monitoring. kernel.maxfiles, kernel.maxproc Supported keys have the same parameters as Zabbix agent keys.
Log Log file monitoring. log, log.count, logrt, logrt.count Supported keys have the same parameters as Zabbix agent keys.

See also:
Plugin configuration parameters (Unix/Windows)
Memcached Memcached server monitoring. memcached.ping, memcached.stats
Modbus Reads Modbus data. modbus.get Supported keys have the same parameters as Zabbix agent keys.
MQTT Receives published values of MQTT topics. mqtt.get To configure encrypted connection to the MQTT broker, specify the TLS parameters in the agent configuration file as named session or default parameters. Currently, TLS parameters cannot be passed as item key parameters.
MySQL Monitoring of MySQL and its forks. 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
To configure encrypted connection to the database, specify the TLS parameters in the agent configuration file as named session or default parameters. Currently, TLS parameters cannot be passed as item key parameters.
NetIf 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 Zabbix agent keys.
Oracle 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, oracle.version
Install the Oracle Instant Client before using the plugin.
Proc Process CPU utilization percentage. proc.cpu.util Supported key has the same parameters as Zabbix agent key.
Redis Redis server monitoring. redis.config, redis.info, redis.ping, redis.slowlog.count
Smart 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 Zabbix agent 2. The minimum required smartctl version is 7.1.

Supported keys can be used with Zabbix agent 2 only on Linux/Windows, both as a passive and active check.
See also:
Configuration parameters
SW Listing of installed packages. system.sw.packages, system.sw.packages.get The supported keys have the same parameters as Zabbix agent key.
Swap Swap space size in bytes/percentage. system.swap.size Supported key has the same parameters as Zabbix agent key.
SystemRun Runs specified command. system.run Supported key has the same parameters as Zabbix agent key.

See also:
Plugin configuration parameters (Unix/Windows)
Systemd Monitoring of systemd services. systemd.unit.discovery, systemd.unit.get, systemd.unit.info
TCP TCP connection availability check. net.tcp.port Supported key has the same parameters as Zabbix agent key.
UDP Monitoring of the UDP services availability and performance. net.udp.service, net.udp.service.perf Supported keys have the same parameters as Zabbix agent keys.
Uname Retrieval of information about the system. system.hostname, system.sw.arch, system.uname Supported keys have the same parameters as Zabbix agent keys.
Uptime System uptime metrics collection. system.uptime Supported key has the same parameters as Zabbix agent key.
VFSDev VFS metrics collection. vfs.dev.discovery, vfs.dev.read, vfs.dev.write Supported keys have the same parameters as Zabbix agent keys.
WebCertificate Monitoring of TLS/SSL website certificates. web.certificate.get
WebPage Web page monitoring. web.page.get, web.page.perf, web.page.regexp Supported keys have the same parameters as Zabbix agent keys.
ZabbixAsync 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 Zabbix agent keys.
ZabbixStats Zabbix server/proxy internal metrics or number of delayed items in a queue. zabbix.stats Supported keys have the same parameters as Zabbix agent keys.
ZabbixSync 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 Zabbix agent keys.
Учитавање

Учитавање додатака за Zabbix агент 2 није одмах доступно и потребно их је инсталирати засебно:

Кликните на име додатка да бисте отишли у спремиште додатака са додатним информацијама.

Plugin name Description Supported item keys Comments
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 session.
Тренутно се 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.frequency, nvml.device.temperature, nvml.device.utilization, nvml.device.video.frequency, nvml.system.driver.version, nvml.version Погледајте такође Параметри конфигурације NVIDIA GPU додатка.

Додаци који се могу учитати, када се покрену са:
- -V --version - испис верзије додатка и информација о лиценци;
- -h --help - испис информација о помоћи.