2 Spraudņi

Pārskats

Spraudņi paplašina Zabbix aģents 2 uzraudzības iespējas. Rakstīti Go programmēšanas valodā, tie nodrošina alternatīvu ielādējamiem moduļiem (rakstītiem C valodā) un citām metodēm Zabbix funkcionalitātes paplašināšanai.

Šīs iespējas ir raksturīgas tieši aģents 2 un tā spraudņiem:

  • Plānoti un elastīgi intervāli gan pasīvajām, gan aktīvajām pārbaudēm
  • Uzdevumu rindas pārvaldība, ņemot vērā grafiku un uzdevumu vienlaicīgu izpildi
  • Spraudņa līmeņa noildzes
  • Zabbix aģents 2 un tā spraudņu saderības pārbaude palaišanas laikā

Visi Zabbix aģents 2 atbalstītie metriķi tiek ievākti ar spraudņu palīdzību. Šajā lapā ir aprakstīti spraudņu konfigurēšanas principi no lietotāja skatpunkta, kā arī uzskaitīti gan iebūvētie, gan ielādējamie spraudņi, ko nodrošina Zabbix.

Kopš Zabbix 6.0 spraudņus vairs nav nepieciešams iebūvēt aģents 2. Tos var pievienot kā ielādējamus spraudņus, tādējādi vienkāršojot spraudņu izveidi jauniem metriķiem. Norādījumus par savu spraudņu izveidi skatiet Developer center un Example plugin for Zabbix agent 2.

Spraudņu konfigurēšana

Šajā sadaļā ir aprakstīti vispārīgie spraudņu konfigurēšanas principi un labākā prakse.

Visi spraudņi tiek konfigurēti, izmantojot parametru Plugins.*, kas var būt daļa no Zabbix aģents 2 konfigurācijas faila vai paša spraudņa konfigurācijas faila. Ja spraudnis izmanto atsevišķu konfigurācijas failu, ceļš uz šo failu jānorāda Zabbix aģents 2 konfigurācijas faila parametrā Include.

Tipiska spraudņa parametra struktūra ir šāda:

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

Papildus tam ir divas īpašas parametru grupas:

  • Plugins.<PluginName>.Default.<Parameter>=<Value> tiek izmantots, lai definētu noklusējuma parametru vērtības.

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> tiek izmantots, lai definētu atsevišķas parametru kopas dažādiem uzraudzības mērķiem, izmantojot nosauktās sesijas.

Visiem parametru nosaukumiem jāatbilst šādām prasībām:

  • ieteicams jūsu spraudņu nosaukumus rakstīt ar lielo sākumburtu
  • parametra nosaukums jāraksta ar lielo sākumburtu
  • speciālās rakstzīmes nav atļautas
  • ligzdošanas līmenis nav ierobežots
  • parametru skaits nav ierobežots

Piemēram, lai veiktu aktīvās pārbaudes, kurām nav Scheduling atjaunināšanas intervāla, uzreiz pēc aģents restartēšanas tikai Uptime spraudnim, konfigurācijas failā iestatiet Plugins.Uptime.System.ForceActiveChecksOnStart=1. Līdzīgi, lai CPU spraudnim iestatītu pielāgotu vienlaicīgo pārbaužu limitu, konfigurācijas failā iestatiet Plugins.CPU.System.Capacity=N.

Noklusējuma vērtības

Jūs varat iestatīt ar savienojumu saistīto parametru (URI, lietotājvārds, parole u.c.) noklusējuma vērtības konfigurācijas failā šādā formātā:

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

Piemēram, Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 u.c.

Ja šāda parametra vērtība nav norādīta vienuma atslēgā vai nosauktās sesijas parametros, spraudnis izmantos noklusējuma vērtību. Ja arī noklusējuma parametrs nav definēts, tiks izmantotas stingri kodētas noklusējuma vērtības.

Ja vienuma atslēgai nav neviena parametra, Zabbix aģents 2 mēģinās ievākt metriku, izmantojot noklusējuma parametru sadaļā definētās vērtības.

Nosauktās sesijas

Nosauktās sesijas ir papildu spraudņa parametru līmenis, un tās var izmantot, lai norādītu atsevišķas autentifikācijas parametru kopas katrai no uzraudzītajām instancēm. Katram nosauktās sesijas parametram jābūt šādā struktūrā:

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

