Aquesta secció proporciona detalls sobre el preprocessament del valor de l'article. El preprocessament del valor d'element us permet definir i executar regles de transformació per als valors d'element rebuts.
El preprocessament es gestiona mitjançant un procés gestor de preprocessament, així com agents de preprocessament que executen passes de preprocessament. Tots els valors (amb o sense preprocessament) dels diferents recopiladors de dades passen pel controlador de preprocessament abans d'afegir-se a la memòria cau de l'historial. La comunicació IPC basada en socket s'empra entre els col·lectors de dades (pollers, trappers, etc.) i el procés de preprocessament. El servidor Zabbix o el proxy Zabbix (per als elements monitorats pel proxy) realitza les passes de preprocessament.
Per visualitzar el flux de dades de la font de dades a la base de dades Zabbix, podem emprar el següent diagrama simplificat:
El diagrama anterior només mostra els processos, objectes i accions relacionades amb el processament del valor de l'element en una forma simplificada. El diagrama no mostra canvis de direcció condicionals, tractament d'errors ni bucles. Tampoc es mostra la memòria cau de dades locals del gestor de preprocessament perquè no afecta directament el flux de dades. L'objectiu d'aquest diagrama és mostrar els processos implicats en el processament del valor dels elements i com interactuen.
L'element pot canviar d'estat a NO SOPORTAT durant el preprocessament si alguna de les passes de preprocessament falla.
L'element pot canviar d'estat a NO SOPORTAT si la normalització de dades falla (per exemple, quan el valor del text no es pot convertir a nombre).
El preprocessament de les dades es realitza en els passos següents:
Tingueu en compte que al diagrama el preprocessament de l'element principal es simplifica lleugerament si omet la memòria cau del preprocessament.
La cua de preprocessament s'organitza com:
La memòria cau del preprocessament es va introduir per millorar el rendiment del preprocessament per a diversos elements dependents amb passes de preprocessament similars (que és un resultat comú de LLD).
La memòria cau es fa preprocessant un element dependent i reutilitzant algunes de les dades de preprocessament intern per a la resta d'elements dependents. La memòria cau de preprocessament només s'admet a la primera passa de preprocessament dels tipus següents:
[?(@.path == "valor")]
)El fitxer de configuració del servidor Zabbix permet als usuaris establir el nombre de processos de treball de preprocessament. El paràmetre de configuració StartPreprocessors s'ha d'emprar per establir el nombre d'instàncies pre-bifurcades dels processos de treball de preprocessament. El nombre òptim de processos de treball de preprocessament es pot determinar per molts factors, inclòs el nombre d'elements "preprocessables" (elements que requereixen que es facin passes de preprocessament), el nombre de processos de recollida de dades, el nombre mitjà de passes per al preprocessament d'elements, etc. .
Però suposant que no hi hagi operacions de preprocessament pesades com ara l'anàlisi de grans blocs XML/JSON, el nombre de processos de treball de preprocessament pot coincidir amb el nombre total de recopiladors de dades. D'aquesta manera hi haurà la majoria de les vegades (excepte en els casos en què les dades del col·lector arriben mica en mica) almenys un preprocessador inactiu per a les dades recollides.
Massa processos de recollida de dades (enquestadors, enquestadors d'inaccessibilitat, enquestadors ODBC, enquestadors HTTP, pollers Java, pingers, trappers, proxypollers) associats amb el gestor IPMI, el trapper SNMP i els agents de preprocessament poden esgotar el límit de descriptors de fitxer per procés per al gestor de preprocessament. Això farà que el servidor Zabbix s'aturi (normalment poc després de l'inici, però de vegades pot trigar més). S'ha de revisar el fitxer de configuració o pujar el límit per evitar aquesta situació.
El processament del valor de l'article es fa en múltiples passos (o fases) mitjançant diversos processos. Això pot dur a:
Per tant, l'element dependent rep un valor, mentre que l'element principal canvia el seu estat a NO SUPORTAT.
CHAR
per a l'element principal, el valor de l'element principal es truncarà durant la fase de sincronització de l'historial, mentre que els elements dependents rebran el seu valor del valor inicial (no truncat) de l'element principal.