3 Descoberta de baix nivell

Vista general

La descoberta de baix nivell ajuda a crear automàticament elements, triggers i gràfics per a diferents entitats en un ordinador. Per exemple, Zabbix pot començar automàticament a monitorar sistemes de fitxers o interfícies de xarxa al vostre ordinador, sense necessitat de crear manualment elements per a cada sistema de fitxers o interfície de xarxa. A més, és possible configurar Zabbix per esborrar automàticament les entitats innecessàries en funció dels resultats reals de la descoberta realitzada periòdicament.

Un usuari pot definir els seus propis tipus de descoberta, sempre que segueixi un protocol JSON concret.

L'arquitectura general del procés de descoberta és la següent.

En primer lloc, un usuari crea una regla de descoberta a la columna Recull de dades → Plantilles, a la columna Descoberta. Una regla de descoberta consisteix en (1) un element que descobreix les entitats necessàries (per exemple, sistemes de fitxers o interfícies de xarxa) i (2) elements prototip, triggers i gràfics que s'han de crear basant-hi en el valor d'aquest element.

Un element que descobreix les entitats necessàries és com un element estàndard vist en altres llocs: el servidor demana a un agent Zabbix (o qualsevol tipus d'element que es defineixi) un valor d'aquest element, l'agent respon amb un valor textual. La diferència és que el valor amb el qual respon l'agent ha de contindre una llista d'entitats descobertes en un format JSON específic. Encara que els detalls d'aquest format només són importants per als desenvolupadors de comprovacions de descoberta personalitzades, cal saber que el valor retornat conté una llista de parelles de macro → valor. Per exemple, l'element "net.if.discovery" pot tornar dues parelles: "{#IFNAME}" → "lo" i "{#IFNAME}" → "eth0".

Aquestes macros s'empren en noms, claus i altres camps de prototips on després es substitueixen amb els valors rebuts per crear elements reals, triggers, gràfics o fins i tot equips per a cada entitat descoberta. Consulteu la llista completa d'opcions per emprar macros LLD.

Quan el servidor rep un valor per a un element de descoberta, examina les parelles macro → valor i genera elements reals, triggers i gràfics per a cada parella, basant-se en els seus prototips. A l'exemple amb "net.if.discovery" anterior, el servidor generaria un conjunt d'elements, triggers i gràfics per a la interfície de bucle "lo" i un altre conjunt per a la interfície "eth0".

Tingueu en compte que des de Zabbix 4.2, el format de JSON retornat per les regles de descoberta de baix nivell ha canviat. Ja no s'espera que JSON contingui l'objecte "dades". La descoberta de baix nivell ara admetrà JSON normal que contingui una matriu, per admetre noves funcions, com ara el preprocessament de valors d'element i camins personalitzats als valors de macro de descoberta de baix nivell en un document JSON.

S'han actualitzat les claus de descoberta integrades per retornar una matriu de fileres LLD a l'arrel del document JSON. Zabbix extreu automàticament una macro i un valor si un camp de matriu empra la sintaxi {#MACRO} com a clau. Qualsevol nova comprovació de descoberta nadiua emprarà la nova sintaxi sense els elements "dades". Quan es processa un valor de descoberta de baix nivell, primer es localitza l'arrel (matriu a $. o $.data).

Tot i que l'element "dades" s'ha esborrat de tots els elements nadius relacionats amb la descoberta, per compatibilitat amb les versions anteriors, Zabbix encara admetrà la notació JSON amb un element "dades", tot i que es desaconsella el seu ús. Si el JSON conté un objecte amb un únic element de matriu "data", extreu automàticament el contingut de l'element mitjançant JSONPath $.data. La descoberta de baix nivell ara admet macros LLD opcionals definides per l'usuari amb un camí personalitzat especificat a la sintaxi JSONPath.

Després dels canvis anteriors, els nous agents ja no podran treballar amb un servidor Zabbix antic.

Veieu també: Entitats descobertes

Configuració de la descoberta de baix nivell

Demostrarem la descoberta de baix nivell mitjançant un exemple de descoberta de sistemes de fitxers.

Per configurar la descoberta, seguiu aquestes passes:

  • Aneu a: Recull de dadesPlantilles o Equips
  • Feu clic a Descoberta a la línia d'un model/equip adequat.

  • Feu clic a Crear una regla de descoberta a l'extrem superior dret de la pantalla.
  • Ompliu el formulari de regla de descoberta amb els detalls requerits

Regla de descoberta

El formulari de regla de descoberta conté cinc pestanyes que representen, d'esquerra a dreta, el flux de dades durant la descoberta:

  • Regla de descoberta - especifica, sobretot, l'element integrat o l'script personalitzat per recuperar les dades de descoberta
  • Preprocessament - aplica el preprocessament a les dades descobertes
  • LLD Macros - extreu determinats valors de macro per emprar-los a elements descoberts, triggers, etc.
  • Filtres - permet filtrar els valors descoberts
  • Anul·lació - permet modificar elements, triggers, gràfics o prototips d'equips quan s'aplica a objectes descoberts específics

La pestanya Regla de descoberta conté la clau de l'element que cal emprar per a la descoberta (a més d'alguns atributs generals de la regla de descoberta):

Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.

Paràmetre Descripció
Nom Nom de la regla de descoberta.
Tipus El tipus de comprovació per realitzar la descoberta
En aquest exemple, som emprant una clau d'element agent Zabbix.
La regla de descoberta també pot ser un element dependent. No pot dependre d'una altra regla de descoberta. Per a un element dependent, seleccioneu el tipus corresponent (Element dependent) i especifiqueu l'element mestre al camp "Element mestre". L'element mestre ha d'existir.
Clau Introduïu la clau d'element de descoberta (fins a 2048 caràcters).
Per exemple, podeu emprar la clau d'element integrada "vfs.fs.discovery" per retornar un JSON amb la llista de fitxers de sistemes de descoberta presents a l'ordinador, i els seus tipus.
Tingueu en compte que una altra opció per a la descoberta del sistema de fitxers empra els resultats de la descoberta mitjançant la clau de l'agent "vfs.fs.get", compatible des de Zabbix 4.4.5 (veieu l'exemple).
Interval d'actualització Aquest camp especifica amb quina freqüència Zabbix realitza la descoberta. Al principi, quan només sou configurant la descoberta del sistema de fitxers, podeu establir un petit interval, però un cop sabeu que funciona, podeu configurar-ho en 30 minuts o més perquè els sistemes de fitxers normalment no canvien gaire sovint.
Els sufixos de temps, com ara 30s, 1m, 2h, 1d, s'admeten des de Zabbix 3.4.0.
S'admeten macros d'usuari des de Zabbix 3.4.0.
Nota: L'interval d'actualització només es pot establir a '0' si hi ha intervals personalitzats amb un valor diferent de zero. Si s'estableix a "0" i existeix un interval personalitzat (flexible o programat) amb un valor diferent de zero, l'element es consultarà durant la durada de l'interval personalitzat.
Tingueu en compte que per a una regla de descoberta existent, la descoberta es pot fer de seguida prement el botó Comprovar ara.
Interval personalitzat Podeu crear regles personalitzades per comprovar l'element:
Flexible - crear una excepció a l'interval d'actualització (interval amb una freqüència diferent)
Programació - crear un programa d'enquesta personalitzat.
Per obtindre més informació, veieu els intervals personalitzats. La programació és compatible des de Zabbix 3.0.0.
Període de retenció de recursos perduts Aquest camp us permet especificar quant de temps es conservarà l'entitat descoberta (no s'esborrarà) després que el seu estat de descoberta es converteixi a "No descobert" (entre 1 hora i 25 anys; o "0").
Els Sufixos de temps, com ara 2h, 1d, són compatibles des de Zabbix 3.4.0.
S'admeten macros d'usuari des de Zabbix 3.4.0.
Nota: Si el valor és "0", les entitats s'esborraran de seguida. No es recomana emprar "0", perquè canviar el filtre de manera incorrecta pot acabar amb la supressió de l'entitat amb totes les dades històriques.
Descripció Introduïu una descripció.
Activat Si es marca, es processarà la regla.

