20. Extensions

Vista general

Tot i que Zabbix ofereix una multiplicitat de funcions, sempre hi ha espai per a funcionalitats addicionals. Les extensions són una manera convenient de modificar i millorar les capacitats de monitoratge de Zabbix sense canviar el seu codi font.

Podeu ampliar la funcionalitat de Zabbix emprant opcions d'extensió integrades (elements trapper, paràmetres d'usuari, etc.) o emprant o creant extensions personalitzades (mòduls carregables, connectors, etc.).

Aquesta secció ofereix una visió general amb referències a totes les opcions per ampliar Zabbix.

Recollida de dades amb comandes personalitzades

Elements trapper

Elements Trapper són elements que accepten dades entrants en lloc de consultar-les. Els elements Trapper són útils per enviar dades específiques al servidor Zabbix, per exemple, dades periòdiques de disponibilitat i rendiment en el cas d'scripts d'usuari de llarga durada. Podeu fer-ho emprant la utilitat de línia d'ordres enviador de Zabbix o implementant un [protocol de comunicació] basat en JSON (/manual/appendix/items/trapper) (similar al que s'empra al remitent Zabbix).

Verificacions externes

Una comprovació externa és un element per executar comprovacions executant un executable, per exemple, un script de shell o un binari.

Les comprovacions externes les executa el servidor o el proxy Zabbix (quan l'equip és monitorat pel proxy) i no requereix un agent que s'executi a l'equip que monitora.

Paràmetres d'usuari

Un paràmetre d'usuari és una ordre definida per l'usuari (associada amb una clau definida per l'usuari) que, quan s'executa, pot recuperar les dades que necessiteu de l'equip on s'executa l'agent Zabbix. Els paràmetres d'usuari són útils per configurar elements d'agent o agent 2 que no són predefinits a Zabbix.

elements d'agent Zabbix system.run[]

L'element d'agent Zabbix system.run[] és un element per a una ordre definida per l'usuari (associada amb una clau predefinida system.run[] , per exemple, system.run[myscript.sh]) que es pot executar a l'equip on s'executa l'agent Zabbix.

Nota: els elements system.run[] són desactivats de manera predeterminada i, si s'empren, s'han d'habilitar (permès) i definir al fitxer de configuració de l'agent o agent 2 de Zabbix (Paràmetre de configuració AllowKey).

Les ordres definides per l'usuari en elements com ara comprovacions externes, paràmetres d'usuari i elements de l'agent Zabbix system.run[] s'executen des de l'usuari del sistema operatiu que s'empra per executar components Zabbix. Per executar aquestes ordres, aquest usuari ha de tindre els permisos necessaris.

Elements d'agent HTTP

L'element agent HTTP és un element per executar peticions de dades mitjançant HTTP/HTTPS. Els elements d'agent HTTP són útils per enviar peticions a punts finals HTTP per recuperar dades de serveis com ara Elasticsearch i OpenWeatherMap, per comprovar l'estat de l'API Zabbix o l'estat del servidor web Apache o Nginx, etc.

Elements d'script

Un element d'script és un element per executar codi JavaScript definit per l'usuari que recupera dades mitjançant HTTP/HTTPS. Els elements d'script són útils quan no n'hi ha prou amb la funcionalitat proporcionada pels elements de l'agent HTTP. Per exemple, en escenaris exigents de recollida de dades que requereixen diverses passes o lògica complexa, es pot configurar un element d'script per fer una crida HTTP, processar les dades rebudes i passar el valor transformat a una segona crida HTTP.

Els elements de l'agent HTTP i els elements d'script són compatibles amb el servidor i el proxy Zabbix i no requereixen un agent que s'executi a l'equip que monitora.

Extensions avançades

Mòduls carregables

Els mòduls carregables, escrits en C, són una opció versàtil i orientada al rendiment per ampliar la funcionalitat dels components Zabbix (servidor, proxy, agent) a les plataformes UNIX. Un mòdul carregable és bàsicament una biblioteca compartida emprada pel dimoni Zabbix i carregada a l'inici. La biblioteca hauria de contindre determinades funcions, de manera que un procés Zabbix pugui detectar que el fitxer és realment un mòdul amb el qual pot carregar i treballar.

Els mòduls carregables tenen una sèrie d'avantatges, inclosa la possibilitat d'afegir noves mètriques o implementar qualsevol altra lògica (per exemple, exportació de dades de l'historial de Zabbix), un gran rendiment, i l'opció de desenvolupar, emprar i compartir la funcionalitat que proporcionen. Contribueix al manteniment sense problemes i ajuda a oferir noves funcionalitats més fàcil i independentment de la base de codi bàsic de Zabbix.

Els mòduls carregables són especialment útils en una configuració de monitoratge complexa. Quan es monitoren sistemes incrustats, tindre un gran nombre de paràmetres monitorats o scripts feixucs amb una lògica complexa o un temps d'inici llarg, les extensions com ara els paràmetres d'usuari, els elements de l'agent Zabbix system.run[] i les comprovacions externes tindran un impacte en el rendiment. Els mòduls carregables ofereixen una manera d'ampliar la funcionalitat de Zabbix sense sacrificar el rendiment.

Plugins

els Plugins ofereix una alternativa als mòduls carregables (escrits en C). Tanmateix, els plugins són una manera d'estendre només l'agent Zabbix 2.

Un plugin és un paquet Go que defineix l'estructura i implementa una o diverses interfícies de plugins (Exporter, Collector, Configurator, Runner, Watcher). S'admeten dos tipus de plugins de l'agent 2 de Zabbix:

Consulteu la llista de plugins integrats.

Per obtindre instruccions i tutorials sobre com escriure els vostres propis plugins, consulteu Centre de desenvolupadors.

Personalització d'alertes

Webhooks

Un webhook és un [tipus de suport] de Zabbix (/manual/config/notifications/media) que ofereix una opció per ampliar les capacitats d'alertes de Zabbix a programari extern com ara sistemes d'assistència, xats o missatgers. De manera similar als elements d'script, els webhooks són útils per fer crides HTTP mitjançant codi JavaScript personalitzat, per exemple, per enviar notificacions a diferents plataformes com Microsoft Teams, Discord i Jira. També és possible retornar algunes dades (per exemple, sobre els tiquets de servei d'assistència creats) que després es mostren a Zabbix.

Els webhooks existents són disponibles al [repositori Git] de Zabbix (https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media). Per obtindre un desenvolupament de webhook personalitzat, consulteu Directrius de desenvolupament de webhook.

Scripts d'alerta

Un script d'alertes és un [tipus de suport] de Zabbix (/manual/config/notifications/media) que ofereix una opció per crear una manera alternativa (script) de gestionar les alertes de Zabbix. Els scripts d'alertes són útils si no us satisfan els tipus de suport existents per enviar alertes a Zabbix.

Personalització de la interfície

Temes personalitzats

És possible canviar l'aspecte visual de la interfície de Zabbix emprant temes personalitzats. Veieu les instruccions per crear i aplicar els vostres propis temes.

Mòduls d'interfície

Els mòduls d'interfície ofereixen una opció per ampliar la funcionalitat de la interfície Zabbix afegint mòduls de tercers o desenvolupant els vostres. Amb els mòduls d'interfície podeu afegir nous elements de menú, les seves respectives vistes, accions, etc.

Scripts globals

Un script global és un conjunt d'ordres definit per l'usuari que es pot executar en un objectiu de monitoratge (per un intèrpret de shell (/bin/sh)), depenent de l'abast configurat i els permisos dels usuaris. Els scripts globals es poden configurar per a les accions següents:

Els scripts globals són útils en molts casos. Per exemple, si és configurat per a operacions d'acció o accions manuals d'equip, podeu emprar scripts globals per executar automàticament o manualment ordres remotes, com ara reiniciar una aplicació (servidor web, middleware, CRM, etc.) o alliberar espai al disc (esborrar fitxers antics, netejar /tmp, etc.). O, un altre exemple, si és configurat per a accions d'esdeveniments manuals, podeu emprar scripts globals per gestionar les entrades de problemes en sistemes externs.

Els scripts globals es poden executar pel servidor, proxy o agent Zabbix.

Les ordres definides per l'usuari s'executen des de l'usuari del sistema operatiu que s'empra per executar components Zabbix. Per executar aquestes ordres, aquest usuari ha de tindre els permisos necessaris.

API Zabbix

L'API Zabbix és una API basada en HTTP que forma part de la interfície de Zabbix. Amb l'API Zabbix, podeu fer qualsevol de les operacions següents:

  • Recuperar i modificar la configuració de Zabbix mitjançant programació.
  • Importar i exportar la configuració de Zabbix.
  • Accedir a les dades històriques i de tendències de Zabbix.
  • Configurar aplicacions per treballar amb Zabbix.
  • Integrar Zabbix amb programari de tercers.
  • Automatitzar les tasques rutinàries.

L'API de Zabbix consisteix en una multiplicitat de mètodes que s'apleguen nominalment en API separades. Cada mètode fa una tasca específica. Per obtindre els mètodes disponibles, així com una visió general de les funcions proporcionades per l'API Zabbix, veieu l'API Zabbix Referència del mètode.