Manuel d'utilisation : La supervision sous Shinken
1. Université Mohammed V-Rabat
Ecole Nationale Supérieure
d’Informatique et d’Analyse des Systèmes
MANUEL D’UTILISATION
PROJET DE FIN DE LA 2EME ANNEE
Réalisé par :
- NIDABRAHIM Youssef
- KANGA Dominique Bernard
Encadré par :
- Pr. KARIM BAINA
Année universitaire 2016 - 2017
2. 2 La supervision sous Shinken
Table des matières
..........................................................................................................................................................3
Shinken ...........................................................................................................................................3
I. Installation de Shinken.........................................................................................................4
Installer Python .....................................................................................................................4
Installer PyCurl.......................................................................................................................4
Installer setuptools ...............................................................................................................4
Récupération des sources de Shinken............................................................................4
Installer Shinken....................................................................................................................5
Interface Webui2 ..................................................................................................................5
II. Configuration........................................................................................................................5
Configurer l’utilisateur admin............................................................................................6
Installer plugins .....................................................................................................................6
Ajouter un contact ...............................................................................................................7
Ajouter un host..................................................................................................................... 7
Ajouter un service ................................................................................................................8
Ajouter une commande .....................................................................................................8
Métrologie avec Graphite..........................................................................................................9
I. Installation de Graphite ......................................................................................................10
Installer les composants PostgreSQL .............................................................................10
Créer un utilisateur de base de données et une base de données .......................10
Configurez le carbone ....................................................................................................... 11
Installer et configurer Apache.......................................................................................... 11
II. Jonction à Shinken..............................................................................................................12
4. 4 La supervision sous Shinken
I. Installation de Shinken
Shinken est écrit en Python, il aura donc besoin d’une version de Python pour
fonctionner (version 2.6 ou supérieur et si possible 2.7 pour de meilleurs
performances). Il aura aussi besoin de python-pycurl et de setuptools.
Voici les différentes étapes pour ces dépendances
Installer Python
Pour installer Python, rien de plus simple :
sudo apt-get update
sudo apt-get install python
En général, sur Ubuntu Server, Python 2.7 est déjà installé par défaut. Il est possible
que sur d’autres distributions il ne soit pas disponible via les dépôts.
Installer PyCurl
Pour installer PyCurl, il suffit de l’installer via les paquets :
sudo apt-get install python-pycurl
Installer setuptools
Pour installer SetupTools, la démarche est la même :
sudo apt-get install python-setuptools
Voilà, vous avez normalement toutes les dépendances requises pour l’installation de
Shinken.
Récupération des sources de Shinken
Pour récupérer les sources de Shinken et surtout la dernière release, rendez-vous sur
le dépôt de Shinken et télécharger-la :
sudo apt-get install -y git
cd ~
git clone https://github.com/naparuba/shinken.git
cd shinken
git checkout 2.4.2
5. 5 La supervision sous Shinken
Voilà, votre dossier Shinken est prêt, vous allez pouvoir lancer l’installation.
Installer Shinken
Vous allez maintenant pouvoir lancer l’installation de Shinken avec Python. Mais pour
cela, il aura besoin d’un utilisateur shinken. Crééz-le avant de lancer le setup :
adduser shinken
Une fois cela fait, vous pouvez lancer la commande d’installation :
cd ~/shinken
sudo python setup.py install
Voilà, Shinken est prêt à fonctionner. Vous pouvez l’activer et le démarrer :
sudo update-rc.d shinken defaults
sudo service shinken start
Shinken est maintenant opérationnel et tous ses démons sont lancés.
Interface Webui2
Pour l’interface Webui, il va falloir installer d’autres modules. Tapez les commandes
suivantes pour les installer :
Shinken install webui
Shinken install auth-cfg-password
Shinken install sqlitedb
Une fois les modules installés, vous allez devoir indiquer à Shinken que vous voulez
les utiliser.
Ouvrez le fichier /etc/shinken/brokers/broker-master.cfg et trouvez la ligne non
commentée où il y a modules pour y ajouter webui.
Éditez ensuite le fichier /etc/shinken/modules/webui.cfg de la même manière pour y
ajouter auth-cfg-password et SQLitedb.
Votre interface webui est configurée. Si tous les démons de Shinken ont bien été
redémarrés, vous devriez voir la page suivante en vous rendant sur l’adresse :
http://ip_serveur:7767
II. Configuration
6. 6 La supervision sous Shinken
Configurer l’utilisateur admin
Vous pouvez aller changer le mot de passe par défaut du compte admin dans le
fichier /etc/shinken/contacts/admin.cfg :
vi /etc/shinken/contacts/admin.cfg
Modifier le champ password, on peut aussi modifier le nom avec contact_name.
Redémarrez les services Shinken pour prendre en compte la nouvelle configuration :
sudo service shinken restart
On va essayer d’installer tous les packs qui peuvent être utiles :
- linux-ssh : pour le check de machines linux en SSH
- check_mywebsite : pack pour le plugin check mywebsite
- http : pack pour check en http
- linux snmp : pack pour le check en snmp
Installer plugins
Cette configuration nous permet d’ajouter des services, hosts mais pour faire des
check il faut aussi installer des plugins :
sudo wget --no-check-certificate https://www.monitoring-
plugins.org/download/monitoring-plugins-2.1.1.tar.gz
sudo tar -xvf monitoring-plugins-2.1.1.tar.gz
sudo cd monitoring-plugins-2.1.1
sudo ./configure
sudo make install
On peut installer aussi les plugins faits pour Nagios :
sudo install nagios-plugins
Les plugins de Shinken se trouvent dans /var/lib/shinken/libexec et les plugins de
Nagios se trouvent /usr/lib/Nagios/Plugins. Le répertoire d’installation n’a pas de
grande importance car dans les configurations de Shinken on définit les répertoires
des plugins dans le fichier /etc/shinken/ressource.d/paths.cfg.
La configuration de Shinken se trouve dans le répertoire /etc/shinken et à chaque
démarrage Shinken lit tous les fichiers qui finissent avec l’extension .cfg qui se
7. 7 La supervision sous Shinken
trouvent dans ce répertoire ou dans les sous-répertoires de celui-ci. Le fichier
principal de la configuration est /etc/shinken/shinken.cfg. Après chaque changement
de la configuration il faut d’abord tester si la configuration est acceptée par Shinken
via la commande ci-dessous :
/usr/bin/shinken-arbiter –v –c /etc/shinken/shinken.cfg
Ajouter un contact
Un contact est utilisé pour les notifications et pour l’authentification de l’interface web
en cas de l’utilisation du module auth-cfg-password. Les fichiers de contacts se
trouvent dans /etc/shinken/contacts.
nano /etc/shinken/contacts/user.cfg
On ajoute :
define contact {
use generic-contact
contact-name user
email youssef.nidabrahim@gmail.com
page 0671397871
password 123456
is_admin 0
}
Ajouter un host
Le répertoire /etc/shinken/hosts est prévu pour les hôtes.
Créer un fichier <nom_hote>.cfg dans /etc/shinken/objects/host :
touch /etc/shinken/objects/host /host1.cfg
define hote {
use generic-host
alias hote server
contact_groups admins
host-name host1
address 10.23.18.212
}
8. 8 La supervision sous Shinken
Ajouter un service
Un service est lié à un hôte et il doit être déclaré via un fichier situé dans
/etc/shinken/services. Un service fait appel à une commande qui se trouve dans
/etc/shinken/commandes. À part les hôtes tous les éléments surveillés sont déclarés
en tant qu’un service. Chaque service est lié à un hôte via host_name.
Créer un fichier .cfg par exemple apache.cfg dans /etc/shinken/objects/services :
touch /etc/shinken/objects/services/apache.cfg
Ajouter :
define service {
use linux-ssh-service
host-name host1
service-description ApacheHTTP -Etat
check_command check_apache_stat !-p 443
}
Ajouter une commande
Les commandes se trouvent dans /etc/shinken/commandes et /etc/shinken/packs
pour les commandes des packs installés. Chaque élément surveillé est contrôlé par
une commande qui définit l’utilisation d’un plugin et les paramètres. Dans une
commande on doit définir le nom de la commande et la commande à exécuter.
define command {
command_name check_apache_stat
command_line $NAGIOSPLUGINSDIR$/check_apachestatus.pl -H
$HOSTADDRESS$ $ARG1$
}
10. 10 La supervision sous Shinken
I. Installation de Graphite
Graphite est composé de trois parties :
- Whisper : un moteur de base de données
- Carbon : serveur d’écoute qui s’occupe d’insérer les données en base
- Graphite-web : interface web en python Django
Mettons à jour notre index de paquetage local, puis installez les paquets nécessaires :
sudo apt-get update
sudo apt-get install graphite-web graphite-carbon
Pendant l'installation, on vous demandera si vous voulez que Carbon retire les
fichiers de la base de données si vous décidez de purger l'installation. Choisissez
"Non" ici afin que vous ne détruisiez pas vos statistiques.
Une fois l'installation terminée, Graphite sera installé. Nous devons cependant faire
une configuration supplémentaire pour tout faire et fonctionner.
Installer les composants PostgreSQL
Nous pouvons installer le logiciel de base de données et les paquets auxiliaires dont
nous avons besoin en tapant :
sudo apt-get install postgresql libpq-dev python-psycopg2
Cela installera le logiciel de base de données, ainsi que les bibliothèques Python que
Graphite utilisera pour se connecter et communiquer avec la base de données.
Créer un utilisateur de base de données et une base de données
sudo -u postgres psql
CREATE USER graphite WITH PASSWORD ' password ';
CREATE DATABASE graphite WITH OWNER graphite;
Lorsque vous avez terminé, nous pouvons sortir de la session PostgreSQL :
q
11. 11 La supervision sous Shinken
Nous pouvons synchroniser la base de données pour créer la structure correcte.
Vous pouvez le faire en tapant :
sudo graphite-manage syncdb
Configurez le carbone
Permettez au service du carbone de démarrer au démarrage en Modifiant la valeur
sur true :
sudo nano /etc/default/graphite-carbon
CARBON_CACHE_ENABLED=true
Enregistrez et fermez le fichier.
Ensuite, ouvrez le fichier de configuration Carbon :
sudo nano /etc/carbon/carbon.conf
Activez la rotation du journal en ajustant le réglage de cette directive sur true :
ENABLE_LOGROTATION = True
Enregistrez et fermez le fichier.
Copiez le fichier du répertoire Exemples de carbone dans notre répertoire de
configuration Carbon :
sudo cp /usr/share/doc/graphite-carbon/examples/storage-
aggregation.conf.example /etc/carbon/storage-aggregation.conf
Lorsque vous avez terminé, vous pouvez commencer le carbone en tapant:
sudo service carbon-cache start
Installer et configurer Apache
12. 12 La supervision sous Shinken
Pour utiliser l'interface Web, nous allons installer et configurer le serveur web
Apache. Graphite comprend des fichiers de configuration pour Apache, donc le choix
est assez simple. Installez les composants en tapant :
sudo apt-get install apache2 libapache2-mod-wsgi
Une fois l'installation terminée, nous devrions désactiver le fichier hôte virtuel par
défaut, car il est en conflit avec notre nouveau fichier :
sudo a2dissite 000-default
Ensuite, copiez le fichier hôte virtuel Graphite Apache dans le répertoire des sites
disponibles :
sudo cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-
available
Nous pouvons ensuite activer le fichier hôte virtuel en tapant :
sudo a2ensite apache2-graphite
Rechargez le service pour implémenter les modifications :
sudo service apache2 reload
Maintenant que nous avons tout configuré, nous pouvons vérifier l'interface Web.
Dans votre navigateur Web, visitez le nom de domaine ou l'adresse IP de votre
serveur:
Http: // nom_domain_IP
II. Jonction à Shinken
On installe le module Graphite depuis les dépôts Shinken :
shinken install ui-graphite
shinken install graphite
On ajoute le module graphite-ui à la WebUI :
13. 13 La supervision sous Shinken
vi /etc/shinken/modules/webui.cfg
et ajouter :
modules auth-cfg-password,SQLitedb,ui-graphite
On ajoute le module graphite au broker :
vi /etc/shinken/brokers/broker-master.cfg
et ajouter :
modules webui,graphite
On configure le module graphite :
vi /etc/shinken/modules/graphite.cfg
define module {
module_name Graphite-Perfdata
module_type Graphite-Perfdata
host localhost
port 2003
}
On configure l’accès à la webui graphite sous /etc/shinken/modules/ui-graphite.cfg
define module {
Module_name graphite-ui
Module_type graphite-webui
Uri http://localhost:8080
Template_path /var/lib/shinken/share/templates/graphite/
}
On rédemarre tout en tant que root.
systemctl start httpd
/opt/graphite/bin/carbon-cache.py start
On relance Shinken pour prendre en compte tout cela.
/etc/init.d/shinken restart