# Installation de GLPI sur Centos
{{INLINETOC}}
GLPI (Gestionnaire Libre de Parc Informatique)2 est un logiciel libre de gestion des services informatiques (ITSM) et de gestion des services d'assistance (issue tracking system et ServiceDesk). Il dispose également d'un système de plugins, qui permettent l'intégration de :
- la supervison Shinken qui consiste en une refonte complète du cœur de Nagios en Python (plugin monitoring)
- l'inventaire automatisé avec FusionInventory
Le serveur mis en oeuvre embarque:
- GLPI et son frontend http://xx.xx.xxx.xx/glpi
- SHINKEN et son frontend http://xx.xx.xxx.xx:7767
- SNMPTT
- FUSION INVENTORY (avec un agent)
- Collectd et son frontend
.-------------------------------------------------------------------------------------------. .----------------------------.
| Machine Virtuelle glpi | | |
| | | Network x.x.x.x |
| .------------------------------------------. .-------------------------------------. | | |
| | Frontal web GLPI | | Frontal web WEBUI2 | | | |
| .------------------------------------------. .-------------------------------------. | | |
| ^ ^ ^ | | |
| | | | .-----------------------. | | .--------------------. |
| | : : | cGRE | (6)traps snmp| Machine X | |
| | | | | SNMPTTD |<-------------| | |
| | | | .-----+-----------------. | | | | |
| | | | | | | | | |
| | | | | (6) traps | | | | |
| | v v v | | | | |
| | .--------+-----------------. .------------+-------------+---------. | | | | |
| | | | | | |receiver | NRPE | | | | | |
| | | | | | +-------------+ C++ | (5) | | | | |
| | | GLPI | | (6) | | poller | C |<-=----------->| | |
| | | | |<---------| +-------------+ shell | | | .--------------------. |
| | | | | | | broker | ... | | | |
| | | | | (5) | +-------------+ | | | .--------------------. |
| | | | Monitoring +--------->| SHINKEN | reactionner | | (5) | | | Machine Y | |
| | | | | | +-------------+ |<-=----------->| | |
| | | | | (5) | | scheduler | | (5) | | | | |
| | | | |<---------| +-------------+ |<-=---------' | | |
| | | | | | | arbiter | | | | | | | |
| | | +-----------------+ +------------+-------------.---------. | | | | | |
| | | | | (1) | c1AB | | | | | | |
| | | | |--------->| |(1) découverte | | | | | |
| | | | | (2) | |------------------->| | | | |
| | | | |<---------| |(2) serveur x,y,z| | | .--------------------. |
| | | | FusionInventory | | |<-------------------| | ^ |(4) |
| | | | | (3) | | | | | .-----------|----|---. |
| | | | |--------->| | | | '->| Machine Z |(3) v | |
| | | | | (4) | |(3)inventaireSNMP| | | .---------------. | |
| | | | |<---------| FUSION INVENTORY (D) |------------------------>| | c1FF | | |
| | | | | | |(4)service a,b,c | | | |Agent | | |
| | .--------+-----------------. .--------------------------.<---------------------------|FusionInventory| | |
| | | ^ | | | .---------------. | |
| .---------------------------------. |(3) | (4) | | | | |
| | FrontEnd Collectd | v | | | | | |
| .---------------------------------. .------------------------------. (3) | | | | |
| | | |-------------------->| | |
| .---------------------------------. | Agent Fusion inventory | (4) | | | | |
| | Collectd | | |<--------------------| | |
| .---------------------------------. .------------------------------. | | .--------------------. |
| | | |
+-------------------------------------------------------------------------------------------. .----------------------------+
## Installation de GLPI
### Installation des prérequis
Apache, MYSQL et PHP sont requis
Certains prérequis ne sont disponibles que sur les dépôts EPEL. Vérifier la présence de ceux-ci par yum update
Si EPEL n’apparaît pas activer les dépôts d'EPEL
Normalement MySQLet apache sont installés par défaut mais il faut installer PHP 5 de EPEL
```
yum install php php-gd php-mysql php-imap php-ldap php-soap
```
### Préparer la base de donnée
Se connecter avec l'utilisateur root
```
mysql -u root
```
Créer la base de donnée glpi
```
MariaDB [(none)]>CREATE DATABASE glpi;
MariaDB [(none)]> CREATE USER 'glpi'@'localhost';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost' IDENTIFIED BY 'your_password';
MariaDB [(none)]>FLUSH PRIVILEGES;\\ MariaDB [glpi]>exit
```
### Mise en place de GLPI
Récupérer l'archive de GLPI
```
wget https://github.com/glpi-project/glpi/releases/download/0.90.5/glpi-0.90.5.tar.gz
```
Décompresser l'archive et déplacer le dossier glpi à la racine du serveur http
```
tar xzf glpi-0.90.5.tar.gz
mv glpi /var/www/html/
chown apache :apache ∕var/www/html/glpi/ -R
```
### Installation des plugins dans GLPI
Récupérer le plugins compatibles avec la version de GLPI
* Sur http://plugins.glpi-project.org/#/ Pour les versions récentes de GLPI
* Sur https://forge.glpi-project.org/ pour les autres versions
Liste des plugins compatibles avec glpi 0.9.1.0
```
- glpi-accounts-2.1.1.tar.gz
- glpi-appliances-2.2.tar.gz
- glpi-archires-2.3.tar.gz
- glpi-datainjection-2.4.1.tar.gz
- glpi-racks-1.6.2.tar.gz
- glpi-shellcommands-1.9.1.tar.gz
```
Modifier les attributs du répertoire plugins
`chown apache :apache /var/www/html/glpi/plugins/ -R`
Dans le menu `Configuration => Plugins `on doit voir apparaître les nouveaux plugins, clliquer sur les boutons Installer
Si le plugin n'est pas compatible ou si un complément est nécessaire à l'installation du plugin, un message apparaît à la place du bouton "Installer"
Après l'installation cliquer sur le bouton "Activer".
Les plugins sont opérationnels
### Vérifier l'installation
Une fois l'installation terminée il est possible d'utiliser GLPI
Sur un navigateur à l'adresse http://addresse-ip-server/glpi
## Installation de SHINKEN
### Installer les dépendances
Python, python-curl , python-setuptools et MySQL-pyhton sont requis :
```
yum install python python-curl python-setuptools MySQL-python python-pip redhat-lsb-core
```
L'installation de mongodb est recommandée pour l'enregistrement des préférences utilistaeurs :\\ \\ `yum install mongodb pnp4nagios`\\ `pip install pymongo>=3.0.3`
### Récupérer les sources de SHINKEN
```
cd ~
git clone https://github.com/naparuba/shinken.git
cd shinken
# Vous pouvez voir les différentes release en tapant "git tag -l"
git checkout 2.4.2
```
### Installer SHINKEN
Créer l'utilisateur shinken
```
adduser shinken
```
Lancer l'installation
```
cd ~/shinken
sudo python setup.py install
```
Activer et lancer le démon shinken
```
sudo update-rc.d shinken defaults
sudo service shinken start
```
### Installer l'interface Web
Dans le répertoire home de l'utilisateur shinken renseigner le proxy dans ~/.shinken.ini
```
[root] # su shinken\\ [shinken] $ vi ~/.shinken.ini
[shinken.io]
# options for connection to the shinken.io website.
# proxy: curl style, should look as http://user:password@server:3128
# api_key: useful for publishing packages or earn xp after each install. create an account at http://shinken.io and go to http://shinken.io/~
proxy = http://proxy.infra.dgfip:3128
```
Se connecter en tant qu'utilisateur shinken :
```
su -l shinken
```
Et initialiser la CLI de Shinken pour générer le fichier .ini contenant les chemins vers les différents répertoires de configuration :
```
shinken --init
```
Toutes les commandes shinken doivent être lancées en tant qu'utilisateur shinken
En tant qu'utilisateur Shinken, installer Webui2 :
```
shinken install webui2
exit
```
Installer les dépendances
```
sudo pip install pymongo>=3.0.3 requests arrow bottle==0.12.8
```
Indiquer à Shinken le module webui2 dans le broker (vi /etc/shinken/brokers/broker-master.cfg) :
```
[...]
modules webui2
[...]
```
Une fois toutes ces manipulations effectuées, on peut changer le mot de passe par défaut du compte admin dans le fichier /etc/shinken/contacts/admin.cfg :
```
define contact{
use generic-contact
contact_name admin
email your@email.com
pager 0600000000 ; contact phone number
password your_password
is_admin 1
expert 1
}
```
Redémarrer SHINKEN
```
service shinken check
service shinken restart
service httpd.restart
```
### Installer les plugins Nagios
A ce stade SHINKEN n'affichera rien car il lui manque les plugins NAGIOS.
Récupérer les plugins
```
wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
tar -xzvf nagios-plugins-2.1.1.tar.gz
```
Avant de passer à l'étape suivante installer le compilateur gcc \\ \\ `yum install gcc`
Installer les plugins
```
cd nagios-plugins-2.1.1/
./configure --with-nagios-user=shinken --with-nagios-group=shinken
make install
```
Vérifier l'installation des plugins, les plugins doivent figurer dans le répertoire /usr/local/nagios/libexec
```
# ls /usr/local/nagios/libexec
check_apt
check_file_age
check_log
check_oracle
check_tcp
check_breeze
check_flexlm
check_mailq
check_overcr
check_time
check_by_ssh
check_ftp
check_mrtg
check_ping
...
check_swap
```
## Intégration de SHINKEN dans GLPI
### Pré requis :
- Un serveur GLPI
- Un serveur Shinken
### Récupérer les plugins
Récupérer les plugins compatible **glpi\_monitoring** et **glpi-webservices** compatibles avec la version de GLPI
```
wget https://github.com/ddurieux/glpi_monitoring/releases/download/0.90%2B1.0/glpi_monitoring_0.90.1.0.tar.gz
tar xzf glpi_monitoring_0.90.1.0.tar.gz
wget https://forge.glpi-project.org/attachments/download/2099/glpi-webservices-1.6.0.tar.gz
tar xzf glpi-webservices-1.6.0.tar.gz |
```
### Installer et activer les plugins dans GLPI
Dans le menu Configuration => Plugins installer puis activer les plugins Monitoring et Web services.
Il est possible que le module Services Web affiche un message : Installation PHP incorrecte. Nécessite le module xxxx il convient d'ajouter les extensions requises. par exemple xmlrpc :\\ \\ `yum install -y php-xmlrpc`\\ \\ `service apache2 restart`\\ \\ Rafraichir la page, pour poursuivre l'installation.
Cliquer sur les boutons Installer de chaque plugin et ensuite sur le bouton Activer.
### Ajouter les utilisateurs nécessaires dans GLPI
* Pour GLPI: aller dans Administration => Utilisateurs et ajoutez un compte shinken.
* Pour MySQL: Définir le nouvel utilisateur en root
```
mysql -u root -p
use glpi ;
GRANT select,update ON glpi_plugin_monitoring_services TO shinkenbroker IDENTIFIED BY 'shinken';
GRANT insert ON glpi_plugin_monitoring_serviceevents TO shinkenbroker;
GRANT select,update ON glpi_plugin_monitoring_servicescatalogs TO shinkenbroker;
exit ;
```
### Configurer Web Services
Sur l'interface GLPI aller dans Configuration => Webservices, ajouter un service avec les paramètres suivants :
```
- Nom : Shinken
- Services actifs : Oui
- Activez la compression : Non (Pas testé cette fonctionnalité jusqu'à présent)
- Tracer les connexions : Non (activez le si vous voulez garder une trace des connexions)
- Debug : Non (Activez-le en cas de debugging)
- Motif SQL des services : .*
- Plage d'adresse IPv4 : mettez l'adresse de votre serveur Shinken dans les 2 cases.
- Adresse IPv6 : au cas où vous avez l'IPv6 d'activée.
- Identifiant utilisateur : laissez vide dans ce cas.
- Mot de passe : laissez vide dans ce cas.
```
Puis cliquer sur le bouton Ajouter pour valider.
### Installer les modules Shinken
L'installation doit se faire avec l'utilisateur shinken créé précédemment.
```
su -l shinken
shinken install import-glpi
shinken install glpidb
shinken install ws-arbiter
exit
```
### Configuration des modules SHINKEN
Editer et adapater le fichier /etc/shinken/modules/import-glpi.cfg :
```
define module {
module_name import-glpi
module_type import-glpi
# L'URI de Web service pour GLPI\\ uri http://ip_serveur/glpi/plugins/webservices/xmlrpc.php
# Si vous avez un nom de domaine, faites pointer sur la bonne adresse :
# uri http://domaine.com/plugins/webservices/xmlrpc.php
# Les identifiants que vous avez créés dans GLPI juste avant
login_name shinken
login_password shinken
}
```
Editer et adpater le fichier /etc/shinken/modules/glpidb.cfg
```
define module {
module_name glpidb
module_type glpidb
host ip_serveur # Le nom du serveur GLPI ou son IP
port 3306
database glpi # Le nom de la base GLPI
user shinkenbroker # L'utilisateur créé dans MySQL
password shinken # le mot de passe de l'utilisateur
[...]
}
```
Ajouter dans le fichier /etc/shinken/brokers/broker-master.cfg les modules webui2 et glpidb
```
[...]
modules webui2,glpidb
[...]
```
Editer et adapter le fichier /etc/shinken/arbiters/arbiter-master.cfg
```
[...]
address 0.0.0.0 # Changez localhost en 0.0.0.0 affichera l'Etat du système dans GLPI.
modules import-glpi,ws-arbiter
[...]
```
Redémarrer SHINKEN et APACHE
```
service shinken restart
service httpd restart
```
Si rien n'apparait dans le menu **Plugins>>Monitoring** vérifier dans le menu **Administration>>Entités>>Profils>>Super-Admin>>monitoring** que tout est coché\\ \\ Si les lignes **redémarrer** et **Recharger** n'apparaissent pas, aller dans le menu "Etiquette" du plugin monitoring et vérifier l'adresse du serveur shinken dans **etiquette {1}**
## Intégration de FUSION-IVENTORY dans GLPI
### Prérequis
SNMP et Nmap doivent être installés :
```
yum install net-snmp perl-Net-SNMPl net-snmp-utils
```
### Récupérer le plugins compatibles avec la version de GLPI
```
wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi090%2B1.0/fusioninventory-for-glpi_0.90.1.0.tar.gz
tar xzf fusioninventory-for-glpi_0.90.1.0.tar.gz
```
### Installer et activer le plugin dans GLPI
Dans le menu Configuration => Plugins Installer puis activer le nouveau plugin .
### Installer l'agent fusioninventory
L'agent fusioinventory est un agent générique pouvant effectuer un certain nombre d'actions, appelées tâches, selon son propre plan d'exécution, ou au nom d'un serveur GLPI avec fusioninventory plugin, agissant comme un point de contrôle.
Les tâches suivantes sont disponibles:
- Inventaire local découverte du réseau
- Inventaire réseau
- Esx inventaire
- Réveil sur lan
- Déploiement logiciel
Installer l'agent fusioninventory avec la commande suivante:
```
yum install fusioninventory-agent fusioninventory-agent-task-inventory
```
Configurer le fichier agent.cfg
Renseigner l'adresse du serveur dans le fichier `/etc/fusioninventory/agent.cfg`:
```
# send tasks results to a FusionInventory for GLPI server
server = http://xx.xx.xxx.xx:8080/glpi/plugins/fusioninventory/
```
Exécuter l'agent fusioninventory
```
fusioninventory-agent
```
Normalement l'agent retourne les infos suivantes
```
[info] sending prolog request to server server0
[info] running task ESX
[info] ESX support disabled server side.
[info] running task Inventory
[info] running task Collect
[info] running task Deploy|
```
Le plugin FusionInventory utilise le scheduller de GLPI pour dérouler ses propres actions automatiques telles que le task-scheduler pour préparer les tâches.\\ C'est pourquoi, il faut ajouter une tâche dans la crontab du serveur.\\ \\ `crontab -u apache -e`\\ ` * * * * * /usr/bin/php /var/www/html/glpi/front/cron.php &>/dev/null`
Editer le fichier `/etc/sysconfig/fusioninventory-agent`, pour y faire figurer au minimum les lignes suivantes :
```
OCSMODE[0]=daemon
OCSSERVER[0]=http/xx.xx.xxx.xx:8080/glpi/plugins/fusioninventory/
```
Démarrer le démon
```
service fusioninventory-agent start
```
Contrôler le démarrage du démon sur le port 62354
Modifier les droits de l'utilisateur Plugin\_Fusioninventory
L'utilisateur Plugin_Fusioniventory est créé avec le profil par défaut Self-service or celui-ci ne permet pas de gérer le plugin.\\ \\ Il faut donc changer le profil de l'utilisateur pour lui donner les bons droits.
Modifier le profil de l'entité Root entitity :
- Dans **Administration>>Utilisateurs** cliquer sur l'utilisateur **Plugin\_Fusioninventory**
- Dans profils sélectionner le profil **Super Admin** puis Cliquer sur Ajouter
- Sélectionner l'entité avec le profil **Self service** puis **Action>>Supprimer définitivement**
Le plugin est maintenant configuré et disponible
## Intégration des TRAPs SNMP
SNMPTT - SNMP Trap Translator - (traducteur des traps SNMP) est un logiciel permettant de capturer et de traduire de manière humainement compréhensible les messages trap remontés par les agents SNMP.
Ecrit en Perl, ce logiciel s'interface avec le daemon snmptrapd de la suite de logiciel Net-SNMP.
### Description du service
Le processus de traitement des TRAPs SNMP dans un serveur NAGIOS utiliset NET-SNMP et SNMPTT:
* (1) **SNMPTRAPD** est appelé via le gestionnaire de traps défini dans le fichier de configuration `snmptrapd.conf` défini dans la section «Configuration et exécution du démon snmptrapd».
* (2) Ce gestionnaire de traps appelle le script `/usr/sbin/snmptthandler`.
* (3) Le script lit le trap, puis l'écrit dans le répertoire spool défini dans la directive **spool\_directory** défini dans le fichier de configuration `snmptt.ini`. Le script se termine alors.
* (4) De là, **SNMPTT** prend le relais. Il lit le trap dans le fichier spool et recherche une correspondance (5) dans ses définitions de trap.
* (6) S'il trouve une correspondance, il exécute l'instruction EXEC dans la définition d'interruption correspondante.
* (7) Cette instruction EXEC envoie le résultat du contrôle passif au serveur Shinken en utilisant le script **submit\_check\_result**.
* (8) Le démon se met alors en veille pendant la période spécifiée dans la directive sleep du fichier `snmptt.ini` et vérifie dans le répertoire spool des traps supplémentaires; s'il trouve des correspondances, il les traite et envoie les résultats de la vérification à Shiken.
.--------------------------------------------------------.
| Sf034_A5500_013SNS1 |
.--------+-----------------------------------------------.
|
|(1)
|
.------------------+
| TRAP SNMP |
| .----.
.----------------|[yn]|
| .----.
|
v
.-----+---------+----------------------------------------.
| | udp 162 | xx.xx.xxx.xx |
| .--+------. .---------------------. |
| | | | |
| | | SHINKEN | |
| | .-----+---------------. |
| | | |
| | | (8) |
| | v |
| | .---------------------. |
| | |[d] | |
| | | shinken.cmd | |
| | .---------------------. |
| | ^ |
| .------------------. | (7) |
| | TRAP SNMP | .-----+---------------. |
| | .----. | submit_check_result | |
| .----------------|[yn]| | | |
| | .----. .---------------------. |
| | ^ |
| | | |
| | (2) .---. |
| | |[d]| |
| | | | |
| | .---. |
| v |(6) |
| .-------------------. .-------------------------. |
| | snmpttrapd | | snmptt | |
| .-------------------. .-------------------------. |
| | | |
| | '--------------|-----------' |
| | | | | |
| | | | (5) | |
| | | .----. v | |
| .------------------. | |[yn]|----------------. | |
| | TRAP SNMP | | .----. | | |
| | .----. | | TRAP SNMP | | |
| .----------------|[yn]| | .------------------. | |
| | .----. | ^ | |
| | (3) | | /var/spool/snmptt/ | |
| | '-----|--------------------' |
| v | (4) |
| .-------------------------------+--------------------. |
| | snmptthandler | |
| .----------------------------------------------------. |
| |
.--------------------------------------------------------.
[yn]: {"a2s:type":"diamond","a2s:delref":true}
[d]: {"a2s:type":"document","a2s:delref":true}
Le serveur Shinken doit avoir des objets hôte définis pour chaque hôte qui génère des traps SNMP. En outre, il faut définir des objets de service pour que ces hôtes reçoivent les résultats de la vérification de service. Il faut les configurer pour recevoir des résultats de contrôle passifs et en tant que services volatils.
### Installation des packages Net-SNMP
Le package Net-SNMP est disponible sous la forme d'une série de packages installables sur de nombreuses distributions. Installer les packages requis sont appelés net-snmp, net-snmp-libs et net-snmp-utils.
```
yum install net-snmp net-snmp-libs net-snmp-utils net-snmp-perl perl-Net-SNMP net-snmp-devel
```
### Configuration et exécution du démon snmptrapd
Editer le fichier `/etc/sysconfig/snmptrapd` pour y faire figurer les options suivantes:
```
OPTIONS="-t -On -Lsd -p /var/run/snmptrapd.pid"
```
Modifier le fichier `/etc/snmp/snmptrapd.conf` ainsi:
```
# disableAuthorization yes
# donotlogtraps yes
createUser -e 0x800063A280943FC2D286F100000001 o145
authUser log,execute,net o145 noauth
traphandle default /usr/sbin/snmptthandler
```
Le trigger défini dans le commutateur comware nécessitant l'utilisant de SNMPv3, il faut définir le security level noAuthnoPriv:\\ \\ - l'utilisateur déclaré ici est le owner de la TRAP générée dans le commutateur\\ - l'engineID est celui du commutateur sur lequel est généré la TRAP
### Installation de SNMPTT (SNMP Trap Translator)
le service SNMPTT dépend de **perl-config-inifiles** (module de lecture des fichiers de configuration de style .ini), ce module doit être installé:
```
yum install perl-config-inifiles
```
Télécharger l'outil SNMPTT de Sourceforge à http://snmptt.sourceforge.net/.
```
wget https://sourceforge.net/projects/snmptt/files/snmptt/snmptt_1.4.2/snmptt_1.4.2.tgz/download -O snmptt_1.4.2.tgz
tar -zxvf snmptt_1.4.2.tgz
```
Le package SNMPTT n'a pas de script d'installation, donc un certain nombre d'étapes d'installation manuelles doivent avoir lieu:
* copier les binaires SNMPTT dans un répertoire `/usr/sbin/` et les rendre exécutables.
```
cp snmptt snmptthandler /usr/sbin/
chmod +x /usr/sbin/snmptt /usr/sbin/snmptthandler
```
* copier le fichier de configuration SNMPTT, **snmptt.ini**, dans le répertoire `/etc/snmp` et l'utilitaire **snmpttconvertmib**
```
cp snmptt.ini /etc/snmp/
cp snmpttconvertmib /usr/sbin/
```
* Créer l'utilisateur et le groupe nécessaires pour exécuter le démon SNMPTT.
```
groupadd snmptt
adduser -g snmptt snmptt
chown snmptt:snmptt /etc/snmp/snmptt.ini
```
* créer le répertoire de spool `/var/spool/snmptt` pour contenir les traps entrantes et le répertoire pour les logs `/var/log/snmptt` (Il doivent appartenir à l'utilisateur et au groupe qui exécuteront SNMPTT.
```
mkdir -pv /var/log/snmptt
mkdir -pv /var/spool/snmptt
chown snmptt:snmptt /var/spool/snmptt
```
* copier le script d'initialisation fourni avec le package, pour l'ajouter au processus de démarrage.
```
cp snmptt-init.d /etc/init.d/snmptt
```
Pour démarrer/arrêter/recharger, on peut faire avec ..
```
/etc/init.d/snmptt start/stop/reload
```
### Configuration de SNMPTT
Cette étape consiste à configurer le fichier `/etc/snmp/snmptt.ini`. Le fichier contient un assez grand nombre de directives, mais il faut s'occuper en priorité de celles qui concernent le processus de traduction et de transmission des traps:
```
mode = daemon
daemon_fork = 1
daemon_uid = snmptt
spool_directory = /var/spool/snmptt/
sleep = 5
dns_enable = 1
strip_domain = 1
log_enable = 1
syslog_enable = 0
exec_enable = 1
snmptt_conf_files = <
/etc/snmp/snmptt.conf
END
```
Le fichier d'exemple snmptt.ini contenu dans le package SNMPTT contient des explications détaillées sur toutes les directives et options que l'on peut spécifier.
Si on active la résolution DNS, ajouter tous les noms d'hôte qui doivent être résolus dans le fichier local /etc/hosts sur le serveur hôte. Cela empêche le serveur DNS d'être un goulot d'étranglement ou d'empêcher SNMPTT de fonctionner si le serveur DNS n'est pas disponible.
### Compilation de la MIB DISMAN-EVENT-MIB
Sur le switch fédérateur **Sf034\_A5500\_013SNS1** un trigger a été programmé pour surveillé l'objet **ipCidrRouteDest - 1.3.6.1.2.1.4.24.4.1.1**. Comme indiqué dans [[reseau:hpe-trigger-snmp-traps]], il faut utiliser le MIB DISMAN-EVENT-MIB pour récupérer les traps envoyés. On doit donc compiler la MIB qui gère cet objet pour récupérer les traps produites par celui-ci.
Télécharger la MIB DISMAN-EVENT-MIB sur le site http://www.net-snmp.org/docs/mibs/dismanEventMIB.html
Compiler la MIB en utilisant la commande `snmpttconvertmib`:
```
snmpttconvertmib --in=DISMAN-EVENT-MIB.txt --out=/etc/snmp/snmptt.conf --exec='/var/lib/shinken/libexec/eventhandlers/submit_check_result glpi2012 snmp-traps 1'
```
Arguments:
* **glpi2012** = nom court de l'hôte auquel le service est associé tel que déclaré dans GLPI
* **snmp-traps** = Nom du service tel que déclaré dans GLPI
* **1** = return\_code qui détermine l'état du contrôle de service, **1=AVERTISSEMENT**
Une fois terminé, ajouter au fichier de configuration SNMPTT `/etc/snmp/snmptt.ini` le chemin d'accès aux fichiers de configuration compilés:
```
[...]
snmptt_conf_files = <La définition d'une commande étant obligatoire on peut affecter une commande fictive au composant
* Associer le composant à un hôte statique dans le **Catalogue de composants**.
* Créer un service **snmp-traps** ayant pour ressource (onglet groups) l'entrée du catalogue créée ci-dessus.
## Intégration de collectd
Collectd est un démon qui collecte à intervalles réguliers des statistiques sur les performances d'un système et qui offre les mécanismes pour stocker les valeurs récupérées de plusieurs façons, comme par exemple des fichiers Fichiers RRD (Reduced Resolution Dataset).
Il est fourni avec :
- un frontend web qui permet une présentation graphique des fichiers RRD.
- le plugin collect-nagios qui permet de mettre en forme les données collectées à destination de NAGIOS
### Installer collectd
Récupérer le module mod-collectd pour SHINKEN
```
shinken install mod-collectd-master --local
```
Installer le plugin de confection des graphes rrdtool
```
yum install collectd-rrdtool
```
Editer le fichier /etc/collectd.conf pour vérifier/renseigner les Directory utilisées lors de l'installation :
```
#
# Config file for collectd(1). # Please read collectd.conf(5) for a list of options.
# http://collectd.org/
#
##############################################################################
# Global #
#----------------------------------------------------------------------------#
# Global settings for the daemon. #
##############################################################################
Hostname "localhost"
FQDNLookup true
BaseDir "/var/lib/collectd"
PIDFile "/var/run/collectd.pid"
#PluginDir "/usr/lib/collectd"
TypesDB "/usr/share/collectd/types.db"|
```
### Activer le font-end web
Copier coller le répertoire /collection3 à la racine du serveur web
```
cp /usr/share/collectd/collection3 /var/www/html/ -r
```
Editer le fichier `/var/www/html/etc/collection.conf` pour renseigner DataDir (emplacement des fichiers rrd produits par collectd)
```
DataDir "/var/lib/collectd/"
GraphWidth 400
#UnixSockAddr "/var/run/collectd-unixsock"
```
### Lancer le démon
```
service collectd start
```
### Intégration du plugin collectd-nagios
Dés lors il est possible d'intégrer le plugin **collectd-nagios** dans le module MONITORING pour afficher les données collectées dans GLPI
* Installer le plugin collectd-nagios: télécharger le module puis l'extraire dans la bibliothèque des plugins de SHINKEN pour pouvoir l'utiliser dans le plugin MONITORING de GLPI.
* Créer un modèle graphique adapté aux données collected
```
Nom : check_dd_replication
Exemple de perfdata pour ce contrôle : PreCompBytesSent=302719200000000.000000;;;; PostCompBytesSent=187767000000.000000;;;; PreCompBytesRemain=0.000000;;;; PostCompBytesRecv=16139660000000.000000;;;;
Nom : PreCompBytesSent
Nom dynamique ? Non
Position 1
Valeur 1 PreCompBytesSent
Valeur 2 value1.2
Valeur 3 value1.3
Valeur 4 value1.4
```
Pour définir **Exemple de perfdata pour ce contrôle** il faut récupérer un exemple de données restituées par la commande.\\ \\ Pour cela exécuter la commande en mode local\\ \\ `collectd-nagios -s /var/run/collectd-unixsock -n snmp/dd_replication-1 -H dd4200.sns.dgfip`\\ \\ puis récupérer la sortie\\ \\ ` OKAY: 0 critical, 0 warning, 4 okay | PreCompBytesSent=1421240000000.000000;;;; PostCompBytesSent=840693300.000000;;;; PreCompBytesRemain=0.000000;;;; PostCompBytesRecv=69277320000.000000;;;;`
* Activer l'affichage des données collectées: Dans la vue Métriques cliquer sur la prévisualisation attachée au composant testé