Sesijas nosaukumu var izmantot kā connString vienuma atslēgas parametru, nevis atsevišķi norādīt URI, lietotājvārdu un/vai paroli.

Vienumu atslēgās pirmais parametrs var būt vai nu connString, vai URI. Ja pirmais atslēgas parametrs neatbilst nevienam sesijas nosaukumam, tas tiks apstrādāts kā URI. Ņemiet vērā, ka vienuma atslēgā iegulto URI akreditācijas datu nodošana netiek atbalstīta; tā vietā izmantojiet nosauktās sesijas parametrus.

Pieejamo nosaukto sesiju parametru saraksts ir atkarīgs no spraudņa.

Sesijas parametrus ir iespējams pārrakstīt, vienuma atslēgas parametros norādot jaunas vērtības (skatiet piemēru).

Ja parametrs nosauktajai sesijai nav definēts, Zabbix aģents 2 izmantos vērtību, kas definēta noklusējuma spraudņa parametrā.

Parametru prioritāte

Zabbix aģents 2 spraudņi meklē ar savienojumu saistīto parametru vērtības šādā secībā:

  1. Pirmais vienuma atslēgas parametrs tiek salīdzināts ar sesiju nosaukumiem. Ja atbilstība netiek atrasta, tas tiek uzskatīts par faktisko vērtību; šajā gadījumā 3. solis tiks izlaists. Ja atbilstība tiek atrasta, parametra vērtībai (parasti URI) jābūt definētai nosauktajā sesijā.
  2. Pārējie parametri tiks ņemti no vienuma atslēgas, ja tie ir definēti.
  3. Ja vienuma atslēgas parametrs (piemēram, parole) ir tukšs, spraudnis meklēs atbilstošo nosauktās sesijas parametru.
  4. Ja arī sesijas parametrs nav norādīts, tiks izmantota vērtība, kas definēta atbilstošajā noklusējuma parametrā.
  5. Ja nekas no iepriekš minētā neizdodas, spraudnis izmantos cieti iekodēto noklusējuma vērtību.
Piemērs 1

Divu instanču “MySQL1” un “MySQL2” uzraudzība.

Konfigurācijas parametri:

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

Šīs konfigurācijas rezultātā katru sesijas nosaukumu var izmantot kā connString vienuma atslēgā, piemēram, mysql.ping[MySQL1] vai mysql.ping[MySQL2].

Piemērs 2

Dažu parametru norādīšana vienuma atslēgā.

Konfigurācijas parametri:

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

Vienuma atslēga: pgsql.ping[session1,new_username,,postgres]

Šīs konfigurācijas rezultātā aģents izveidos savienojumu ar PostgreSQL, izmantojot šādus parametrus:

  • URI no sesijas parametra: 192.0.2.234:5432
  • Lietotājvārds no vienuma atslēgas: new_username
  • Parole no sesijas parametra (jo tā ir izlaista vienuma atslēgā): session_password
  • Datubāzes nosaukums no vienuma atslēgas: postgres
Piemērs 3

Metrikas vākšana, izmantojot noklusējuma konfigurācijas parametrus.

Konfigurācijas parametri:

Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password

Vienuma atslēga: pgsql.ping[,,,postgres]

Šīs konfigurācijas rezultātā aģents izveidos savienojumu ar PostgreSQL, izmantojot šādus parametrus:

  • Noklusējuma URI: 192.0.2.234:5432
  • Noklusējuma lietotājvārds: zabbix
  • Noklusējuma parole: password
  • Datubāzes nosaukums no vienuma atslēgas: postgres
Savienojumi

Daži spraudņi atbalsta metriku vākšanu no vairākām instancēm vienlaikus. Var uzraudzīt gan lokālās, gan attālās instances. Tiek atbalstīti TCP un Unix-socket savienojumi.

Ieteicams konfigurēt spraudņus tā, lai savienojumi ar instancēm tiktu uzturēti atvērtā stāvoklī. Ieguvumi ir mazāka tīkla noslodze, mazāka aizture, kā arī mazāks CPU un atmiņas patēriņš, jo ir mazāks savienojumu skaits. Par to rūpējas klienta bibliotēka.

