Zabbix Agent proxmox : Différence entre versions

De SLM - MediaWiki
Ligne 1 : Ligne 1 :
 +
== Présentation ==
 +
Découverte de bas niveau des nœuds de cluster
  
== Installer les dependances ==
+
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

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 )