L'històric de les regles de descoberta no es conserva.

Preprocessament

La pestanya Preprocessament permet definir regles de transformació per aplicar al resultat de la descoberta. En aquesta passa són possibles una o diverses transformacions. Les transformacions s'executen en l'ordre en què es defineixen. Tot el preprocessament el fa el servidor Zabbix.

Veieu també:

|Tipus|<|<| |-|-----------|-------------------------------------- ----| | |Transformació|Descripció| |Text|<|<| |<|Expressió regular|Fa coincidir el valor rebut amb l'expressió regular <patró> i substitueix el valor amb la <sortida> extreta. L'expressió regular admet l'extracció d'un màxim de 10 grups capturats amb la seqüència \N.
Paràmetres:
patró - expressió regular
sortida - plantilla de format de sortida. Una seqüència d'escapada \N (on N=1...9) es substitueix per l'enèssim grup coincident. Una seqüència d'escapada \0 es substitueix pel text coincident.
Si marqueu la casella de selecció Personalitzada en cas d'error, és possible especificar opcions de gestió d'errors personalitzades: per descartar el valor, establir un valor especificat o establir un missatge d'error especificat.| |^|Reemplaça|Cerca la cadena de cerca i substitueix-la per una altra (o res). Se substituiran totes les ocurrències de la cadena de cerca.
Paràmetres:
cadena de cerca - la cadena a cercar i substituir, distingeix entre majúscules i minúscules (obligatori)
reemplaçament - la cadena a cercar per substituir. La cadena de substitució també pot ésser buida de manera efectiva, permetent esborrar la cadena de cerca quan es trobi.
És possible emprar seqüències d'escapada per cercar o substituir salts de línia, retorn de carro, tabulacions i espais "\n \r \ t \s"; La barra invertida es pot escapar com a "\\" i les seqüències d'escapament es poden escapar com a "\\n". L'escapament dels salts de línia, el retorn de carro i les pestanyes es fa automàticament durant la descoberta de baix nivell.
Suportat des de la versió 5.0.0.| |Dades estructurades|<|<| |<|JSONPath|Extreu el valor o el fragment de les dades JSON mitjançant la funcionalitat JSONPath.
Si marqueu la casella de selecció Personalitzat en cas d'error, l'element no s'admetrà en cas d'error en el passa de preprocessament i és possible especificar opcions de gestió d'errors personalitzades: per descartar el valor, establir un valor especificat o establir un missatge d'error especificat.| |<|XML XPath|Extreu valor o fragment de dades XML mitjançant la funcionalitat XPath.
Per tal que aquesta opció funcioni, el servidor Zabbix s'ha de compilar amb suport libxml.
Exemples:
number(/document /item/value) extreu 10 de <document><item><value>10</value></item></document>
number(/document/item/@attribute) extreu 10 de <document><item attribute="10"></item></document>
/document/item extreu <item><value>10</value ></item> de <document><item><value>10</value></item></document>
Tingueu en compte que els espais de noms no són compatibles.
S'admet des de la versió 4.4.0.
Si marqueu la casella de selecció Personalitzat en cas d'error, és possible especificar opcions de gestió d'errors personalitzades: per descartar el valor, establir un valor especificat o establir un missatge d'error especificat.| |<|CSV a JSON|Convertir les dades del fitxer CSV al format JSON.
Per obtindre més informació, consulteu: Preprocessament de CSV a JSON.
Suportat des de la versió 4.4.0.| |^|XML a JSON|Converteix les dades en format XML a JSON.
Per obtindre més informació, veieu: Regles de serialització.
Si marqueu la casella de selecció Personalitzat en cas d'error, és possible especificar opcions de gestió d'errors personalitzades: per descartar el valor, establir un valor especificat o establir un missatge d'error especificat.| |Scripts personalitzats|<|<| |<|JavaScript|Introduïu el codi JavaScript al bloc que apareix quan feu clic al camp de paràmetres o a Obrir.
Tingueu en compte que la longitud de JavaScript disponible depèn de la base de dades emprada.
Per obtindre més informació, veieu: Preprocessament de JavaScript| |Validació|<|<| |<|No coincideix amb l'expressió regular|Especifiqueu una expressió regular amb la qual un valor no ha de coincidir.
Ex. Error:(.*?)\.
Si marqueu la casella de selecció Personalitzat en cas d'error, és possible especificar opcions de gestió d'errors personalitzades: per descartar el valor, establir un valor especificat o establir un missatge d'error especificat.| |^|Comprovar si hi ha errors a JSON|Comprova si hi ha un missatge d'error a nivell d'aplicació situat a JSONPath. Atura el processament si s'ha realitzat correctament i el missatge no és buit; en cas contrari, continua el processament amb el valor que hi havia abans d'aquesta passa de preprocessament. Tingueu en compte que aquests errors de servei extern s'informa a l'usuari tal qual, sense afegir informació sobre la passa de preprocessament.
P. $.errors. Si es rep un JSON com {"errors":"e1"}, la següent passa de preprocessament no s'executarà.
Si marqueu la Casella de selecció personalitzada en cas d'error, és possible especificar opcions de gestió d'errors personalitzades: per descartar el valor, establir un valor especificat o establir un missatge d'error especificat.| |^|Comprovar si hi ha errors a l'XML|Comprova si hi ha un missatge d'error a nivell d'aplicació situat a xpath. Atura el processament si s'ha realitzat correctament i el missatge no és buit; en cas contrari, continueu el processament amb el valor que hi havia abans d'aquest passa de preprocessament. Tingueu en compte que aquests errors de servei extern s'informaran a l'usuari tal qual, sense afegir informació sobre la passa de preprocessament.
No s'informarà d'error en cas de no poder analitzar un XML no vàlid.
Suportat des de la versió 4.4.0.
Si marqueu la casella de selecció Personalitzat en cas d'error, és possible especificar opcions de gestió d'errors personalitzades: per descartar el valor, establir un valor especificat o establir un missatge d'error especificat.| |Accelerar|<|<| |<|Descartar sense canvis amb heartbeat|Descartar un valor si no ha canviat dins del període de temps definit (en segons).
S'admeten valors enters positius per especificar els segons (mínim - 1 segon). Els sufixos de temps es poden emprar en aquest camp (per exemple, 30 s, 1 m, 2 h, 1 d). En aquest camp es poden emprar macros d'usuari i macros de descoberta de baix nivell.
Només es pot especificar una opció d'acceleració per a un element de descoberta.
Ex. 1m. Si es passa un text idèntic a aquesta regla dues vegades en 60 segons, es descartarà.
Nota: Canviar els prototips d'elements no restableix l'acceleració. L'acceleració només es restableix quan es canvien els passos de preprocessament.| |Prometheus|<|<| |<|Prometheus a JSON|Convertiu les mètriques de Prometheus requerides a JSON.
Consulteu les comprovacions de Prometheus per a més detalls.|

