Parce qu'il y a toujours une solution...

La création d’un nouvel hôte à superviser peut se faire dans le fichier « hosts.cfg« , par défaut dans le dossier « /etc/shinken/hosts« . Vous pouvez en ajouter plusieurs à la suite dans un même fichier.

Il est toutefois préférable de différencier vos serveurs dans des fichiers indépendants, pour garder une organisation claire dans vos fichiers.


Partie machine (cliente) supervisée

Une première étape préliminaire consiste à s’occuper du SSH – Il faut configurer le SSH sur les machines supervisées et le serveur de supervision.
Rappelez-vous que le serveur Shinken utilise le compte « shinken » pour lancer des commandes, il faut donc créer un utilisateur « shinken » (peu import le mot de passe) sur les machines à superviser.

useradd shinken

Une fois l’utilisateur créé et son mot de passe attribué, il faut préparer le serveur de supervision et effectuer une première connexion (échange de clé) via SSH.


Partie serveur de supervision

Connectez-vous avec l’utilisateur « Shinken » sur votre serveur de supervision, puis générez sa paire de clé SSH.

su shinken
ssh-keygen

Par défaut, la paire de clé va se créer à la racine du home de l’utilisateur dans un dossier caché, soit (dans notre exemple) « /home/shinken/.ssh/« . Le fichier s’appelle « id_rsa« . Lors de la génération de la paire de clés, vous pouvez modifier l’emplacement et le nom des clés.

Vous devez copier cette clé sur le serveur de supervision – pour pouvoir se connecter et effectuer la supervision matérielle, Shinken se connecte via le compte « shinken » sur la machine distante avec sa clé RSA.

ssh-copy-id -i /home/shinken/.ssh/id_rsa.pub shinken@srv_supervisé

Cette commande copie la clé RSA de l’utilisateur « shinken » de la machine cliente sur le serveur de supervision, dans le compte « shinken » distant (donc du serveur de supervision). Ainsi, la connexion pourra se faire via SSH, notamment par l’échange de clés.

Pour tester si la connexion est opérationnelle, allez sur votre serveur de supervision, puis connectez-vous sur la machine distance (à superviser) via SSH et l’utilisateur « shinken »

ssh shinken@ip_server_supervisé

Vous devriez vous connecter sans mot de passe, puisque la négociation s’est faite avec les échanges de clés.

[divider style= »solid » top= »10″ bottom= »10″]

L’échange de clés SSH étant effectué, il faut définir un nouveau serveur Linux à superviser via SSH dans Shinken. Ce fichier doit être créé dans le dossier « /etc/shinken/hosts » et avoir l’extension « .cfg » (par exemple, « srv01.cfg ») :

define host {
 use linux-ssh ; Template SSH utilisée par Shinken pour superviser
 host_name srv_supervisé ; Nom de l'hôte qui apparaîtra dans la dashboard de Shinken (webUI)
 alias Serveur linux client ; Rapide description de l'hôte -- FACULTATIF
 address 192.168.51.145 ; Adresse IP ou nom FQDN de l'hôte
 hostgroups srv ; Nom du groupe auquel appartient l'hôte -- FACULTATIF
 contact_groups admins ; Nom du groupe des contacts (pour les notifications)
}

Explications :

  • define host { : Définition d’une nouvelle machine à superviser ;
  • use linux-ssh : Il faut utiliser le template « linux-ssh » pour effectuer les contrôles via SSH ;
  • host_name nom_server : Vous devez définir le nom de la machine supervisée – Ce nom sera utilisée pour repérer plus facilement les machines dans l’interface web de Shinken d’une part, et de pouvoir utiliser ce nom pour créer et gérer des groupes de serveur (hostgroups), diverses hiérarchies etc…
  • alias Serveur linux client : Une petite description de votre poste supervisé, des notes complémentaires... – FACULTATIF –
  • address 192.168.51.145 : L’adresse IP de la station / du serveur supervisé.
    Il n’y a pas besoin de mettre un port spécifique, d’utilisateur ou autre informations – Seulement l’adresse IP de la machine à superviser.
  • hostgroups srv : La définition d’un « hostgroups » permet de grouper certains serveurs à superviser ensemble et ainsi, envoyer une série de commandes à ce groupe (et donc à tous les serveurs du groupe), de « classer » les serveurs et ainsi créer une hiérarchie… – FACULTATIF –
  • contact_groups admin : Le groupe des contacts permet d’envoyer des notifications à toutes les personnes dans le groupe saisi.

Pour prendre en compte les modifications, redémarrez le module « shinken-arbiter » (systemctl restart shinken-arbiter)

Pour tester un script de supervision via SSH, vous pouvez lancer ce type de commande :

/var/lib/shinken/libexec/check_ssh_connexion.py -H ip_server_supervisé -i /home/shinken/.ssh/id_rsa

D’autres commandes peuvent être passées pour récupérer les stats, comme la mémoire :

/var/lib/shinken/libexec/check_memory_by_ssh.py -H 192.168.184.130 -i /home/shinken/.ssh/id_rsa

Merci à Maxence et Cédric pour les précisions via leurs commentaires ! 😉