Cette page a pour but de vous décrire la mise en place du pack linux_by_ssh :
En préambule, il faut :
Que ce soit sur un Synchronizer où sur un Pollers :
Désarchiver le pack :
tar --no-same-owner -xf NOM_DU_PACK.tar.xz |
Entrée 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 :
Les sondes du pack.
Exemple de mise en place :
=============================================
INSTALL PACK [ shinken-linux_by_ssh ]
=============================================
-----------------------------
| COLLECTOR [ shinken-additional-packs-import ]
=> ADDING Collector cfg file
- Path : /etc/shinken/sources/shinken-additional-packs-import.cfg
=> CREATING Collector DATA space
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
=> ADDING Definition File [ definition_shinken-additional-packs-import.cfg ]
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/definition_shinken-additional-packs-import.cfg
- Changing owner ( to "shinken" user )
- Setting rights
-----------------------------
| MONITORING DEFINITION:
=> Installing definition files in source-data folder ( Collector => shinken-additional-packs-import )
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
- Changing owner ( to "shinken" user )
- Setting rights
-----------------------------
| PROBES:
=> Deleting previous probes
=> Installing probes
- Path : /var/lib/shinken-user/libexec/shinken-additional-packs/shinken-linux_by_ssh
- Setting owner ( to "shinken" user )
- Setting rights
|
Si le collecteur "shinken-additional-packs-import" n'est pas présent dans votre Synchronizer ( par exemple : première fois que vous utilisez un installeur de pack Shinken ) :
Ajouter le nom de la nouvelle source au Synchronizer en modifiant le paramètre sources du fichier /etc/shinken/synchronizers/synchronizer-master.cfg.
define synchronizer {
[...]
sources Source 1, Source 2, Source 3, shinken-additional-packs-import
[...]
} |
et en suivant, redémarrez le Synchronizer pour que le collecteur soit pris en compte :
service shinken-synchronizer restart |
Lancer l'import du collecteur "shinken-additional-packs-import":
|
Nous vous conseillons de supprimer les anciens dossiers dans lesquels le pack était présent, pour être sûr d'avoir la dernière version de tous les fichiers livrés.
Pour supprimer ces dossiers, utilisez la commande suivante ( si vous avez suivi à la lettre la procédure d'installation manuelle ) :
rm -rf /var/lib/shinken-user/libexec/shinken-additional-packs/linux_by_ssh-shinken |
Transférer sur votre machine et décompressez le fichier contenant le pack à l'aide de la ligne de commande ci-dessous ( en remplaçant "PACK__shinken__NON-DU-PACK__VERSION__OS.tar.gz" par le nom du pack qui vous est livré.
tar -xjfv --no-same-owner PACK__shinken__NON-DU-PACK__VERSION__linux.tar.xz -C ./ |
tar -xvzf PACK__shinken__NOM-DU-PACK__VERSION__windows.tar.gz -C ./ |
Entrez dans le répertoire créér :
cd NOM_DU_PACK/ |
On place les sondes :
probe_path="/var/lib/shinken-user/libexec/shinken-additional-packs/shinken-linux_by_ssh" mkdir --parents $probe_path cp -r ./probes/* $probe_path chown -R shinken:shinken $probe_path chmod -R 750 $probe_path |
Ensuite, plaçons maintenant la définition des éléments de supervision du pack au bon endroit :
Une fois le collecteur mis en place, nous allons déployer le pack au bon endroit :
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 shinken
service shinken-synchronizer restart |
Lancer l'import du collecteur "shinken-additional-packs-import",
|
En suivant, vous devrez peut-être accepter les nouveautés / différences qui seraient liés à ce pack ( en fonction de l'évolution du pack ).
Vous pouvez également supprimer le dossier qui a été créé suite à la décompression du pack en utilisant la commande suivante :
rm -rf ./linux_by_ssh |
Attention à ne pas supprimer le tar.gz, connaître la version exacte du pack qui vous a été livré vous sera utile en cas de problème avec votre pack. |
Si vous avez déjà installé une version précédente de ce pack, il vous faudra supprimer les anciens dossiers dans lesquels le pack était présent ( afin d'éviter de garder d'ancien fichier en cas d'évolution de la structure du pack ).
Pour supprimer ces dossiers, utilisez la commande suivante :
rm /etc/shinken/sources/shinken-additional-packs-import.cfg rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/ rm -rf /var/lib/shinken-user/libexec/shinken-linux_by_ssh |
Pour l'exécution correcte des commandes du pack linux_by_ssh, vous aurez besoin d'une connexion SSH.
Quelques informations au préalable sont nécessaires pour la bonne compréhension de cette partie.
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 super utilisateur root qui n'est pas requis par les checks.
Si votre utilisateur de supervision n'est pas déjà créé sur votre linux à superviser, depuis un terminal de la machine supervisée "linux-1" ( en root ), il faut créer un nouvel utilisateur local avec mot de passe.
[root@linux-1 ~]# adduser -m -r user-service-shinken [FACULTATIF] : [root@linux-1 ~]# passwd user-service-shinken |
| Notez que la mise en place d'un mot de passe pour cet utilisateur n'est pas obligatoire, mais il vous faudra copier la clé SSH via la méthode manuelle expliquée plus bas, car la commande automatique ssh-copy-id requiert un mot de passe pour l'utilisateur du système de destination. |
Copie de la clé SSH de votre utilisateur de supervision "shinken" depuis le serveur Poller "shinken-poller" ( pour cet exemple ), vers le serveur supervisé "linux-1" ( dans cet exemple, IP : 192.168.1.19 )
Soit via la méthode "automatique" via la commande ssh-copy-id en se connectant au préalable via l'utilisateur shinken sur le ou les serveurs pollers :
[root@shinken-poller ~]# su - shinken [shinken@shinken-poller ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub user-service-shinken@linux-1 The authenticity of host '192.168.1.19 (192.168.1.19)' can't be established. RSA key fingerprint is 00:ff:ee:dd:cc:bb:aa:d6:d3:79:1d:f6:93:47:80:27. Are you sure you want to continue connecting (yes/no)? yes user-service-shinken@linux-1's password: XXXXXXXXXXX Now try logging into the machine, with "ssh 'user-service-shinken@linux-1'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. |
Soit via une commande SSH depuis le serveur Poller, il s'agit d'ajouter la clé publique au fichier "authorized_keys" du serveur supervisé ( ici linux-1 ) :
cat /var/lib/shinken/.ssh/id_rsa.pub | ssh root@linux-1 "cat >> /home/user-service-shinken/.ssh/authorized_keys" |
Ici la connexion se fait via l'utilisateur root du serveur linux-1 ( mais vous pouvez utiliser votre propre utilisateur ), le but étant de rajouter, en une commande SSH, la clé de l'utilisateur shinken du Poller /var/lib/shinken/.ssh/id_rsa.pub à la fin du fichier /home/user-service-shinken/.ssh/authorized_keys du serveur supervisé.
Soit via méthode "manuelle" via rajout de la clé dans le fichier authorized_keys
[root@shinken-poller ~]# su - shinken [-bash-4.1]$ cat .ssh/id_rsa.pub -> copiez la clé |
[root@linux-1 ~]# su - user-service-shinken [-bash-4.1]$ vi .ssh/authorized_keys -> collez la clé |
Test de connexion au serveur "linux-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@linux-1 -i .ssh/id_rsa.pub |
La connexion doit s'établir avec succès.
Dans chaque hôte héritant du modèle d'hôte "linux_by_ssh", "linux_by_ssh_advanced" ou "linux_by_ssh_extra",
| Donnée | Description | Valeur par défaut | Valeur par défaut à l'installation de shinken |
|---|---|---|---|
| SSH_KEY | Chemin vers la clé générée sur votre serveur hébergeant le démon Poller | $SSH_KEY$ | ~/.ssh/id_rsa |
| SSH_KEY_PASSPHRASE | Phrase secrète utilisé pour déverrouiller la clé privée de l'utilisateur (si celle-ci est protégée par une passphrase). La clé privée déverrouillée est ensuite utilisée pour authentifier l'utilisateur. | $SSH_KEY_PASSPHRASE$ | '' |
| SSH_PORT | Port de connexion SSH | $SSH_PORT$ | 22 |
| SSH_USER | Utilisateur pour la connexion SSH | $SSH_USER$ | shinken |
|
Par exemple, voici le paramétrage d'une connexion via clé SSH par défaut :
Par exemple, voici le paramétrage d'une connexion via Utilisateur/Mot de passe :
Entrée dans le répertoire extrait de l'archive et lancer le "uninstall.sh"
cd PACK__shinken__linux-by-ssh__VX.X.X-RCXXX__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.
=============================================
DELETE PACK [ shinken-linux_by_ssh ]
=============================================
-----------------------------
| COLLECTOR [ shinken-additional-packs-import ]
=> Deleting collector configuration file
- Path : /etc/shinken/sources/shinken-additional-packs-import.cfg
=> Deleting collector data folder
- Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
-----------------------------
| MONITORING DEFINITION:
=> Deleting pack globaldata folder
- Path : /etc/shinken/resource.d/shinken-additional-packs-import/
-----------------------------
| PROBES:
=> Deleting probes
- Path : /var/lib/shinken-user/libexec/shinken-additional-packs/shinken-linux_by_ssh |
À noter : Vous devrez retirer les éléments importés dans le Synchronizer ( modèles d'hôtes, checks, ... ) via les actions de masses. |
Ce script peut ne pas fonctionner correctement avec les versions d'OpenSSH antérieure à la 6, dû à une impossibilité de modifier les droits des fichiers et donc de faire fonctionner le script hors root lors des accès à la commande "lastb" à distance.
Sur la plupart des distributions encore à jour, les versions d'OpenSSH 6 ou supérieures se trouvent déjà dans les dépôts officiels, il vous suffit donc de réaliser votre commande de mise à jour, quelques exemples :
Centos 7 et Redhat 7, 8 :
yum update openssh |
AlmaLinux 8
dnf update openssh |
RockyLinux 8
dnf update openssh |
Debian et Ubuntu
apt-get upgrade openssh |
ArchLinux et autres
pacman -Syu openssh |
Certains checks requièrent un accès spécifique à des fichiers. Pour ce faire, nous vous mettons à disposition une série de commandes.
Cette série de commandes ne peut être effectuée qu'en ayant les droits root. Donc en étant connecté au compte root ou en ayant fait la commande "su" au préalable. |
Commandes à éxecuter :
sed -i -e "s/btmp 0600/btmp 0640/g" /usr/lib/tmpfiles.d/var.conf chmod 640 /var/log/btmp usermod -aG utmp user-service-shinken |
1. La commande sed -i -e "s/btmp 0600/btmp 0640/g" /usr/lib/tmpfiles.d/var.conf modifie les droits par défaut du fichier /var/log/btmp dans le fichier de configuration des fichiers temporaires.
2. La commande chmod 640 /var/log/btmp applique immédiatement les droits nécessaires sur le fichier.
3. La commande usermod -aG utmp user-service-shinken ajoute l'utilisateur user-service-shinken au groupe utmp, qui a la responsabilité des logs système.
Commandes à éxecuter :
sed -i -e "s/create 0600/create 0640/g" /etc/logrotate.conf chmod 640 /etc/ssh/sshd_config chown root:user-service-shinken /etc/ssh/sshd_config chown root:user-service-shinken /tmp chmod g+rwx /tmp |
1. La commande sed -i -e "s/create 0600/create 0640/g" /etc/logrotate.conf modifie les droits par défaut dans le fichier de configuration de logrotate.
2. La commande chmod 640 /etc/ssh/sshd_config applique immédiatement les droits nécessaires.
3. La commande chown root:user-service-shinken /etc/ssh/sshd_config modifie le groupe du fichier.
4. La commande chown root:user-service-shinken /tmp modifie le groupe du dossier /tmp.
5. La commande chmod g+rwx /tmp applique immédiatement les droits nécessaires au dossier /tmp pour le groupe user-service-shinken.
Commandes à éxecuter :
chown root:user-service-shinken /tmp chmod g+rwx /tmp |
1. La commande chown root:user-service-shinken /tmp modifie le groupe du dossier /tmp.
2. La commande chmod g+rwx /tmp applique immédiatement les droits nécessaires au dossier /tmp pour le groupe user-service-shinken.