Zabbix Agent proxmox : Différence entre versions
Ligne 1 : | Ligne 1 : | ||
+ | == 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 === | === python === | ||
https://linuxize.com/post/how-to-install-python-3-9-on-debian-10/ | https://linuxize.com/post/how-to-install-python-3-9-on-debian-10/ | ||
Ligne 10 : | Ligne 13 : | ||
Téléchargez le code source de la dernière version depuis [https://www.python.org/downloads/source/ la page de téléchargement] Python avec wget : | Téléchargez le code source de la dernière version depuis [https://www.python.org/downloads/source/ la page de téléchargement] Python avec wget : | ||
wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz | 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 | Une fois le téléchargement terminé, décompresser l'archive | ||
tar -xf Python-3.9.1.tgz | tar -xf Python-3.9.1.tgz | ||
Ligne 38 : | Ligne 41 : | ||
=== Installation === | === Installation === | ||
+ | Installez le proxmoxeur Python | ||
pip3.9 install proxmoxer | pip3.9 install proxmoxer | ||
+ | |||
+ | Installer les requêtes Python | ||
pip install requests | 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 | mkdir /etc/scripts | ||
cd /etc/scripts | cd /etc/scripts | ||
wget https://raw.githubusercontent.com/takala-jp/zabbix-proxmox/master/scripts/proxmox_cluster.py | wget https://raw.githubusercontent.com/takala-jp/zabbix-proxmox/master/scripts/proxmox_cluster.py | ||
chmod +x 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 ) |
Version du 1 novembre 2021 à 13:34
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
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 )