Shinken est un framework open source de surveillance informatique et réseau écrit en python et compatible avec Nagios. Shinken peut être utilisé sur tous les systèmes d'exploitation pouvant exécuter des applications Python telles que Linux, Unix et Windows. Shinken a été écrit par Jean Gabes comme preuve de concept pour une nouvelle architecture Nagios, mais elle a été refusée par l'auteur de Nagios et est devenue un outil indépendant de surveillance du réseau et du système qui reste compatible avec Nagios.
Dans ce didacticiel, je vais vous montrer comment installer Shinken à partir de la source et ajouter un hôte Linux au système de surveillance. J'utiliserai Ubuntu 16.04 Xenial Xerus comme système d'exploitation pour le serveur Shinken et l'hôte surveillé.
Étape 1 - Installer le serveur Shinken
Shinken est un framework python, nous pouvons l'installer avec pip ou l'installer depuis la source. Dans cette étape, nous allons installer Shinken à partir de la source.
Certaines tâches doivent être terminées avant de commencer l'installation de Shinken.
Installez de nouveaux packages python et créez un utilisateur Linux avec le nom "shinken":
sudo apt-get install python-setuptools python-pip python-pycurl
useradd -m -s /bin/bash shinken
Téléchargez la source Shinken depuis le dépôt GitHub :
git clone https://github.com/naparuba/shinken.git
cd shinken/
Installez ensuite Shinken avec la commande ci-dessous :
git checkout 2.4.3
python setup.py install
Ensuite, pour de meilleurs résultats, nous devons installer 'python-cherrypy3' depuis le dépôt ubuntu :
sudo apt-get install python-cherrypy3
Maintenant que Shinken est installé, nous ajoutons ensuite Shinken pour démarrer au démarrage et le démarrer :
update-rc.d shinken defaults
systemctl start shinken
Étape 2 - Installer Shinken Webui2
Webui2 est l'interface Web de Shinken disponible sur shinken.io. Le moyen le plus simple d'installer Sshinken webui2 consiste à utiliser le shinken Commande CLI (qui doit être exécutée en tant qu'utilisateur Shinken).
Connectez-vous à l'utilisateur Shinken :
su - shinken
Initialiser le fichier de configuration shinken - La commande créera une nouvelle configuration .shinken.ini :
shinken --init
Et installez webui2 avec cette commande CLI shinken :
shinken install webui2
Webui2 est installé, mais nous devons installer MongoDB et un autre package python avec pip. Exécutez la commande ci-dessous en tant que root :
sudo apt-get install mongodb
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8
Ensuite, allez dans le répertoire shinken et ajoutez le nouveau module webui2 en éditant le fichier 'broker-master.cfg' :
cd /etc/shinken/brokers/
vim broker-master.cfg
Ajoutez une nouvelle option dans le module à la ligne 40 :
modules webui2
Enregistrez le fichier et quittez l'éditeur.
Allez maintenant dans le répertoire des contacts et modifiez le fichier 'admin.cfg' pour la configuration de l'administrateur.
cd /etc/shinken/contacts/
vim admin.cfg
Modifiez les valeurs indiquées ci-dessous :
contact_name admin # Username 'admin'
password yourpass # Pass 'mypass'
Enregistrez et quittez.
Étape 3 - Installer les plugins Nagios et les packages Shinken
Dans cette étape, nous allons installer les plugins Nagios et quelques modules Perl. Installez ensuite des packages shinken supplémentaires à partir de shinken.io pour effectuer la surveillance.
Installez les plugins Nagios et cpanminus nécessaires à la construction et à l'installation des modules Perl :
sudo apt-get install nagios-plugins* cpanminus
Installez ces modules Perl avec la commande cpanm :
cpanm Net::SNMP
cpanm Time::HiRes
cpanm DBI
Créez maintenant un nouveau lien pour le fichier utils.pm afin de modifier le répertoire et créez un nouveau répertoire pour Log_File_Health :
chmod u+s /usr/lib/nagios/plugins/check_icmp
ln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/
mkdir -p /var/log/rhosts/
touch /var/log/rhosts/remote-hosts.log
Ensuite, installez les packages shinken ssh et linux-snmp pour surveiller les sources SSH et SNMP depuis shinken.io :
su - shinken
shinken install ssh
shinken install linux-snmp
Étape 4 - Ajouter un nouvel hôte Linux/hôte-un
Nous allons ajouter un nouvel hôte Linux qui sera surveillé à l'aide d'un serveur Ubuntu 16.04 avec l'adresse IP 192.168.1.121 et le nom d'hôte 'host-one'.
Connectez-vous à l'hôte Linux :
ssh [email protected]
Installez les packages snmp et snmpd depuis le dépôt Ubuntu :
sudo apt-get install snmp snmpd
Ensuite, éditez le fichier de configuration 'snmpd.conf' avec vim :
vim /etc/snmp/snmpd.conf
Commentez la ligne 15 et décommentez la ligne 17 :
#agentAddress udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:161
Commentez les lignes 51 et 53, puis ajoutez une nouvelle configuration de ligne ci-dessous :
#rocommunity mypass default -V systemonly
#rocommunity6 mypass default -V systemonly
rocommunity mypass
Enregistrez et quittez.
Maintenant, démarrez le snmpd service avec la commande systemctl :
systemctl start snmpd
Allez sur le serveur shinken et définissez le nouvel hôte en créant un nouveau fichier dans le répertoire 'hosts'.
cd /etc/shinken/hosts/
vim host-one.cfg
Collez la configuration ci-dessous :
define host{
use generic-host,linux-snmp,ssh
contact_groups admins
host_name host-one
address 192.168.1.121
_SNMPCOMMUNITY mypass # SNMP Pass Config on snmpd.conf
}
Enregistrez et quittez.
Modifiez la configuration SNMP sur le serveur Shinken :
vim /etc/shinken/resource.d/snmp.cfg
Remplacez 'public' par 'mypass' - doit être le même mot de passe que vous avez utilisé dans le fichier de configuration snmpd sur le client host-one.
$SNMPCOMMUNITYREAD$=mypass
Enregistrez et quittez.
Redémarrez maintenant les deux serveurs - le serveur Shinken et l'hôte Linux surveillé :
reboot
Le nouvel hôte Linux a été ajouté avec succès au serveur Shinken.
Étape 5 - Accéder à Shinken Webui2
Visitez le Shinken webui2 sur le port 7677 (remplacez l'IP dans l'URL par votre IP):
http://192.168.1.120:7767
Connectez-vous avec l'utilisateur admin et votre mot de passe (celui que vous avez défini dans le fichier de configuration admin.cfg).
Tableau de bord Shinken dans Webui2.
Nos 2 serveurs sont surveillés avec Shinken.
Répertorier tous les services surveillés avec linux-snmp.
Statut de tous les hôtes et services.
Étape 6 - Problèmes courants avec Shinken
- Problèmes avec le serveur NTP
Lorsque vous obtenez cette erreur avec NTP.
TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server)
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )
Pour résoudre ce problème, installez ntp sur tous les hôtes Linux.
sudo apt-get install ntp ntpdate
Modifiez la configuration ntp :
vim /etc/ntp.conf
Commentez tous les pools et remplacez-les par :
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
pool 0.id.pool.ntp.org
pool 1.asia.pool.ntp.org
pool 0.asia.pool.ntp.org
Ensuite, ajoutez une nouvelle ligne à l'intérieur de restrict :
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict 192.168.1.120 #shinken server IP address
restrict ::1
REMARQUE :192.168.1.120 est l'adresse IP du serveur Shinken.
Enregistrez et quittez.
Démarrez ntp et vérifiez le tableau de bord Shinken :
ntpd
- Problème check_netint.pl introuvable
Téléchargez la source du dépôt github dans le répertoire shinken lib :
cd /var/lib/shinken/libexec/
wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.pl
chmod +x check_netint.pl
chown shinken:shinken check_netint.pl
- Problème d'utilisation du réseau
Il y a un message d'erreur :
ERROR : Unknown interface eth\d+
Vérifiez votre interface réseau et modifiez le modèle linux-snmp.
Sur mon serveur Ubuntu, l'interface réseau est 'enp0s8', pas eth0, donc j'ai eu cette erreur.
Modifiez les packs de modèles linux-snmp avec vim :
vim /etc/shinken/packs/linux-snmp/templates.cfg
Ajoutez l'interface réseau à la ligne 24 :
_NET_IFACES eth\d+|em\d+|enp0s8
Enregistrez et quittez.
Références
- http://shinken.readthedocs.io/en/latest/
- http://www.roblayton.com/search/label/monitoring