Contexte
Cette page a pour objectif de décrire la mise en place du pack netapp-by-SSH__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.
L'installation du pack sur l'infrastructure Shinken
Installation de dépendance : VENV__plugins-packs__shinken
En préambule, il faut :
- Récupérer la dernière version du pack contenant le VENV auprès de l'équipe Shinken,
- Transférer le pack sur le Synchronizer et le ou les Pollers.
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 |
|---|---|
| netapp-by-SSH | V02.00.00 |
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 -xvf 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
Mise en place du pack avec l'installeur "install.sh" ( sur Poller / Synchronizer )
Commun à tout Poller / Synchronizer
Que ce soit sur un Synchronizer ou sur un Poller :
Désarchiver le pack :
tar --no-same-owner -xvf 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 :
- Le fichier de configuration de la source "shinken-additional-packs-import" qui servira à importer la définition du pack dans le Synchronizer.
- Les fichiers de définitions des éléments du pack, à importer dans le Synchronizer.
- Les sondes du pack.
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 [ netapp-by-SSH__shinken V01.01.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/netapp-by-SSH__shinken
- Setting owner ( to "shinken" user )
- Setting rights
========================================================
========================================================
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/netapp-by-SSH__shinken
- /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/netapp-by-SSH__shinken
- /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/netapp-by-SSH__shinken
- /etc/shinken/resource.d/shinken-additional-packs-import/global-data/netapp-by-SSH__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.
Sur le Synchronizer
SEULEMENT si le collecteur "shinken-additional-packs-import" n'est pas déjà 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 :
service-shinken-synchronizer restart
Activer le collecteur "shinken-additional-packs-import" si ce n'est pas déjà fait.
Lancer l'import du collecteur "shinken-additional-packs-import" :
- En suivant, vous devrez peut-être accepter soit des nouveautés, soit des différences qui seraient liées à ce pack ( en fonction de l'évolution du pack ).
- En suivant, vous devrez peut-être accepter soit des nouveautés, soit des différences qui seraient liées à ce pack ( en fonction de l'évolution du pack ).
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.
service-shinken-synchronizer restart
Mise en place du pack manuellement ( si l'utilisation du script install.sh n’est pas souhaitée ) :
Commun à tout Poller / Synchronizer
Si le pack est déjà installé
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/netapp-by-SSH__shinken rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/netapp-by-SSH__shinken rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/netapp-by-SSH__shinken rm -rf /etc/shinken/resource.d/shinken-additional-packs-import/global-data/netapp-by-SSH__shinken
Extraire le pack
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.xz" par le nom exact du pack livré) :
- Pour Linux ( le paramètre --no-same-owner permet de ne pas conserver les attributs d'utilisateurs/rôles présents lors de la création du pack ) :
tar -xvf --no-same-owner PACK__shinken__NOM-DU-PACK__VERSION__linux.tar.xz -C ./
- Pour Windows ( Rôle de Poller ) :
tar -xvf PACK__shinken__NOM-DU-PACK__VERSION__windows.tar.xz -C ./
Entrer dans le répertoire créé :
cd NOM_DU_PACK/
Les sondes ( mises en place )
On place les sondes :
probe_path="/var/lib/shinken-user/libexec/shinken-additional-packs/netapp-by-SSH__shinken" mkdir --parents $probe_path cp -r ./probes/* $probe_path chown -R shinken:shinken $probe_path chmod -R 750 $probe_path
Sur le Synchronizer
Ensuite, il est nécessaire de placer les définitions des éléments de supervision du pack au bon endroit.
- Les fichiers de configuration :
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 )
- Dans la suite de cette documentation, ce collecteur sera nommé "shinken-additional-packs-import"
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
service-shinken-synchronizer restart
Activer le collecteur "shinken-additional-packs-import" :
Lancer l'import du collecteur "shinken-additional-packs-import",
- En suivant, vous devrez peut-être accepter les nouveautés / différences qui seraient liées à ce pack ( en fonction de l'évolution du pack ).
- En suivant, vous devrez peut-être accepter les nouveautés / différences qui seraient liées à ce pack ( en fonction de l'évolution du pack ).
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.
service-shinken-synchronizer restart
Le dossier extrait lors de la décompression du pack peut également être supprimé à l’aide de la commande suivante :
rm -rf ./PACK__netapp-by-SSH__shinken__V01.00.00__Linux
Attention à ne pas supprimer le fichier tar.xz. 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/netapp-by-SSH__shinken rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/netapp-by-SSH__shinken rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/netapp-by-SSH__shinken rm -rf /etc/shinken/resource.d/shinken-additional-packs-import/global-data/netapp-by-SSH__shinken
Comment configurer la connexion SSH vers la baie NetApp ?
Pour l'exécution correcte des commandes du pack netapp-by-SSH, vous aurez besoin d'une connexion SSH et d'un utilisateur créé sur la baie de stockage.
Quelques informations au préalable sont nécessaires pour la bonne compréhension de cette partie.
- Pour la connexion SSH :
- D'une part, du côté de l'architecture Shinken, l'exécution des checks ( plus exactement les sondes) est réalisée par les Pollers, en tant qu'utilisateur "shinken".
- Donc l'utilisateur "shinken" devra avoir accès aux clefs SSH que vous utiliserez pour la connexion SSH sur les serveurs distants monitorés.
- D'autre part, du côté des machines supervisées,
- Un nom d'utilisateur, et une clé SSH sont requis.
- Dans les modèles du netapp-by-SSH , des données sont prévues à cet effet.
- Nous conseillons l'utilisation d'un utilisateur spécifique ( pour le service de supervision ) ainsi que l'utilisation d'une connexion via clé SSH, afin d'éviter l'utilisation du superutilisateur root qui n'est pas requis par les checks.
- D'une part, du côté de l'architecture Shinken, l'exécution des checks ( plus exactement les sondes) est réalisée par les Pollers, en tant qu'utilisateur "shinken".
- Pour la configuration de NetApp
- Pour se connecter en SSH, un utilisateur doit être créé sur la baie de stockage NetApp avec des commandes spécifiques.
- Il est fortement recommandé de créer un utilisateur dédié à droit restreint, spécifiquement utilisé pour la supervision.
Côté client ( NetApp supervisée )
Configuration SSH et utilisateur
Pour créer un utilisateur sur une baie NetApp, il faut utiliser la console ( La création par UI ne permet pas la configuration des clés SSH ).
- Dans cet exemple, nous utilisons "user-service-shinken", mais vous pouvez créer un autre utilisateur.
Pour créer un utilisateur, il faut connaître le nom du "vserver". Pour récupérer le nom du vserver :
security login show
Pour créer l'utilisateur sur la baie NetApp :
security login create -user-or-group-name user-service-shinken -application ssh -authentication-method publickey -role readonly
Pour ajouter la ou les "clés SSH publiques" des pollers Shinken à l'utilisateur " user-service-shinken " :
security login publickey create -vserver <nom-vserver> -username user-service-shinken -index 0 -publickey "ssh-rsa YYYYYYXXXDDD user@nomserv"
Chaque clé est liée à son numéro d'index. Il permet ensuite de les référencer et de les modifier. Chaque clé doit disposer d'un index unique.
Pour ajouter plusieurs clés, il faut réutiliser la commande en incrémentant l'index de +1.
Côté serveur Poller
Copie de la clé SSH de votre utilisateur de supervision "shinken" depuis le serveur Poller "shinken-poller" ( pour cet exemple ), pour ajouter cette clé dans les clés acceptées pour l'utilisateur créé sur la baie NetApp.
Copie clé SSH manuellement
Sur chaque poller :
- Récupérer la clé SSH de l'utilisateur Shinken
[root@shinken-poller ~]# su - shinken [-bash-4.1]$ cat .ssh/id_rsa.pub -> copiez la clé
- ajouter la ou les "clés SSH publiques" des pollers Shinken à l'utilisateur " user-service-shinken "
security login publickey create -vserver <nom-vserver> -username user-service-shinken -index 0 -publickey "ssh-rsa YYYYYYXXXDDD user@nomserv"
Chaque clé est liée à son numéro d'index. Il permet ensuite de les référencer et de les modifier. Chaque clé doit disposer d'un index unique.
Pour ajouter plusieurs clés, il faut réutiliser la commande en incrémentant l'index de +1.
Test de connexion
Test de connexion au serveur "NetApp-1" en tant qu'utilisateur "user-service-shinken" via l'utilisateur du Poller ( shinken ) :
[root@shinken-poller ~]# su - shinken [shinken@shinken-poller ~]# ssh user-service-shinken@NetApp-1 -i .ssh/id_rsa
La connexion doit s'établir avec succès.
Côté interface de configuration
Modèle d'hôtes netapp-by-SSH__base__shinken
| Nom | Modifiable sur | Unité | Défaut | Valeur par défaut à l'installation de Shinken | Description |
|---|---|---|---|---|---|
NETAPP-BY-SSH__AUTHMETHOD | l'Hôte ( Onglet Données ) | -- | ssh_key | ssh_key | Le type de connexion SSH.
|
NETAPP-BY-SSH__USER | l'Hôte ( Onglet Données ) | -- | user-service-shinken | user-service-shinken | Nom de l'utilisateur pour se connecter sur la baie supervisée. |
NETAPP-BY-SSH__PORT | l'Hôte ( Onglet Données ) | -- | 22 | 22 | Port de connexion SSH. |
NETAPP-BY-SSH__KEY | l'Hôte ( Onglet Données ) | -- | /var/lib/shinken/.ssh/id_rsa | /var/lib/shinken/.ssh/id_rsa | Chemin vers la clé SSH privée de l'utilisateur shinken, sur le serveur hébergeant le Poller qui exécutera le check.
|
NETAPP-BY-SSH__PASSPHRASE | l'Hôte ( Onglet Données ) | -- | $SSH_KEY_PASSPHRASE$ | $SSH_KEY_PASSPHRASE$ | Phrase secrète utilisée pour déchiffrer la clé privée de l'utilisateur ( si celle-ci est protégée par une passphrase ). La clé privée déchiffrée est ensuite utilisée pour authentifier l'utilisateur. |
Désinstaller le pack avec "uninstall.sh"
Entrée dans le répertoire extrait de l'archive et lancer le "uninstall.sh"
cd netapp-by-SSH__shinken ./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 touche pas aux éléments que vous avez absorbés dans le Synchronizer.
==========================================================
UNINSTALL PACK [ netapp-by-SSH__shinken V01.01.00 ]
==========================================================
-----------------------------
| MONITORING DEFINITION:
=> Deleting pack monitoring definition folder
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/netapp-by-SSH__shinken
=> Deleting pack monitoring definition file
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/netapp-by-SSH__shinken.pack
=> Deleting pack monitoring globaldata folder
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/netapp-by-SSH__shinken
=> Deleting shinken pack globaldata folder
- Path : /etc/shinken/resource.d/shinken-additional-packs-import/global-data/netapp-by-SSH__shinken/
-----------------------------
| PROBES:
=> Deleting probes
- Path : /var/lib/shinken-user/libexec/shinken-additional-packs/netapp-by-SSH__shinken
==========================================================
PACK [ netapp-by-SSH__shinken V01.01.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.