Tingueu en compte que si la regla de descoberta s'ha aplicat a l'equip mitjançant una plantilla, el contingut d'aquesta pestanya és només de lectura.

Macros personalitzades

La pestanya Macros LLD us permet especificar macros personalitzades de descoberta de baix nivell.

Les macros personalitzades són útils en els casos en què el JSON retornat no té les macros necessàries ja definides. Així, per exemple:

  • La clau nadiua vfs.fs.discovery per a la descoberta del sistema de fitxers retorna un JSON amb macros LLD predefinides com {#FSNAME}, {#FSTYPE}. Aquestes macros es poden emprar a l'element, activar prototips (vegeu les seccions següents de la pàgina) directament; no cal definir macros personalitzades;
  • L'element d'agent vfs.fs.get també retorna JSON amb dades del sistema de fitxers, però sense macros LLD predefinides. En aquest cas, podeu definir les macros vosaltres mateixos i assignar-les als valors JSON mitjançant JSONPath:

Els valors extrets es poden emprar en elements descoberts, triggers, etc. Tingueu en compte que els valors es prendran del resultat de la descoberta i de totes les passes de preprocessament processades fins ara.

Paràmetre Descripció
Macro LLD Nom de la macro de descoberta de baix nivell, emprant la sintaxi següent: {#MACRO}.
JSONPath Camí emprat per extreure el valor de la macro LLD d'una línia LLD, emprant la sintaxi JSONPath.
Per exemple, $.foo extreu "bar" i "baz" d'aquest JSON: [{" foo":"bar"}, {"foo":"baz"}]
Els valors extrets del JSON retornat s'empren per substituir les macros LLD al prototip d'element, trigger, etc.
Es pot especificar JSONPath emprant la notació de punts o la notació de parèntesis. La notació entre parèntesis s'ha d'emprar en el cas de caràcters especials i Unicode, com ara $['unicode + caràcters especials #1']['unicode + caràcters especials #2'].

Filtre

Es pot emprar un filtre per generar elements reals, triggers i gràfics només per a les entitats que coincideixen amb els criteris. La psónya Filtres conté definicions de filtres de regles de descoberta per filtrar valors de descoberta:

Paràmetre Descripció
Tipus de càlcul Les opcions de càlcul de filtres següents són disponibles:
I - han de complir-ho tots els filtres;
O - n'hi ha prou si un filtre compleix;< br>I/O - empra I amb diferents noms de macro i O amb el mateix nom de macro;
Expressió personalitzada - ofereix la possibilitat de definir un càlcul personalitzat de filtres. La fórmula ha d'incloure tots els filtres de la llista. Limitat a 255 símbols.
Filtres Els operadors de condicions de filtre següents són disponibles: coincideix, no coincideix, existeix, no existeix.
Els operadors coincideix i no coincideix esperen una expressió regular compatible amb Perl (PCRE). Per exemple, si només sou interessats en els sistemes de fitxers C:, D: i E:, podeu posar {#FSNAME} a "Macro" i l'expressió regular "^C|^D|^E" al camp de text "Expressió regular". El filtre també és possible per tipus de sistema de fitxers emprant la macro {#FSTYPE} (per exemple, "^ext|^reiserfs") i per tipus d'unitat (només és compatible amb l'agent Windows) mitjançant la macro {#FSDRIVETYPE} (per exemple, "fixat").
Podeu introduir una expressió regular o fer referència a una expressió regular global al camp "Expressió regular".
Per provar una expressió regular, podeu emprar "grep -E", per exemple: for f a ext2 nfs reiserfs smbfs; do echo $f \| grep -E '^ext\|^reiserfs' \|\| echo "SKIP: $f"; done

La macro {#FSDRIVETYPE} a Windows s'admet des de Zabbix 3.0.0.

Els operadors existeix i no existeix pas permet filtrar entitats en funció de la presència o absència de la macro LLD especificada a la resposta (suportada des de la versió 5.4.0).
La configuració de diversos filtres és compatible des de Zabbix 2.4.0.
Tingueu en compte que si manca una macro de filtre a la resposta, l'entitat trobada s'ignorarà tret que s'especifiqui una condició "no existeix" per a aquesta macro.
< br>Es mostrarà un avís si l'absència d'una macro afecta al resultat de l'expressió. Per exemple, si hi manca {#B} a:
{#A} coincideix amb 1 i {#B} coincideix amb 2 - donarà un avís
{#A} coincideix amb 1 o {#B} coincideix amb 2 - no hi haurà cap avís.

Un error o una errada en l'expressió regular emprada a la regla LLD (per exemple, una expressió regular "Sistema de fitxers per a la descoberta" incorrecta) pot provocar l'esborrat de milers d'elements de configuració, valors històrics i esdeveniments de molts equips.

La base de dades Zabbix a MySQL s'ha de crear amb distinció entre majúscules i minúscules, de manera que els noms del sistema de fitxers només difereixin en cas que siguin correctament descoberts.

Anul·lar

La psónya Sobrecàrrega permet definir regles per modificar la llista d'elements prototip, triggers, gràfics i equips o els seus atributs per als objectes descoberts que compleixen uns criteris determinats.

Les sobrecàrregues (si n'hi ha) es mostren en una llista reordenable arrossegant i deixant anar i s'executen en l'ordre en què es defineixen. Per configurar els detalls d'una nova sobrecàrrega, feu clic a al bloc Sobrecàrregues. Per modificar una sobrecàrrega existent, feu clic al nom de la sobrecàrrega. S'obrirà una finestra emergent que us permetrà editar els detalls de la regla de sobrecàrrega.

Tots els paràmetres necessaris són marcats amb asteriscs vermells.

Paràmetre Descripció
Nom Un nom de sobrecàrrega únic (segons la regla LLD).
Si el filtre coincideix Defineix si s'han de processar les sobrecàrregues següents quan es compleixin les condicions del filtre:
Continuar les sobrecàrregues - es processaran les sobrecàrregues posteriors.
Aturar el processament - atura operacions anteriors (si n'hi ha) i s'executarà aquesta sobrecàrrega, s'ignoraran les sobrecàrregues posteriors per a les línies LLD corresponents.
Filtres Determina a quines entitats descobertes s'ha d'aplicar la substitució. Els filtres de sobrecàrrega es processen després dels filtres de la regla de descoberta i tenen la mateixa funcionalitat.
Operacions Les operacions de sobrecàrrega es mostren amb aquests detalls:
Condició - un tipus d'objecte (prototip d'element/prototip de trigger/prototip de gràfic/prototip d'equip) i una condició que s'ha de complir (igual/no és igual/conté/no conté/coincideix/no coincideix)
Acció - es mostren enllaços per modificar i esborrar una operació.

Configura una operació

Per configurar els detalls d'una nova operació, feu clic a al bloc Operacions. Per editar una operació existent, feu clic a al costat de l'operació. S'obrirà una finestra emergent on podeu editar els detalls de l'operació.

|Paràmetre|<|<|Descripció| |-|-|-----------|------------------------------------ ------| |Objecte|<|<|Hi ha quatre tipus d'objectes disponibles:
Prototip d'element
Prototip de trigger
Prototip de gràfic
Prototip d'equip| |Condició|<|<|Permet filtrar les entitats a les quals s'ha d'aplicar l'operació.| | |Operador|<|Operadors admesos:
igual - s'aplica a aquest prototip
no és igual - s'aplica a tots els prototips excepte aquest
conté - s'aplica, si el nom del prototip conté una cadena
no conté - s'aplica, si el nom del prototip no conté una cadena
* *coincideix - s'aplica, si el nom del prototip coincideix amb l'expressió regular
no coincideix** - s'aplica, si el nom del prototip no coincideix amb l'expressió regular<br >| |^|Patró|<|Expressió regular o cadena a cercar.| |^|Objecte: Prototip d'element|<|<| |^| |Crear activat|Quan és marcat, apareixeran botons que permetran anul·lar la configuració original del prototip d'element:
- l'element s'afegirà en un estat activat.
No - l'element s'afegirà a una entitat descoberta però en estat discapacitat.| |||Descobrir|Quan és marcat, apareixeran botons que us permetran anul·lar la configuració del prototip d'element original:
- l'element s'afegirà.
* No* - l'element no s'afegirà.| |||Interval d'actualització|Quan és marcat, apareixeran dues opcions, que us permetran establir un interval diferent per a l'element:
Endarreriment - Interval d'actualització de l'element. S'admeten tant macros d'usuari com sufixos de temps (p. ex., 30 s, 1 m, 2 h, 1 d). S'ha d'establir a 0 si s'empra un Interval personalitzat.
Interval personalitzat - feu clic a per especificar un interval flexible/planificat. Per obtindre informació detallada, veieu els intervals personalitzats.| |||Període d'emmagatzematge de l'historial|Quan és marcat, apareixen botons que us permeten establir un període d'emmagatzematge de l'historial diferent per a l'element:
No conservar l'historial 'historial - si s'escull, l'historial no s'emmagatzemarà.
Període d'emmagatzematge - si es tria, a la dreta apareixerà un camp d'entrada per especificar el període d'emmagatzematge. S'admeten tant macros d'usuari com macros LLD.| |||Període d'emmagatzematge de tendències|Quan és marcat, apareixen botons que permeten establir un període d'emmagatzematge de tendències diferent per a l'element:
No conservar les tendències - si es tria, les tendències no s'emmagatzemaran.<br >Període d'emmagatzematge - si es tria, apareixerà un camp d'entrada per especificar el període d'emmagatzematge a la dreta. S'admeten tant macros d'usuari com macros LLD.| |||Etiquetes|Quan la casella és marcada, apareixerà un bloc nou que permetrà especificar parelles d'etiqueta-valor.
Aquestes etiquetes s'afegiran a les etiquetes especificades al prototip de l'element, encara que a l'etiqueta els noms coincideixen.| |^|Assumpte: Prototip de trigger|<|<| |^| |Crear activat|Quan és marcat, apareixeran botons que us permetran anul·lar la configuració original del prototip de trigger:
- el trigger s'afegirà en estat activat.
No - el trigger s'afegirà a una entitat descoberta, però en estat desactivat.| |||Descobrir|Quan és marcat, apareixeran botons que us permetran anul·lar la configuració original del prototip del trigger:
- s'afegirà el trigger.
No - el trigger no s'afegirà pas.| |||Gravetat|Quan és marcat, apareixeran botons de gravetat del trigger, que permetran canviar la gravetat del trigger.| |||Etiquetes|Quan la casella és marcada, apareixerà un bloc nou, que permetrà especificar parelles d'etiqueta-valor.
Aquestes etiquetes s'afegiran a les etiquetes especificades al prototip de trigger, encara que els noms d'etiquetes coincideixin.| |^|Assumpte: Prototip de gràfic|<|<| |^| |Descobrir|Quan és marcat, apareixeran botons que us permetran anul·lar la configuració original del gràfic prototip:
- el gràfic s'afegirà.
No - el gràfic no s'afegirà. | |^|Assumpte: Prototip d'equip|<|<| |^| |Crear activat|Quan és marcat, apareixeran botons que us permetran anul·lar la configuració del prototip d'equip original:
- l'equip es crearà en estat habilitat.
No - l'equip es crearà en estat desactivat.| |||Descoberta|Quan és marcat, apareixeran botons que us permetran anul·lar la configuració del prototip d'equip original:
- l'equip es descobrirà.
* No* - l'equip no serà descobert.| |||Enllaçar models|Quan és marcat, apareixerà un camp d'entrada per especificar models. Comenceu a escriure el nom del model o feu clic a Triar al costat del camp i trieu models de la llista en una finestra emergent.
Tots els models enllaçats a un prototip d'equip se substituiran per models d'aquesta sobrecàrrega.| |||Etiquetes|Quan és marcat, apareixerà un bloc nou que permetrà especificar parelles d'etiquetes-valors.
Aquestes etiquetes s'afegiran a les etiquetes especificades al prototip de l'equip, fins i tot si els noms d'etiquetes coincideixen.| |||Inventari de l'equip|Quan és marcat, apareixeran botons que us permetran triar un mode diferent d'inventari per a l'equip prototip:
Desactivat - no emplena l'inventari de l'equip
Manual - proporcionar detalls manualment
Automàtic - emplena automàticament les dades de l'inventari de l'equip en funció de les mètriques recollides.|

Botons de formulari

Els botons de la part inferior del formulari us permeten realitzar diverses operacions.

Afegeix una regla de descoberta. Aquest botó només és disponible per a regles de descoberta noves.
Actualitza les propietats d'una regla de descoberta. Aquest botó només és disponible per a les regles de descoberta existents.
Crea una altra regla de descoberta basada en les propietats de la regla de descoberta actual.
Fer la descoberta de seguida segons la regla de descoberta. La regla de descoberta ha d'existir. Veieu més detalls.
Tingueu en compte que durant la descoberta immediata, la memòria cau de configuració no s'actualitza, de manera que el resultat no reflectirà els canvis més recents a la configuració de la regla de descoberta.
ESborra la regla de descoberta.
Cancel·la la modificació de propietats de la regla de descoberta.

Entitats descobertes

Les captures de pantalla següents il·lustren com són els elements, triggers i gràfics descoberts a la configuració de l'equip. Les entitats descobertes van precedides d'un enllaç carbassa a la regla de descoberta de la qual es van originar.

Tingueu en compte que les entitats descobertes no es crearan si ja hi ha entitats existents amb els mateixos criteris d'unicitat, per exemple, un element amb la mateixa clau o un gràfic amb el mateix nom. En aquest cas, es mostra un missatge d'error a la interfície que indica que la regla de descoberta de baix nivell no ha pogut crear determinades entitats. La regla de descoberta en si, però, no quedarà sense suport perquè algunes entitats no es van poder crear i s'han hagut de descartar. La regla de descoberta continuarà creant/actualitzant altres entitats.

Els elements (juntament amb triggers i gràfics) creats per una regla de descoberta de baix nivell s'esborraran automàticament si una entitat descoberta (sistema de fitxers, interfície, etc.) deixa d'ésser descoberta (o ja no passa el filtre). En aquest cas, els elements, triggers i gràfics s'esborraran un cop hagin passat els dies definits al camp Període de retenció per a recursos perduts.

Quan les entitats descobertes passen a ésser "Ja no es descobreixen", es mostra un indicador de vida útil a la llista d'elements. Mou el punter del ratolí per sobre i apareixerà un missatge que indicarà quants dies queden perquè s'esborri l'element.

Si s'han marcat les entitats per esborrar-les, però no s'han esborrat quan s'esperava (regla de descoberta o elements d'equip desactivades), s'esborraran el proper cop que es processi la regla de descoberta.

Les entitats que contenen altres entitats, que són marcades per a esborrar, no s'actualitzaran si es modifiquen a nivell de regla de descoberta. Per exemple, els triggers basats en LLD no s'actualitzaran si contenen elements marcats per esborrar-los.

Altres tipus de descoberta

A les seccions següents trobareu més detalls i explicacions sobre altres tipus de descoberta predefinits:

Per obtindre més detalls sobre el format JSON dels elements de descoberta i un exemple d'implementació de la vostra pròpia eina de descoberta del sistema de fitxers amb un script Perl, veieu creació de regles LLD personalitzades.

Creació de regles LLD personalitzades

També és possible crear una regla LLD completament personalitzada, descobrint qualsevol tipus d'entitats, per exemple, bases de dades en un servidor de bases de dades.

Per fer-ho, s'ha de crear un element personalitzat que retorni JSON, especificant els objectes trobats i, opcionalment, algunes de les seves propietats. El nombre de macros per entitat no és limitat; encara que les regles de descoberta integrades retornen una o dues macros (per exemple, dues per a la descoberta del sistema de fitxers), és possible tornar-ne més.

El format JSON requerit s'il·lustra millor amb un exemple. Suposem que som executant un antic agent Zabbix 1.8 (que no admet "vfs.fs.discovery"), però encara hem de descobrir sistemes de fitxers. Aquí hi ha un senzill script Perl per a Linux que descobreix sistemes de fitxers muntats i genera un JSON, que inclou tant el nom com el tipus del sistema de fitxers. Una manera d'emprar-lo seria com a UserParameter amb la clau "vfs.fs.discovery_perl":

#!/usr/bin/perl
       
       $first = 1;
       
       print "[\n";
       
       for (`cat /proc/mounts`)
       {
           ($fsname, $fstype) = m/\S+ (\S+) (\S+)/;
       
           print "\t,\n" if not $first;
           $first = 0;
       
           print "\t{\n";
           print "\t\t\"{#FSNAME}\":\"$fsname\",\n";
           print "\t\t\"{#FSTYPE}\":\"$fstype\"\n";
           print "\t}\n";
       }
       
       print "]\n";

Els símbols permesos com a noms de macro LLD són 0-9 , A-Z , _ , .

Les lletres minúscules no s'admeten als noms.

A continuació es mostra un exemple de la seva sortida (reformatat per a més claredat). El JSON per a comprovacions de descoberta personalitzades hauria de seguir el mateix format.

[
           { "{#FSNAME}":"/",                           "{#FSTYPE}":"rootfs"   },
           { "{#FSNAME}":"/sys",                        "{#FSTYPE}":"sysfs"    },
           { "{#FSNAME}":"/proc",                       "{#FSTYPE}":"proc"     },
           { "{#FSNAME}":"/dev",                        "{#FSTYPE}":"devtmpfs" },
           { "{#FSNAME}":"/dev/pts",                    "{#FSTYPE}":"devpts"   },
           { "{#FSNAME}":"/lib/init/rw",                "{#FSTYPE}":"tmpfs"    },
           { "{#FSNAME}":"/dev/shm",                    "{#FSTYPE}":"tmpfs"    },
           { "{#FSNAME}":"/home",                       "{#FSTYPE}":"ext3"     },
           { "{#FSNAME}":"/tmp",                        "{#FSTYPE}":"ext3"     },
           { "{#FSNAME}":"/usr",                        "{#FSTYPE}":"ext3"     },
           { "{#FSNAME}":"/var",                        "{#FSTYPE}":"ext3"     },
           { "{#FSNAME}":"/sys/fs/fuse/connections",    "{#FSTYPE}":"fusectl"  }
       ]

A l'exemple anterior, les claus han de coincidir amb els noms de macro LLD emprats als prototips, l'alternativa és extreure els valors de macro LLD mitjançant JSONPath {#FSNAME}$.fsname i {#FSTYPE}$.fstype d'aquesta manera, fent possible aquest script:

#!/usr/bin/perl
        
       $first = 1;
        
       print "[\n";
        
       for (`cat /proc/mounts`)
       {
           ($fsname, $fstype) = m/\S+ (\S+) (\S+)/;
        
           print "\t,\n" if not $first;
           $first = 0;
        
           print "\t{\n";
           print "\t\t\"fsname\":\"$fsname\",\n";
           print "\t\t\"fstype\":\"$fstype\"\n";
           print "\t}\n";
       }
        
       print "]\n";

A continuació es mostra un exemple de la seva sortida (reformatat per a més claredat). El JSON per a comprovacions de descoberta personalitzades hauria de seguir el mateix format.

[
           { "fsname":"/",                           "fstype":"rootfs"   },
           { "fsname":"/sys",                        "fstype":"sysfs"    },
           { "fsname":"/proc",                       "fstype":"proc"     },
           { "fsname":"/dev",                        "fstype":"devtmpfs" },
           { "fsname":"/dev/pts",                    "fstype":"devpts"   },
           { "fsname":"/lib/init/rw",                "fstype":"tmpfs"    },
           { "fsname":"/dev/shm",                    "fstype":"tmpfs"    },
           { "fsname":"/home",                       "fstype":"ext3"     },
           { "fsname":"/tmp",                        "fstype":"ext3"     },
           { "fsname":"/usr",                        "fstype":"ext3"     },
           { "fsname":"/var",                        "fstype":"ext3"     },
           { "fsname":"/sys/fs/fuse/connections",    "fstype":"fusectl"  }
       ]

Aleshores, al camp "Filtre" de la regla de descoberta, podríem especificar "{#FSTYPE}" com a macro i "rootfs|ext3" com a expressió regular.

No cal que empreu els noms de macro FSNAME/FSTYPE amb regles LLD personalitzades, podeu emprar els noms que vulgueu. En cas que s'empri JSONPath, la línia LLD serà un element de matriu que pot ésser un objecte, però també pot ésser una altra matriu o un valor.

Tingueu en compte que si feu servir un paràmetre d'usuari, el valor de retorn és limitat a 16Mo. Per obtindre més informació, consulteu els límits de dades per als valors de retorn d'LLD.