Pour superviser les sites Web avec Zabbix, il existe trois méthodes:
- Web scénarios
- Item HTTP Agent
- Exécuter une commande système (ex: Curl)
Elles sont cependant trop limités pour des applications web modernes (javascript, MFA, etc…).
« Browser monitoring » s’interface avec Selenium (retenue par Zabbix SIA), il s’agit d’une solution libre reconnue et utilisée par de nombreuses autres solutions gratuites et payantes.
L’implémentation du « Browser monitoring » a été réalisée en étendant le moteur de javascript existant (utilisé dans le pré-processing notamment) pour permettre de piloter un contrôleur Selenium externe
Note: Zabbix ne fournit pas Selenium lors de son installation.
L’activation du « Browser monitoring » se fait via les directives suivantes dans le fichier de configuration du Zabbix Server:
Le template fournit dans Zabbix 7.0 permet de superviser un site web via son url et de récupérer un certains nombre de métriques:
Ainsi qu’une capture d’écran de la page affichée à la fin du script par le navigateur (on notera au passage le nouveau type d’item « Binary » pour stocker les captures d’écrans en base64)
Un dashboard prêt à l’emploi (par item « Browser ») est également disponible:
Cependant, nous sommes face à une première implémentation marquée comme « Expérimentale » dans la documentation officielle.
Elle vient donc avec un certain nombre de limitations:
- Impossibilité d’utiliser l’extension navigateur « Selenium IDE »1 qui permet l’enregistrement et l’export de scénarios Web multi étapes.
- Les scénarios Web doivent être développés intégralement en javascript2 (captures d’écran multiples, gestion d’erreurs, etc..). Des exemples sont présents dans la documentation3.
- Implémentation limitée (due à l’utilisation du moteur javascript existant)
- Les widgets de Zabbix ne permettent pas de naviguer par « session »
- https://chromewebstore.google.com/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
- https://www.zabbix.com/documentation/7.0/en/manual/config/items/preprocessing/javascript/browser_item_javascript_objects?hl=Browser%2Cbrowser
- https://www.zabbix.com/documentation/7.0/en/manual/config/items/itemtypes/browser?hl=Browser%2Cmonitoring%2Cbrowser