2 Додаци

Преглед

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

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

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

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

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

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

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

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

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

Сви додаци су конфигурисани помоћу параметра Plugins.*, који може бити део Zabbix агента 2 конфигурација фајл или сопствени додатак конфигурациона датотека. Ако додатак користи засебну конфигурациону датотеку, путању до ове датотеке треба навести у параметру Укључи конфигурационе датотеке Zabbix агента 2.

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

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

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

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

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

На пример, да извршите активне провере које немају Scheduling интервал ажурирања одмах након поновног покретања агента само за додатак Време рада, подесите 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 акредитива у кључу ставке није подржано, уместо тога користите именоване параметре сесије.

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

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

Ако параметар није дефинисан за именовану сесију, 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 прикупљају додаци.

Уграђени

Следећи додаци за Zabbix агент 2 су доступни одмах. Кликните на име додатка да бисте отишли ​​у спремиште додатака са додатним информацијама.

Plugin name Description Supported item keys Comments
Agent Метрика Zabbix агента који се користи. agent.hostname, agent.ping, agent.version Подржани кључеви имају исте параметре као и Zabbix агент keys.
Ceph Ceph monitoring. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
CPU Систем CPU надгледања (број CPUs/CPU језгара, откривени CPUs, проценат искоришћености). system.cpu.discovery, system.cpu.num, system.cpu.util Подржани кључеви имају исте параметре као Zabbix агент keys.
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 надгледање. kernel.maxfiles, kernel.maxproc Подржани кључеви имају исте параметре као Zabbix агент кључеви.
Log Надгледање датотеке дневника. log, log.count, logrt, logrt.count Подржани кључеви имају исте параметре као Zabbix агент кључеви.

Видети и:
Параметри конфигурације додатка (Unix/Windows)
Memcached Memcached сервер надгледање. memcached.ping, memcached.stats
Modbus Reads Modbus податак. modbus.get Подржани кључеви имају исте параметре као Zabbix агент кључеви.
MQTT Прима објављене вредности од MQTT теме. mqtt.get Да бисте конфигурисали шифровану везу са MQTT брокер, наведите TLS параметре у конфигурационој датотеци агента као именована сесија или подразумевано параметара. Тренутно 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 параметре у конфигурационој датотеци агента као именована сесија or подразумевано параметара. Тренутно, TLS параметри не могу да се прослеђују као кључни параметри ставке.
NetIf Надгледање мрежних интерфејса. net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total Подржани кључеви имају исте параметре као и Zabbix агент кључеви.
Oracle Oracle Database надгледање. 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 агент кључ.
Redis Redis server надгледање. 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 Минимална потребна smartctl верзија је 7.1.
Sudo/root права приступа smartctl су потребна за корисника који извршава Zabbix агент 2. Додатак користи само следеће команде:
/usr/sbin/smartctl -a *
/usr/sbin/smartctl --scan *
/usr/sbin/smartctl -j -V

Подржано кључеви може се користити само са укљученим Zabbix агентом 2 на Linux/Windows, и као пасивна и активна провера.
Видети и:
Конфигурациони параметри
SW Listing of installed packages. system.sw.packages, system.sw.packages.get Подржани кључеви имају исте параметре као Zabbix агент кључ.
Swap Замените величину простора у bytes/percentage. system.swap.size Подржани кључ има исте параметре као Zabbix agent кључ.
SystemRun Покреће одређену команду. system.run Подржани кључ има исте параметре као Zabbix агент кључ.

Видети и:
Параметри конфигурације додатка (Unix/Windows)
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 агент кључеви.
Uptime Прикупљање метрика времена непрекидног рада система. system.uptime Подржани кључ има исте параметре као Zabbix агент кључ.
VFSDev VFS збирка метрике. vfs.dev.discovery, vfs.dev.read, vfs.dev.write Подржани кључеви имају исте параметре као Zabbix агент кључеви.
WebCertificate Надгледање од TLS/SSL сертификати веб странице. web.certificate.get
WebPage Надгледање веб страница. 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 агент кључеви.
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 агент кључеви.
Може се учитати

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

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

Plugin name Description Supported item keys Comments
Ember+ Надгледање Ember+. ember.get Тренутно доступно само за прављење из извора (за оба Unix и Windows).

Погледајте и Конфигурација додатка Ember+ параметри.
MongoDB Надгледање MongoDB сервера и кластера (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, mongodb.version
Да бисте конфигурисали шифроване везе са базом података, наведите TLS параметре у конфигурационој датотеци агента као именована сесија параметара.
Тренутно 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 параметре у конфигурационој датотеци агента као именована сесија или подразумевано параметри. Тренутно TLS параметри не могу да се прослеђују као кључни параметри ставке.

Погледати и MSSQL конфигурациони параметри додатка.
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 параметре у конфигурационој датотеци агента као именована сесија или подразумевано параметара.
Тренутно TLS параметри не могу да се прослеђују као кључни параметри ставке.

Погледати и PostgreSQL конфигурациони параметри додатка.

Погледајте такође: