Installation et configuration d’Observium

Bonjour à tous, dans cet article nous allons voir comment installer Observium et comment le configurer.

Tout d’abord, qu’est-ce que Observium ?

Observium est un logiciel de supervision réseau permettant de monitorer son infrastructure en partant du serveur (ou client) avec sa consommation (CPU, Disques…) jusqu’au débit de chaque des ports d’un switch.

Observium utilise la remonté d’information via le protocole SNMP.

Pour la mise place d’Observium, nous utiliserons la distribution CentOS7 (serveur et client).

Installation

Le serveur

Tout d’abord, il faut ajouter les répos REMI, OpenNMS et EPEL pour avoir les bons paquets (avec la bonne version) :

Il faut installer les packages yum-utils :

Nous utiliserons la version PHP 7.2 pour le serveur web, donc il faut activer le repo de REMI :

Puis il suffit de faire une mise à jour du système :

Nous pouvons désormais installer les paquets pour le bon fonctionnement dObservium (HTTPD, PHP, SNMP(pour la remonté d’information)…)

NB : Nous installons également rdd-tool car nous allons devoir l’utiliser pour créer des graphiques et sauvegarder les données critiques.

Puis nous devons créer le répertoire où sera contenu la configuration d’Observium et télécharger le package :

Nous devons maintenant configurer la base de donnée : MariaDB

NB : Pour la première utilisation de MySQL, vous pouvez modifier le mot de passe root :

Nous allons créer la base de donnée « observium » et ajouter l’utilisateur « observium » en tant administrateur de la BDD.

NB : N’oubliez pas de modifier le mot de passe du compte utilisateur « observium » pour plus de sécurité.

Il faut activer le service mariadb pour qu’il se lance automatiquement au démarrage du serveur, et on le lance manuellement :

On initialise le schéma de la base de donnée avec le script fournis :

Nous allons récupérer l’emplacement de l’outil « fping » pour que l’application puisse l’utiliser : /usr/sbin/fping.

Au tour du fichier de configuration d’Observium à modifier, n’oubliez pas de créer un backup du fichier avant de le modifier :

NB : Veuillez modifier la communauté SNMP public pour augmenter le niveau de sécurité

Par défaut sur CentOS (sur RedHat plus particulièrement), SELinux est activé. SELinux est un module qui permet de définir une politique d’accès obligatoire. Il va falloir donc dans notre cas le désactiver complètement pour éviter des problèmes au niveau du module. Nous verrons dans un prochain article comment fonctionne SELinux.

Il faut maintenant autoriser le port 80 (HTTP) pour que les clients puissent accéder à la page web du serveur (et 161 pour le SNMP) :

Il faut maintenant créer le répertoire qui contiendra les données des différents équipements :

Et on donne à l’utilisateur et au groupe apache la propriété du dossier :

Nous allons ajouter un virtualhost dans la configuration d’apache :

Il faut désormais créer le répertoire qui contiendra les logs de l’application (et attribuer apache en tant que propriétaire du dossier)

Enfin, nous créons un utilisateur (administrateur) pour l’accès à l’interface graphique. Nous utilisons le « level » 10 pour lui donner les droits adminitrateur :

Vous devez relancer le service httpd et l’activer au démarrage du serveur

Vous pouvez désormais vous rendre sur la page d’observium via l’adresse IP du serveur : pour ma part ca sera http://observium.lab.local

Le client

Tout d’abord, vous devez installer le paquet SNMP pour la communication avec le serveur :

On sauvegarde le fichier de configuration d’origine de SNMP pour y placer notre configuration :

#sec.name source community
com2sec notConfigUser default Lab2Snmp

#groupName securityModel securityName
group notConfigGroup v2c notConfigUser

#name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1

#group context sec.model sec.level prefix read write notif
access notConfigGroup «  » any noauth exact systemview none none

syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root (configure /etc/snmp/snmp.local.conf)

#We do not want annoying « Connection from UDP:  » messages in syslog.
#If the following option is commented out, snmpd will print each incoming connection, which can be useful for debugging.

dontLogTCPWrappersConnects yes

NB : L’option « v2c » permet de définir le SNMP Version 2.
Lab2Snmp équivaut au nom de votre communauté privée.

Puis on active le service au démarrage et on le lance :

On autorise le flux SNMP à circuler :

Pour tester si le SNMP est fonctionnel au niveau du client :

Votre client est désormais opérationnel pour communiquer avec le serveur.

Configuration

Rendez-vous sur le serveur Observium. Pour ajouter un hôte, il suffit de saisir la commande suivante :

Pour commencer à récuperer les informaitons concernant le nouvel hôte :

Enfin, il est possible d’automatiser la remontée d’information via le cron du serveur :

# Découverte de tous les hôtes tous les 6 heures (mise à jour du schéma de la bdd) #
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
# Vérification des nouveaux hôtes tous les 5 minutes #
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
# Tous les 5 minutes, demande au poller de récupérer les informations de l’hôte #
*/5 * * * * root /opt/observium/poller-wrapper.py >> /dev/null 2>&1
# Tous les jours, récupération du syslog, eventlog et log des hôtes #
2 1 * * * root /opt/observium/housekeeping.php -ysel
# Tous les jours, récupération des informations concernant rrd, ports… #
2 2 * * * root /opt/observium/housekeeping.php -yrptb

Vous devez relancer crond :

Vous pouvez désormais vous connecter sur l’interface d’observium et vérifier que votre hôte a bien été ajouté :

Et après quelques jours de remontés de données, vous obtenez des résultats (par exemple la disponibilité de la machine) :

Si vous souhaitez avoir plus d’informations, vous pouvez également ajouter Collectd sur le serveur :

Et configurer le fichier de collectd en décommentant les lignes suivantes :

NB : Vous pouvez ajouter autant de module que vous souhaitez monitorer.

On ajoute l’entrée de collectd au firewall :

Et on active et lance le service :

On configure également collectd au niveau client :

NB : La balise server est à configurer en fonction de l’IP et du port du serveur Observium.

On ajoute collectd au firewall du client :

Et on active et démarre le service :

Après quelques minutes, le dossier /var/lib/collectd/rrd/ doit contenir un dossier par client avec à l’intérieur toutes les données des différents plugins que vous avez configuré :

Et vous pouvez vérifier sur l’interface web, l’onglet « collectd » qui est apparu avec les différentes données :

Vous pouvez ajouter des machines clients, serveurs, des switchs, des routeurs… et les répertorier dans Observium.

Pour pouvez également ajouter des alertes pour être informer d’une latence élevée d’une machine par exemple.

J’espère que l’article vous aura plu.

N’hésitez pas à commenter si vous avez la moindre remarque.

A bientôt,

Fabio Pace

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.