Laika periodu, cik ilgi neizmantotajiem savienojumiem jāpaliek atvērtiem, var noteikt ar parametru Plugins.<PluginName>.KeepAlive. Piemērs: Plugins.Memcached.KeepAlive

Iebūvētie spraudņi

Zabbix aģents 2 iebūvētie spraudņi ir pieejami uzreiz pēc instalēšanas. Noklikšķiniet uz spraudņa nosaukuma, lai pārietu uz spraudņa repozitoriju ar papildu informāciju.

Spraudņa nosaukums Apraksts Atbalstītās vienumu atslēgas Komentāri
Agent Izmantotā Zabbix aģenta metrikas. agent.hostname, agent.ping, agent.version Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
CPU Sistēmas CPU uzraudzība (CPU/CPU kodolu skaits, atklātie CPU, izmantošanas procents). system.cpu.discovery, system.cpu.num, system.cpu.util Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
Docker Docker konteineru uzraudzība. docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery,
docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping
Skatiet arī:
Konfigurācijas parametri
File Failu metriku vākšana. vfs.file.cksum, vfs.file.contents, vfs.file.exists, vfs.file.md5sum,
vfs.file.regexp, vfs.file.regmatch, vfs.file.size, vfs.file.time
Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
Kernel Kodola uzraudzība. kernel.maxfiles, kernel.maxproc Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
Log Žurnālfailu uzraudzība. log, log.count, logrt, logrt.count Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.

Skatiet arī:
Spraudņa konfigurācijas parametri (Unix/Windows)
Memcached Memcached servera uzraudzība. memcached.ping, memcached.stats
Modbus Nolasa Modbus datus. modbus.get Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
MQTT Saņem publicētās MQTT tēmu vērtības. mqtt.get Lai konfigurētu šifrētu savienojumu ar MQTT brokeri, norādiet TLS parametrus aģenta konfigurācijas failā kā nosauktas sesijas vai noklusējuma parametrus. Pašlaik TLS parametrus nevar nodot kā vienuma atslēgas parametrus.
MySQL MySQL un tā atvasinājumu uzraudzība. 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
Lai konfigurētu šifrētu savienojumu ar datubāzi, norādiet TLS parametrus aģenta konfigurācijas failā kā nosauktas sesijas vai noklusējuma parametrus. Pašlaik TLS parametrus nevar nodot kā vienuma atslēgas parametrus.
NetIf Tīkla saskarņu uzraudzība. net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
Oracle Oracle Database uzraudzība. 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
Pirms spraudņa izmantošanas instalējiet Oracle Instant Client.
Proc Procesa CPU izmantošanas procents. proc.cpu.util Atbalstītajai atslēgai ir tie paši parametri kā Zabbix aģenta atslēgai.
Redis Redis servera uzraudzība. redis.config, redis.info, redis.ping, redis.slowlog.count Lai konfigurētu šifrētu savienojumu ar Redis, norādiet TLS parametrus aģenta konfigurācijas failā kā nosauktas sesijas vai noklusējuma parametrus. TLS parametrus nevar nodot kā vienuma atslēgas parametrus. Ņemiet vērā, ka nepareiza vai citādi nederīga TLS konfigurācija var neļaut Zabbix aģentam 2 startēties, tāpēc pirms TLS iespējošanas pārbaudiet sertifikātu failus, atļaujas un ceļus.
Smart S.M.A.R.T. uzraudzība. smart.attribute.discovery, smart.disk.discovery, smart.disk.get Minimālā nepieciešamā smartctl versija ir 7.1.
Lietotājam, kas izpilda Zabbix aģentu 2, ir nepieciešamas sudo/root piekļuves tiesības uz smartctl. Spraudnis izmanto tikai šādas komandas:
/usr/sbin/smartctl -a *
/usr/sbin/smartctl --scan *
/usr/sbin/smartctl -j -V

Atbalstītās atslēgas var izmantot ar Zabbix aģentu 2 tikai Linux/Windows vidē gan kā pasīvo, gan aktīvo pārbaudi.
Skatiet arī:
Konfigurācijas parametri
SW Instalēto pakotņu saraksts. system.sw.packages, system.sw.packages.get Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgai.
Swap Maiņvietas lielums baitos/procentos. system.swap.size Atbalstītajai atslēgai ir tie paši parametri kā Zabbix aģenta atslēgai.
SystemRun Izpilda norādīto komandu. system.run Atbalstītajai atslēgai ir tie paši parametri kā Zabbix aģenta atslēgai.

