Cette page a pour objectif de décrire la mise en place du pack proxmox-ve-by-API__shinken :
Le déploiement du pack sur la plateforme (sur le Synchronizer et sur le ou les Pollers),
La configuration des prérequis nécessaires à l’exécution des checks.
En préambule, il faut :
L'installation de l'environnement virtuel s'effectue en deux étapes :
Récupérer l'archive tar.xz de l'environnement virtuel
Chaque pack requiert une version minimale de l'environnement virtuel pour fonctionner. Les versions sont rétrocompatibles. Il est donc recommandé de toujours utiliser la dernière version disponible de l'environnement virtuel.
| Pack | Environnement virtuel minimum |
|---|---|
| proxmox-ve-by-API | V01.00.03 |
Décompresser l'archive tar.xz de l'environnement virtuel sur tous les serveurs Shinken avec un poller ou synchronizer et lancer l'installation.
Décompresser l'archive sur les serveurs Shinken
tar -xJf VENV__plugins-packs__shinken__VXX.XX.XX__Linux-<distrib>.tar.xz |
Rentrer dans le répertoire créé à la suite de la décompression, et exécuter le script d'installation.
cd VENV__plugins-packs__shinken__VXX.XX.XX__Linux-<distrib> ./install-venv.sh |
Que ce soit sur un Synchronizer ou sur un Poller :
Désarchiver le pack :
tar --no-same-owner -xf NOM_DU_PACK.tar.xz |
Entrer dans le répertoire extrait de l'archive et lancer le "install.sh"
cd NOM_DU_PACK/ ./install.sh |
L'installeur dépose les éléments suivants :
Exemple de mise en place :
========================================================
PRE-INSTALLATION CHECKS
========================================================
No previous installation detected. Proceeding with installation...
========================================================
CHECKING PACK LIBRARIES:
========================================================
- PYTHON VENV
~~~~~~~~~~~~~~~~~~
=> Location [/var/lib/shinken-user/libexec/shinken-additional-packs/.shinken__venv_plugin]
=> REQUIRED : 01.00.03
- Currently installed Venv version : 01.00.03
=> NOTHING TO DO.
========================================================
INSTALL PACK [ proxmox-ve-by-API__shinken V01.00.00 ]
========================================================
-----------------------------
| COLLECTOR [ shinken-additional-packs-import ]
=> Collector cfg file already AVAILABLE
- Path : /etc/shinken/sources/shinken-additional-packs-import.cfg
=> Collector DATA space already AVAILABLE
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
=> Definition File already AVAILABLE [ definition_shinken-additional-packs-import.cfg ]
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/definition_shinken-additional-packs-import.cfg
=> Applying permissions
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
- Setting owner ( to "shinken" user )
- Setting rights
-----------------------------
| MONITORING DEFINITION:
=> Installing definitions file in source-data folder ( Collector => shinken-additional-packs-import )
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
- Setting owner ( to "shinken" user )
- Setting rights
=> Installing global data definitions file in SHINKEN directory ( => resource.d )
- Path : /etc/shinken/resource.d/shinken-additional-packs-import
- Setting owner ( to "shinken" user )
- Setting rights
-----------------------------
| PROBES:
=> Installing probes
- Path : /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken
- Setting owner ( to "shinken" user )
- Setting rights
======================================================== |
Si une version du pack est déjà installée, elle doit être désinstallée avant d’installer la nouvelle version. L’installeur vérifiera automatiquement si l’ancienne version a été correctement supprimée et vous avertira si ce n’est pas le cas. |
========================================================
PRE-INSTALLATION CHECKS
========================================================
ERROR: Previous installation detected!
The following files/folders from a previous installation were found:
- /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken
- /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken
- /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
- /etc/shinken/resource.d/shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
Please run './uninstall.sh' before installing the pack.
Installation ABORTED.
WARNING: Uninstallation will remove all installed config files ( .cfg ).
This step is required for installing this new pack version.
All manual changes to the present config files will be lost. This doesn't affect shinken Staging or Production environment. |
SEULEMENT si le collecteur "shinken-additional-packs-import" n'est pas déja PRÉSENT dans votre Synchronizer ( par exemple : première fois que vous utilisez un installeur de pack Shinken ) :
Vérifier dans la configuration de votre Synchronizer ( /etc/shinken/synchronizers/synchronizer-master.cfg ) que le collecteur "shinken-additional-packs-import" soit présent dans le champ sources.
cat /etc/shinken/synchronizers/synchronizer-master.cfg |
define synchronizer {
[...]
sources Source 1, Source 2, Source 3, shinken-additional-packs-import
[...]
} |
Si le collecteur "shinken-additional-packs-import" n'est pas présent, l'ajouter dans la liste puis redémarrez le Synchronizer pour que le collecteur soit pris en compte :
|
Activer le collecteur "shinken-additional-packs-import" si ce n'est pas déjà fait.
|
Lancer l'import du collecteur "shinken-additional-packs-import" :
|
IMPORTANT : si c'est la première fois que vous installez le pack, il est nécessaire de faire un dernier redémarrage du Synchronizer.
|
Il est recommandé de supprimer les anciens dossiers contenant le pack afin de garantir l'utilisation de la dernière version des fichiers livrés.
Pour effectuer cette suppression ( si la procédure d'installation manuelle a été suivie telle quelle ), la commande suivante peut être utilisée :
rm -rf /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken rm -rf /etc/shinken/resource.d/shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken |
Transférer le fichier du pack sur la machine et décompresser le fichier contenant le pack à l'aide de la ligne de commande ci-dessous (remplacer "PACK__shinken__NOM-DU-PACK__VERSION__OS.tar.gz" par le nom exact du pack livré) :
tar -xjfv --no-same-owner PACK__shinken__NOM-DU-PACK__VERSION__linux.tar.xz -C ./ |
tar -xvzf PACK__shinken__NOM-DU-PACK__VERSION__windows.tar.gz -C ./ |
Entrer dans le répertoire créé :
cd NOM_DU_PACK/ |
On place les sondes :
probe_path="/var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken" mkdir --parents $probe_path cp -r ./probes/* $probe_path chown -R shinken:shinken $probe_path chmod -R 750 $probe_path |
Ensuite, il est nécessaire de placer les définitions des éléments de supervision du pack au bon endroit.
Il est recommandé de créer un collecteur de type cfg-file-import, qui permet d'importer des définitions d'éléments Shinken à partir des fichiers .cfg fournis dans le pack.
La procédure de mise en place de ce type de collecteur est disponible dans la documentation à la page : ( Collecteur de type ( cfg-file-import ) - Import depuis des fichiers au format .cfg )
Une fois le collecteur mis en place, le pack peut être déployé à l’emplacement attendu :
En premier, les fichiers de définition des éléments ( modèles d'hôtes, checks, commandes, ... ) du pack :
shinken_collector_data_path="/etc/shinken-user/source-data/source-data-shinken-additional-packs-import" cp -r ./monitoring-definitions/packs/* $shinken_collector_data_path chown -R shinken:shinken $shinken_collector_data_path chmod -R 744 $shinken_collector_data_path |
Ensuite, les données globales
shinken_pack_globaldata_path="/etc/shinken/resource.d/shinken-additional-packs-import" mkdir --parents $shinken_pack_globaldata_path cp -r "./monitoring-definitions/global-data" "$shinken_pack_globaldata_path" chown -R shinken:shinken "$shinken_pack_globaldata_path" chmod -R 744 "$shinken_pack_globaldata_path" |
Redémarrer le Synchronizer
|
Activer le collecteur "shinken-additional-packs-import" :
|
Lancer l'import du collecteur "shinken-additional-packs-import",
|
IMPORTANT : si c'est la première fois que vous installez le pack, il est nécessaire de faire un dernier redémarrage du Synchronizer.
|
Le dossier extrait lors de la décompression du pack peut également être supprimé à l’aide de la commande suivante :
rm -rf ./PACK__proxmox-ve-by-API_shinken__V01.00.00__Linux |
Attention à ne pas supprimer le fichier tar.gz. Connaître la version exacte du pack livré est utile en cas de problème avec celui-ci. |
Si une version précédente du pack a déjà été installée, il est recommandé de supprimer les anciens dossiers pour éviter de conserver des fichiers obsolètes, notamment en cas de modification de la structure du pack.
Utiliser les commandes suivantes pour effectuer cette suppression :
rm -rf /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken rm -rf /etc/shinken/resource.d/shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken |
Pour l'exécution correcte des commandes du pack proxmox-ve-by-API, l'accès à l'API native de Proxmox est requis.
Quelques informations au préalable sont nécessaires pour la bonne compréhension de cette partie.
Nous conseillons fortement l'utilisation d'un utilisateur spécifique ( pour le service de supervision ) à droit restreint pour effectuer les vérifications, afin d'éviter les brèches de sécurité.
Pour créer tous les éléments nécessaires à la supervision Proxmox, il faut, directement depuis l'interface de configuration Proxmox :
Dans cet exemple, le nom d'utilisateur utilisé sera "shinken" et le nom de la clé sera "SUP-SHINKEN".
Les noms d'utilisateur et de clé API utilisés ici seront ensuite utilisés dans l'interface Shinken pour les données suivantes :
|
Sur l'interface de configuration, se rendre dans "Datacenter" puis dans "Users" :
|
Dans le menu "Users", créer un nouvel utilisateur avec le bouton "Add" ( indiquer uniquement un nom d'utilisateur et valider ) :
|
À ce stade, l'utilisateur de supervision "shinken" a bien été créé.
Sur l'interface de configuration, se rendre dans "Datacenter" puis dans "API Tokens" :
|
Dans le menu "API Tokens", créer une nouvelle clé avec le bouton "Add" ( indiquer uniquement un nom à la clé et valider ) :
|
La clé API ne s'affiche qu'une seule fois, à la création de celle-ci. Il faut la stocker en lieu sûr avant de continuer. |
À ce stade, la clé API "SUP-SHINKEN" a bien été créée.
Sur l'interface de configuration, se rendre dans "Datacenter" puis dans "Permissions" :
|
Dans le menu "Permission", créer une première règle avec le bouton "Add" en sélectionnant "User Permission" et indiquer :
|
Dans le menu "Permission", créer une seconde règle avec le bouton "Add" en sélectionnant "API Token Permission" et indiquer :
|
A ce stade, la configuration des permission est terminée.
La configuration sur l'interface de configuration Proxmox est terminé. Le noeud est prêt à être supervisé.
| Nom | Modifiable sur | Unité | Défaut | Valeur par défaut à l'installation du pack | Description | ||
|---|---|---|---|---|---|---|---|
| l'Hôte ( Onglet Données ) | -- | $HOSTNAME$ | $HOSTNAME$ | Le nom du nœud Proxmox supervisé. Il faut utiliser le nom du nœud correspondant à l'adresse IP de l'hôte :
Si l'adresse IP de l'hôte Shinken est 172.17.0.14, alors PROXMOX-VE-BY-API__NODE-NAME doit être exemple-shinken-proxmox-cluster01. | ||
| l'Hôte ( Onglet Données ) | -- | 8006 | 8006 | Le port utilisé pour accéder à l'API. Par défaut, il s'agit du même port que celui de l'interface de configuration et de gestion Proxmox. | ||
| l'Hôte ( Onglet Données ) | -- | True | True | Le mode de gestion SSL :
| ||
| l'Hôte ( Onglet Données ) | -- | shinken:secret | shinken:secret | Combinaison du nom de la clé API et de la clé API.
| ||
| l'Hôte ( Onglet Données ) | -- | shinken@pve | shinken@pve | Nom de l'utilisateur Proxmox à utiliser pour la connexion. |
Entrer dans le répertoire extrait de l'archive et lancer le "uninstall.sh"
cd PACK__proxmox-ve-by-API__shinken__V01.00.00__Linux ./uninstall.sh |
Ce mécanisme va seulement enlever les fichiers mis en place lors de l'installation ( Fichier du collecteur d'import, définition des éléments de supervision, et les sondes proposées ), mais ne touchent pas aux éléments que vous avez absorbés dans le Synchronizer.
==========================================================
UNINSTALL PACK [ proxmox-ve-by-API__shinken V01.00.00 ]
==========================================================
-----------------------------
| MONITORING DEFINITION:
=> Deleting pack monitoring definition folder
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken
=> Deleting pack monitoring definition file
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken.pack
=> Deleting pack monitoring globaldata folder
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
=> Deleting shinken pack globaldata folder
- Path : /etc/shinken/resource.d/shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken/
-----------------------------
| PROBES:
=> Deleting probes
- Path : /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken
==========================================================
PACK [ proxmox-ve-by-API__shinken V01.00.00 ] SUCCESSFULLY UNINSTALLED
========================================================== |
À noter : vous devrez retirer les éléments importés dans le Synchronizer ( modèles d'hôtes, checks, ... ) via les actions de masse. |