Zabbix Agent proxmox : Différence entre versions
(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 | ||
− | + | 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 | + | 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 === | ||
− | + | 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
Sommaire
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
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.