Skatiet arī:
Spraudņa konfigurācijas parametri (Unix/Windows)
Systemd systemd servisu uzraudzība. systemd.unit.discovery, systemd.unit.get, systemd.unit.info
TCP TCP savienojuma pieejamības pārbaude. net.tcp.port Atbalstītajai atslēgai ir tie paši parametri kā Zabbix aģenta atslēgai.
UDP UDP servisu pieejamības un veiktspējas uzraudzība. net.udp.service, net.udp.service.perf Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
Uname Informācijas iegūšana par sistēmu. system.hostname, system.sw.arch, system.uname Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
Uptime Sistēmas darbības laika metriku vākšana. system.uptime Atbalstītajai atslēgai ir tie paši parametri kā Zabbix aģenta atslēgai.
VFSDev VFS metriku vākšana. vfs.dev.discovery, vfs.dev.read, vfs.dev.write Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
WebCertificate TLS/SSL vietņu sertifikātu uzraudzība. web.certificate.get
WebPage Tīmekļa lapu uzraudzība. web.page.get, web.page.perf, web.page.regexp Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
ZabbixAsync Asinhrona metriku vākšana. 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
Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
ZabbixStats Zabbix servera/starpniekservera iekšējās metrikas vai aizkavēto vienumu skaits rindā. zabbix.stats Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.
ZabbixSync Sinhrona metriku vākšana. 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.
Atbalstītajām atslēgām ir tie paši parametri kā Zabbix aģenta atslēgām.

Ielādējami spraudņi

Zabbix aģents 2 ielādējamie spraudņi nav pieejami uzreiz pēc instalēšanas, un tie ir jāinstalē atsevišķi:

Pirms spraudņa instalēšanas, lūdzu, pārbaudiet tā README failu. Tajā var būt ietvertas īpašas prasības un instalēšanas norādījumi.

Noklikšķiniet uz spraudņa nosaukuma, lai pārietu uz spraudņa repozitoriju, kurā ir spraudņa README fails ar papildu informāciju.

Plugin name Description Supported item keys Comments
Ceph Ceph uzraudzība. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
Skatiet arī Ceph spraudņa konfigurācijas parametrus.
Ember+ Ember+ uzraudzība. ember.get Skatiet arī Ember+ spraudņa konfigurācijas parametrus.
MongoDB MongoDB serveru un klasteru uzraudzība (dokumentu tipa, izkliedēta datubāze). mongodb.cfg.discovery, 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
Lai konfigurētu šifrētus savienojumus ar datubāzi, norādiet TLS parametrus aģenta konfigurācijas failā kā nosauktās sesijas parametrus.
Pašlaik TLS parametrus nevar nodot kā vienuma atslēgas parametrus.

Skatiet arī MongoDB spraudņa konfigurācijas parametrus.
MSSQL MSSQL datubāzes uzraudzība. 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 Lai konfigurētu šifrētu savienojumu ar datubāzi, norādiet TLS parametrus aģenta konfigurācijas failā kā nosauktās sesijas vai noklusējuma parametrus. Pašlaik TLS parametrus nevar nodot kā vienuma atslēgas parametrus.

Skatiet arī MSSQL spraudņa konfigurācijas parametrus.
NVIDIA GPU NVIDIA GPU uzraudzība. 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 Skatiet arī NVIDIA GPU spraudņa konfigurācijas parametrus.
PostgreSQL PostgreSQL un tā atvasinājumu uzraudzība. 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
Lai konfigurētu šifrētus savienojumus ar datubāzi, norādiet TLS parametrus aģenta konfigurācijas failā kā nosauktās sesijas vai noklusējuma parametrus.
Pašlaik TLS parametrus nevar nodot kā vienuma atslēgas parametrus.

Skatiet arī PostgreSQL spraudņa konfigurācijas parametrus.

Ielādējamie spraudņi, palaižot ar:

  • -V --version - izvada spraudņa versiju un licences informāciju;
  • -h --help - izvada palīdzības informāciju.
  • -t, --test <item key> — palaiž spraudni testēšanai (spraudņa konfigurācija tiek ignorēta).