# 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é