Zabbix Agent proxmox : Différence entre versions

De SLM - MediaWiki
 
(Une révision intermédiaire par le même utilisateur non affichée)
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 25 : Ligne 28 :
 
  make altinstall
 
  make altinstall
  
Nous utilisons altinstallau lieu de installparce que plus tard, nous écraserons le binaire python3 du système par défaut.
+
Nous utilisons altinstallau lieu de install parce 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 :
 
Python 3.9 a été installé et prêt à être utilisé. Pour le vérifier, tapez :
Ligne 36 : Ligne 39 :
 
=== Agent Zabbix ===
 
=== Agent Zabbix ===
 
[[Zabbix_Agent_Debian|Agent Debian]]
 
[[Zabbix_Agent_Debian|Agent Debian]]
 +
apt-get install zabbix-sender
 +
apt-get install zabbix-get
  
 
=== Installation ===
 
=== Installation ===
  pip3.9 install proxmoxer  
+
Installez le proxmoxeur Python
 +
  pip 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 * * * /etc/scripts/proxmox_cluster.py -a 10.10.10.250 -u zabbix@pve -p eEWQPlmUSLb6rXQq -t 10.10.10.239 -d #Send item data
 +
*/10 * * * * /etc/scripts/proxmox_cluster.py -a 10.10.10.250 -u zabbix@pve -p eEWQPlmUSLb6rXQq -t 10.10.10.239
 +
 +
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 )
 +
 +
== Zabbix ==
 +
Connectez vous en page web au serveur zabbix
 +
https://zabbix.slemoal.fr
 +
 +
=== Templates ===
 +
Télécharger les Templates
 +
snmp_boolean_type_valuemap.xml
 +
https://nextcloud.slemoal.fr/index.php/s/sSnJCZQbJSFTW8k
 +
 +
proxmox_cluster_template.xml
 +
https://nextcloud.slemoal.fr/index.php/s/Gy7qLwXrWcd5FY9
 +
 +
Configuration -> Modèles : Importer
 +
Laisser les cases cochées par défaut, et importer les modèles l'un après l'autre.
 +
 +
===Hôte===
 +
Ajouter le nouvel hôte au serveur Zabbix
 +
Configuration -> Hotes : Créer un hôte
 +
 +
Onglet Hote
 +
* Nom de l'hote: <nom-de-machine>
 +
* Groupes: Linux servers
 +
* Interfaces: Ajouter | Agent | Ip de l'hote ou nom DNS | Choisir ip ou DNS | Port 10050
 +
* Activer
 +
 +
Onglet Modèle
 +
* Link new templates: Templates/Template Proxmox cluster
 +
 +
 +
Onglet Chiffrement
 +
* Connexion à l'hôte: PSK
 +
* Connexion de l'hôte: PSK
 +
* identité PSK:<identite-psk> #exemple psk-jeedom
 +
* PSK: 75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca
 +
 +
Enfin, cliquez sur le bouton "Ajouter" au bas du formulaire pour créer l'hôte.
 +
 +
Vous verrez votre nouvel hôte dans la liste.
 +
 +
Attendez une minute et rechargez la page pour voir les étiquettes vertes indiquant que tout fonctionne bien et que la connexion est chiffrée.

Version actuelle datée du 1 novembre 2021 à 14:32

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 install parce 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

apt-get install zabbix-sender
apt-get install zabbix-get

Installation

Installez le proxmoxeur Python

pip 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 * * * /etc/scripts/proxmox_cluster.py -a 10.10.10.250 -u zabbix@pve -p eEWQPlmUSLb6rXQq -t 10.10.10.239 -d #Send item data
*/10 * * * * /etc/scripts/proxmox_cluster.py -a 10.10.10.250 -u zabbix@pve -p eEWQPlmUSLb6rXQq -t 10.10.10.239

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 )

Zabbix

Connectez vous en page web au serveur zabbix https://zabbix.slemoal.fr

Templates

Télécharger les Templates

snmp_boolean_type_valuemap.xml
https://nextcloud.slemoal.fr/index.php/s/sSnJCZQbJSFTW8k
proxmox_cluster_template.xml
https://nextcloud.slemoal.fr/index.php/s/Gy7qLwXrWcd5FY9
Configuration -> Modèles : Importer

Laisser les cases cochées par défaut, et importer les modèles l'un après l'autre.

Hôte

Ajouter le nouvel hôte au serveur Zabbix

Configuration -> Hotes : Créer un hôte

Onglet Hote

  • Nom de l'hote: <nom-de-machine>
  • Groupes: Linux servers
  • Interfaces: Ajouter | Agent | Ip de l'hote ou nom DNS | Choisir ip ou DNS | Port 10050
  • Activer

Onglet Modèle

  • Link new templates: Templates/Template Proxmox cluster


Onglet Chiffrement

  • Connexion à l'hôte: PSK
  • Connexion de l'hôte: PSK
  • identité PSK:<identite-psk> #exemple psk-jeedom
  • PSK: 75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

Enfin, cliquez sur le bouton "Ajouter" au bas du formulaire pour créer l'hôte.

Vous verrez votre nouvel hôte dans la liste.

Attendez une minute et rechargez la page pour voir les étiquettes vertes indiquant que tout fonctionne bien et que la connexion est chiffrée.