Zabbix Agent proxmox

De SLM - MediaWiki

Présentation

Découverte de bas niveau des nœuds de cluster

Collecte le quorum du cluster et l'état des nœuds, l'utilisation globale du cluster et des nœuds RAM/CPU et le partage KSM, l'allocation et l'utilisation de vRAM, les allocations de vCPU et de vHDD, le nombre de VM et de conteneurs LXC en cours d'exécution ou arrêtés.

Proxmox

python

https://linuxize.com/post/how-to-install-python-3-9-on-debian-10/

Installez les dépendances nécessaires pour compiler Python :

apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-de

Téléchargez le code source de la dernière version depuis la page de téléchargement Python avec wget :

wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz

Une fois le téléchargement terminé, décompresser l'archive

tar -xf Python-3.9.1.tgz

Accédez au répertoire source Python et exécutez le configurescript :

cd Python-3.9.1
./configure --enable-optimizations

Démarrez le processus de construction de Python 3.9 :

make -j 2

Pour un temps de construction plus rapide, modifiez le -jpour qu'il corresponde au nombre de cœurs de votre processeur. Vous pouvez trouver le numéro en tapant nproc.

Une fois le processus de compilation terminé, installez les binaires Python en tapant :

make altinstall

Nous utilisons altinstallau lieu de installparce que plus tard, nous écraserons le binaire python3 du système par défaut.

Python 3.9 a été installé et prêt à être utilisé. Pour le vérifier, tapez :

python3.9 --version

Mettre à jour

/usr/local/bin/python3.9 -m pip install --upgrade pip


Agent Zabbix

Agent Debian

Installation

Installez le proxmoxeur Python

pip3.9 install proxmoxer 

Installer les requêtes Python

pip install requests

Copiez le script scripts/proxmox_cluster.py et rendez-le exécutable. Le script est exécuté à partir des minuteries cron ou systemd et peut être placé n'importe où logiquement.

mkdir /etc/scripts 
cd /etc/scripts
wget https://raw.githubusercontent.com/takala-jp/zabbix-proxmox/master/scripts/proxmox_cluster.py
chmod +x proxmox_cluster.py

Créez un utilisateur zabbix

pveum useradd zabbix@pve -comment "Zabbix monitoring user"

Définissez un mot de passe pour l'utilisateur zabbix

pveum passwd zabbix@pve

Saisissez un mot de passe autogénéré https://www.motdepasse.xyz/

Accordez des autorisations en lecture seule à l'utilisateur zabbix. Le rôle PVEAuditor intégré semble être un bon choix

pveum aclmod / -user zabbix@pve -role PVEAuditor

Configurez des tâches planifiées exécutant le script. Les deux exemples suivants utilisent cron

crontab -e -u zabbix

Ajouter les lignes ci-dessous

#Send discovery data
0 */4 * * * /usr/lib/zabbix/bin/proxmox_cluster.py -a pmx01.your.tld -u zabbix@pve -p password -t$
#Send item data
*/10 * * * * /usr/lib/zabbix/bin/proxmox_cluster.py -a pmx01.your.tld -u zabbix@pve -p password -$

Option Le script accepte les paramètres suivants :

-a : nom d'hôte ou adresse IP de l'API Proxmox (peut inclure le port si l'API écoute sur un port différent de celui par défaut, par exemple pmx01.your.tld:8443)
-c : fichier de configuration de l'agent Zabbix qui est passé en paramètre à l'expéditeur zabbix (par défaut : /etc/zabbix/zabbix_agentd.conf )
-d : envoyer des données de découverte au lieu des données d'élément
-e : Obtenir les détails de configuration étendus de la VM afin de collecter les allocations de vHDD (voir les notes)
-p : mot de passe de l'API Proxmox
-t : nom d'hôte cible Zabbix (l'hôte dans Zabbix avec le modèle de cluster Template Proxmox attaché)
-u : nom d'utilisateur de l'API Proxmox (par défaut : zabbix@pve )
-v : Verbose, imprime les données et les résultats de zabbix_sender sur stdout.
-z : chemin complet vers zabbix_sender (par défaut /usr/bin/zabbix_sender )