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, que es va afegir a Zabbix 3.4, 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).
Per visualitzar el procés de preprocessament de dades, podem emprar el següent diagrama simplificat:
El diagrama anterior només mostra els principals processos, objectes i accions relacionades amb el preprocessament del valor de l'element de manera simplificada. El diagrama no mostra canvis de direcció condicionals, tractament d'errades ni bucles. En aquest diagrama només es mostra un preprocessador (es poden emprar diversos preprocessadors en escenaris del món real), només s'és processant un valor d'element i suposem que aquest element requereix almenys un per executar la passa de preprocessament. L'objectiu d'aquest diagrama és mostrar què hi ha darrera de la canalització de preprocessament del valor de l'article.
L'element es pot posar al final o al començament de la cua de preprocessament. Els elements interns de Zabbix sempre es posen al principi de la cua de preprocessament, mentre que altres tipus d'elements es posen a la cua al final.
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.La cua de preprocessament és una estructura de dades FIFO que emmagatzema valors mantinguent l'ordre en què els valors són recuperats pel gestor de preprocessament. Hi ha diverses excepcions a la lògica FIFO:
Per visualitzar la lògica de la cua de preprocessament, podem emprar el següent diagrama:
Els valors de la cua de preprocessament s'esborren des de l'inici de la cua fins al primer valor no processat. Així, per exemple, el controlador de preprocessament abocarà els valors 1, 2 i 3, però no el valor 5 perquè el valor 4 encara no s'ha processat:
Només es deixaran dos valors a la cua (4 i 5) després del buidat, els valors s'afegeixen a la memòria cau de dades locals del gestor de preprocessament, i després els valors es transfereixen de la memòria cau local a l'historial de la memòria cau. El gestor de preprocessament pot esborrar valors de la memòria cau de dades local en mode d'element únic o en mode bloc (emprat per a elements dependents i valors rebuts mica en mica).
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ó.