Monitorer avec Zabbix un cluster Proxmox

Par défaut, l’agent Zabbix ne parvient pas à monitorer l’état des machines virtuelles et containers fonctionnant sur un cluster proxmox. C’est pourquoi nous devons nous connecter à l’API HTTP pour récupérer les valeurs.

Bien entendu, il faut monitorer la machine virtuelle elle-même pour obtenir le trafique réseau, ou encore l’utilisation précise du disque dur

Pour ce faire, il existe un modèle créé trouvable ici: https://www.zabbix.com/fr/integrations/proxmox#proxmox. C’est un template créé par la communauté, il n’est pas officiellement maintenant.

A l’heure d’écrire cet article, le monitoring de la version 8.4.1 fonctionne

Se rendre sur le git de zabbix pour récupérer le .yaml, et l’importer dans Zabbix.

Voir ici comment importer un modèle dans un serveur Zabbix: Importer un modèle dans un serveur Zabbix

Une fois ajouter, lier le modèle « Proxmox VE by HTTP« , et se rendre dans l’onglet « Macros »

Ouvrir maintenant un nouvel onglet, et se connecter au cluster Proxmox. Se rendre dans le menu « Datacenter > Permissions > API Tokens« . Ajouter un token avec le bouton « Add« .

Décocher « Privilege Separation« , et spécifier un « Token ID« . Enfin, cliquer sur « Add« 

le token ID est l’identification du token. Dans notre exemple, nous saisirons « demo« 
Veuillez noter que le user spécifier donnera les mêmes droits au token. Attribuez le token à l’utilisateur qui servira au monitoring

Une nouvelle fenêtre s’affiche ensuite avec le token ID et le Secret à saisir dans Zabbix.

Notez bien le secret, et ne le donnez à personne d’autre. Il donne accès à des informations sensibles de votre cluster Promox

Retournez maintenant sur le serveur Zabbix, et dans l’onglet « Macros« , ajouter 3 nouvelles macros:

  • {$PVE.TOKEN.ID}: Contient le token ID
  • {$PVE.TOKEN.SECRET}: Contient le secret
  • {$PVE.URL.HOST}: Contient l’adresse IP ou le FQDN d’un membre du cluster
Je conseille de mettre l’adresse IP du serveur sur lequel le modèle est appliqué
Je conseille de faire la configuration sur chaque nœud du cluster (en assignant à chaque hôte Proxmox le modèle et les macros). Cela peut faire beaucoup de données, mais si un membre du cluster s’arrête, des données sont toujours récoltées

Enfin, sauvegarder l’hôte et observer les données remonter.