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 прикупљају додаци.

Уграђено

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

Plugin name Description Подржани кључеви ставки Коментари
Агент Метрике коришћеног 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.container_info, docker.container_stats, docker.containers, docker.containers.discovery,
docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping|Погледајте такође:
Параметри конфигурације| |Датотека|Колекција метрика датотека.|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.maxfiles, kernel.maxproc|Подржани кључеви имају исте параметре као Zabbix агент кључеви.|

|Лог|Праћење лог датотеке.|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 параметри не могу бити прослеђени као параметри кључа ставке.| |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|Проценат искоришћења процесора процеса.|proc.cpu.util|Подржани кључ има исте параметре као Zabbix агент кључеви.| |Редис|Праћење Редис сервера.|redis.config, redis.info, redis.ping, redis.slowlog.count| | |Smart|S.M.A.R.T. праћење.|smart.attribute.discovery, smart.disk.discovery, smart.disk.get|Кориснику који покреће Zabbix агент 2 потребна су Sudo/root права приступа за smartctl. Минимална потребна верзија smartctl је 7.1.

Подржани кључеви могу се користити само са Zabbix агентом 2 на Linux/Windows-у, и као пасивна и као активна провера.
Погледајте такође:
Параметри конфигурације| |SW|Списак инсталираних пакета.|system.sw.packages, system.sw.packages.get|Подржани кључеви имају исте параметре као Zabbix агент key.| |Swap|Величина простора за размену у бајтовима/проценту.|system.swap.size|Подржани кључ има исте параметре као Zabbix агент key.| |SystemRun|Покреће наведену команду.|system.run|Подржани кључ има исте параметре као Zabbix агент key.

Погледајте такође:
Параметри конфигурације додатка (Unix/Windows)| |Systemd|Праћење systemd сервиса.|systemd.unit.discovery, systemd.unit.get, systemd.unit.info| | |TCP|Провера доступности TCP везе.|net.tcp.port|Подржани кључ има исте параметре као Zabbix агент key.| |UDP|Праћење доступности и перформанси UDP сервиса.|net.udp.service, net.udp.service.perf|Подржани кључеви имају исте параметре као Zabbix агент keys.| |Uname|Преузимање информација о систему.|system.hostname, system.sw.arch, system.uname|Подржани кључеви имају исте параметре као Zabbix агент keys.| |Време рада|Колекција метрика времена рада система.|system.uptime|Подржани кључ има исте параметре као Zabbix агент key.| |VFSDev|Колекција VFS метрика.|vfs.dev.discovery, vfs.dev.read, vfs.dev.write|Подржани кључеви имају исте параметре као Zabbix агент keys.| |WebCertificate|Праћење TLS/SSL сертификата веб сајта.|web.certificate.get| | |ВебСтраница|Праћење веб странице.|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 агент keys.| |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.|Подржани кључеви имају исте параметре као 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 параметре у конфигурационој датотеци агента као назван 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 или подразумевано. Тренутно, 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.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 - испис информација о помоћи.