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>

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

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

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

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

|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 агент кључеви.| |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|Чита 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 параметре у конфигурационој датотеци агента као именовану сесију или подразумевано параметара. Тренутно, 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|Списак инсталираних пакета.|system.sw.packages, system.sw.packages.get|Подржани кључеви имају исте параметре као Zabbix агент кључ.| |Swap|Замените величину простора у бајтовима/процентима.|system.swap.size|Подржани кључ има исте параметре као Zabbix агент кључ.| |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 агент кључеви.|

Учитавање

Учитавање додатака за 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 параметре у конфигурационој датотеци агента као параметре именоване сесије.
Тренутно се 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 додатка.

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