O deseño de Zabbix baséase nunha arquitectura cliente servidor clásica pero non exenta de sofisticación na base do seu deseño, que serve para minimizar as limitacións propias dunha arquitectura en estrela. Estas melloras conceptuais permiten o escalado da arquitectura ate a motorización de 100.000 equipos informáticos segundo as especificacións propias do software.

Os modelos de arquitectura en forma de estrela, xerárquicos ou os coñecidos como cliente-servidor son claramente identificables xa que son sistemas onde existe claramente unha parte do sistema que actúa como núcleo central do mesmo.

Este tipo de arquitecturas teñen asociadas, pola súa natureza propia, unha serie de desvantaxes ás que calquera sistema baseado nas mesmas ten que facer fronte. Estas desvantaxes pódense sintetizar en que:

  1. Son sistemas que adoitan ter problemas de escalado no seu servidor central
  2. Son sistemas propensos á aparición de conxestións de rede no acceso ao mesmo servidor central
  3. Son sistemas vulnerables a caídas de sistemas pola perda de acceso ou funcionamento tamén do servidor central
  4. Son sistemas que centralizan as vulnerabilidades do sistema nun só punto de fallo.

Polo tanto, son problemas derivados do excesivo peso que ten na arquitectura global o servidor central. Os arquitectos de Zabbix foron coñecedores dende o primeiro instante destas desvantaxes polo que  corrixiron o deseño da súa arquitectura dende o primeiro momento para adoptar solucións que mitigasen estes problemas.

Deseño da arquitectura de Zabbix

Se falamos superficialmente da arquitectura de rede de Zabbix, estamos a falar dunha arquitectura cliente-servidor onde moitos nós cliente conéctanse a un só nó central que actúa como servidor. O servidor central, dispón de toda a lóxica de agregación e manipulación da información así como da presentación e control de acceso á mesma información.

Profundando, se miramos un pouco máis en detalle ao modelo de comunicación entre o cliente (Axente Zabbix) e o servidor, veremos o primeiro indicio de sofisticación no deseño: En Zabbix a comunicación pode ser unidireccional axente-servidor, unidireccional servidor-axente ou bidireccional.

O soporte destes tres métodos permite a implantación de Zabbix en topoloxías de rede moi diversas e onde mesmo existe NAT ou o servidor non pode ter acceso directo aos axentes pola existencia de firewalls de rede. Nestes escenarios a comunicación pódese facer en Zabbix usando pulling de mensaxes dende os axentes ao servidor.

Non obstante, Zabbix vai máis aló e tamén permite usar conexións activas cara aos axentes directamente accesibles polo servidor sendo esta unha comunicación de moita menor latencia e onde o servidor actúa acorde coa súa capacidade de traballo, evitándose así logo sobrecargas de procesado.

Seguimos a profundar na tipoloxía do sistema  e vemos que, aparte do servidor central e os axentes, existen uns nodos intermedios que se coñecen como Servidores Proxy Zabbix. Un proxy en Zabbix é un servidor intermedio que pode recoller os datos de rendemento e dispoñibilidade en nome dun servidor Zabbix. Deste xeito, o proxy forma parte do proceso do recollida dos datos e alivia a carga de traballo do servidor central.

Aínda máis, utilizar un proxy Zabbix favorece a implementación dun control centralizado e distribuído ao mesmo tempo, cando todos os axentes e proxies informan a un servidor Zabbix central. Así, por exemplo, o servidor proxy pode estar localizado detrás do NAT da rede na que se sitúan os axentes tendo acceso directo aos mesmo, tendo unha comunicación directa con eles. O servidor central Zabbix só necesitará acceso a este proxy para obter a información de todos os axentes que este proxy supervisa.

Os datos recollidos polo proxy son agregados, compactados e enviados pasiva ou activamente ao servidor Zabbix. Con isto conséguese tamén minimizar a conxestión de tráfico cara ao servidor.

Outra vantaxe respecto do uso dos proxy Zabbix é que este engade tolerancia ao conxunto do sistema respecto de eventuais caídas do servidor Zabbix xa que os proxy Zabbix teñen a capacidade de reter a información non entregada ata o restablecemento da comunicación co servidor. Estamos a falar aquí, neste punto, da peza clave onde se fortalece o deseño da arquitectura de Zabbix e onde quedan mitigadas a meirande parte das limitacións da arquitectura cliente-servidor nas que o sistema puidese sofrer perdas de datos ou situacións similares.

Xa recompilando, os proxy Zabbix permiten a descentralización, en varios puntos, de moita da lóxica de recolección e agregación dos datos, así como favorecen un deseño moito máis flexible da topoloxía de rede que permite minimizar as limitacións que adoitan ter a meirande parte das redes TCP/IP de hoxe en día: redes heteroxéneas, con subneting, NAT e restricións de portos a nivel de firewall.

En resumo, malia que os proxy Zabbix non solucionan plenamente os problemas de dispoñibilidade dos servidor Zabbix, si que os mitigan permitindo situacións de caídas eventuais do servidor Zabbix, tamén actuando como barreiras de sobreexposición do servidor Zabbix en redes non seguras e minimizando a carga de traballo deste na recollida, procesado e manipulación dos datos.

No próxima entrega falaremos do perfeccionamento dun despegue Zabbix e a súa configuración en alta dispoñibilidade.

Artigos da serie

Zabbix: Solución para la monitorización con Software Libre

Zabbix (1/4) : Orientación ITIL de la supervisión de servicios

Pin It on Pinterest

Share This