OpenNMS

2,264 views

Published on

Présentation of OpenNMS -- a Powerfull Supervision platform

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,264
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OpenNMS

  1. 1. Enterprise-grade Open-source Network Management Best of Open Source Software (BOSSIE) award 2009 in the "Networking and network management category"
  2. 2.  Qu’est ce que OpenNMS ?  Les nouveautés d’OpenNMS  L’installation d’OpenNMS sous Linux (Debian ou Ubuntu)  Exemple d’architecture de supervision OpenNMS  Ses Caractéristiques  Ses principales fonctionnalités  Exemple de collecte d’informations à partir d’OIDs spécifiques ( Taux d’utilisation d’un HDD ).  Datacollection-config.xml .  OpenNMS vs Autres outils de supervision ( Nagios, zabbix…. )  Conclusion 1 PLAN
  3. 3. 2 • OpenNMS (open source network management system) est un outil de supervision de réseau Open Source développé en Java par Day one et qui s'appuie sur le moteur applicatif Jetty pour fonctionner. • Destiné aux entreprises, Son objectif consiste à proposer une solution de rechange Freeware, fiable et complète par rapport à des produits tels qu'OpenView d'Hewlett-Packard et Tivoli d’IBM. Qu’est ce que OpenNMS ?
  4. 4. 3 • Vu qu’il est développé en Java , OpenNMS fonctionne sur la majorité des systèmes d’exploitation dont : • Linux • Microsoft Windows • Solaris • FreeBSD • Mac OS X Qu’est ce que OpenNMS ?
  5. 5. 4 • II se décline en deux versions : • Stable v1.8.5 ( Production ) • Instable v1.9.2 ( En cours de développement ) Téléchargeables sur www.opennms.org Qu’est ce que OpenNMS ?
  6. 6. 5 • les nouveautés de la dernière version 1.8.5 portent sur: • l'intégration d'un éditeur de cartes SVG utilisable sous Firefox • la mise en œuvre de nouvelles méthodes de découvertes d'équipements ou de services • l'intégration avec RANCID • l'interopérabilité avec de nombreux outils de gestion de tickets de dérangement/maintenance comme OTRS Démo sur : http://demo.opennms.org/opennms/ Les nouveautés d’OpenNMS
  7. 7. 6 • Spécifier les sources des packages OpenNMS pour l’outil apt-get Installation d’OpenNMS sous Debian ou Ubuntu deb http://debian.opennms.org stable main deb-src http://debian.opennms.org stable main /etc/apt/sources.list.d/sourc es.list Copy • Informer apt-get que les packages sont signés avec une clé PGP (22EE DDA6 8698 B02F B2EC 50B7 062B 8A68 4C4C BBD9), afin d’assurer leur intégrité. • Installer Java v6 apt-get install sun-java6-jdk • Installer le serveur de base de données PostgreSQL v1.8.4 apt-get install postgresql-8.4 wget -O - http://debian.opennms.org/OPENNMS-GPG-KEY | sudo apt-key add – Sudo apt-get update // rafraichir l’inventaire des packages système
  8. 8. 7 Installation d’OpenNMS sous Debian ou Ubuntu • OpenNMS doit être capable de contacter la base de données par TCP/IP (même en localhost) et le processus d’installation doit être capable de créer la base de données. • Modifier le fichier /etc/postgresql/8.4/main/postgresql.conf • listen_addresses = ‘localhost’ • max_connections = 256 • shared_buffers = 10MB • Modifier le fichier /etc/postgresql/8.4/main/pg_hba.conf # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident Local all all ident # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident Local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust
  9. 9. 8 Installation d’OpenNMS sous Debian ou Ubuntu • Redémarrer PostgreSQL $ sudo service postgresql-8.4 restart • Créer la Base de données postgres dans laquelle toutes les infos récoltées seront stockées. $ sudo -u postgres createdb -U postgres -E UNICODE opennms • Vérifier que la base de données a été bien créer $ psql -U postgres --host=localhost opennms opennms=# • Installer IPLIKE ( PS ) $ sudo install_iplike.sh • Préciser à OpenNMS le JDK qu’il doit utiliser $ sudo /usr/share/opennms/bin/runjava -s
  10. 10. 9 Installation d’OpenNMS sous Debian ou Ubuntu • Lancer l’installeur d’OpenNMS afin d’initialiser la base de données et vérifier que tous les prérequis ont été bien installer . $ sudo /usr/share/opennms/bin/install -dis • Une fois OpenNMS installé et configuré , on lance le démon OpenNMS pour pouvoir accéder à l’application $ sudo service opennms start • Accéder à l’application via l’interface web http://IP@adress:8980/opennms/ Login : admin Password : admin
  11. 11. 10 Exemple d’architecture de supervision OpenNMS Supervision système des serveurs BD référentielle qui fournit des infos supplémentaires
  12. 12. 11 Les caractéristiques d’OpenNMS • Orienté SNMP ( Pas d’agent distant ) Mais pas d’utilisation direct des fichiers ASN (mibs). Traduction des MIBs en XML : Extraire les définitions des traps de la MIB et les ajouter à OpenNMS sous forme d’évènements. Outils : mib2opennms . Exemple : 1.extraction des définitions des traps : $ mib2opennms -6 mibfile.mib > mibfile.events.xml 2.éditer le fichier mibfile.events.xml et ajouter la balise <events> en 1ère ligne et la balise </events> à la fin du fichier. 3.copier le fichier dans le répertoire $OPENNMS_HOME/etc/events. 4. ajouter à la fin du fichier $OPENNMS_HOME/etc/eventconf.xml la ligne : <event-file>events/mibfile.events.xml</event-file>
  13. 13. 12 Les caractéristiques d’OpenNMS • Configuration XML Mais fichiers xsds (schéma) non inclus par défaut . Exemple : discovery-configuration.xml (Discovery configuration file). <discovery-configuration threads="1" packets-per-second="1" initial-sleep-time="300000" retries="3" timeout="800"> <include-range retries="2" timeout="3000"> <begin>192.168.0.1</begin> <end>192.168.0.254</end> </include-range> <include-url>file:/opt/OpenNMS/etc/include</include-url> </discovery-configuration>
  14. 14. 13 Les caractéristiques d’OpenNMS • Graphes rrd ( interface Java – C ) • ou jrb (pur Java)
  15. 15. :Hostcapabilities :snmpcapabilities 14 Les caractéristiques d’OpenNMS • Communication évènementielle entre services : Exemple >> ajout d’équipement : processus :Eventd :capsd :pollerd :collectd :Servicecapabilities :pollable? :nodeGainedService :nodeGainedService 1:NewsSuspectEvent
  16. 16. 15 Les caractéristiques d’OpenNMS • Services (Daemons) : Traitement d’évènement Découverte de services Collecte de données : Snmp, jmx, http Disponibilité de service Découverte Des Hôtes Notifications Etablissement de Liens inter équipements Réception de traps
  17. 17. 16 Service Polling : suivi de disponibilité des services sur le réseau (DNS, NFS, DHCP, SMTP, SNMP etc….) Data collection : collecte, stockage et représentation graphique des données collectées à partir des nœuds du réseau via les protocoles SNMP, JMX, HTTP, WMI et NSClient. Performance discovery : mesure de performance d’un système distant à partir des données collectées sur ce dernier. Event management & Notification : Gestion & Notification des événements survenu sur les équipements supervisés. Les principales fonctionnalités d’OpenNMS
  18. 18. 17 Alarms and automations : Gestion automatisée des alarmes (traps) envoyés par les équipements supervisés. Thresholding : Anticipation de pannes ou des disfonctionnements de services, ou de réseau (tps de latence, tps de réponse …) en se basant sur des valeurs de seuil définit dans le fichier threshd- configuration.xml ( utilité : respect des SLAs, bon fonctionnement d’un service donné….) Les principales fonctionnalités d’OpenNMS
  19. 19. 18 La connexion à l’application s’effectue via un navigateur web. http://@IP:8980/opennms/ Plusieurs types de profils peuvent être définis : administrateur, superviseur, … LET’s GO OpenNMS
  20. 20. 19 Fichier : /etc/opennms/Datacollection-config.xml 1. Création de la définition de la ressource type : Pourquoi ? - Indiquer à OpenNMS le type de ressource défini dans les tables de la MIB-2. - Ce type de ressource personnalisé sera utilisé lors de la collecte des données et lors de l'affichage des données sous forme de graphes. Collecting SNMP Data from a specific OIDs…
  21. 21. 20 • Type de ressource choisit : hrStorageIndex ( Taux de stockage sur un disque). <resourceType name="hrStorageIndex" label="Storage (MIB-2 Host Resources)"> <persistenceSelectorStrategy class="org.opennms.netmgt.collectd.PersistAllSelectorStrategy"/> <storageStrategy class="org.opennms.netmgt.dao.support.IndexStorageStrategy"/> </resourceType> "persistenceSelectorStrategy" & "storageStrategy " définissent les class qui seront utilisées pour stocker les données de la ressource sur le disque ainsi que la manière avec laquelle ils seront stocker. !!! NE PAS CHANGER Collecting SNMP Data from a specific OIDs…
  22. 22. 21 2. Créer le group ainsi que ses fils (mibObj) : • Section groups. <group name="mib2-host-resources-storage" ifType="all"> <mibObj oid=".1.3.6.1.2.1.25.2.3.1.3" instance="hrStorageIndex" alias="hrStorageDescr" type="string" /> <mibObj oid=".1.3.6.1.2.1.25.2.3.1.4" instance="hrStorageIndex" alias="hrStorageAllocUnits" type="gauge" /> <mibObj oid=".1.3.6.1.2.1.25.2.3.1.5" instance="hrStorageIndex" alias="hrStorageSize" type="gauge" /> <mibObj oid=".1.3.6.1.2.1.25.2.3.1.6" instance="hrStorageIndex" alias="hrStorageUsed" type="gauge" /> </group> Collecting SNMP Data from a specific OIDs…
  23. 23. 22 2. Ajouter le group mib2-host-resources-storage à la définition du système: • Section SystemDef. <systemDef name="Net-SNMP"> <sysoidMask>.1.3.6.1.4.1.8072.3.</sysoidMask> <collect> <includeGroup>mib2-host-resources-storage</includeGroup> <includeGroup>mib2-host-resources-system</includeGroup> <includeGroup>mib2-host-resources-memory</includeGroup> <includeGroup>net-snmp-disk</includeGroup> <includeGroup>ucd-loadavg</includeGroup> <includeGroup>ucd-memory</includeGroup> <includeGroup>ucd-sysstat</includeGroup> </collect> </systemDef> Collecting SNMP Data from a specific OIDs…
  24. 24. 23 3. Créer la définition du rapport dans le fichier snmp-graph.properties : report.mib2.storage.usage.name=Storage Utilization (MIB-2 Host Resources) report.mib2.storage.usage.columns=hrStorageSize, hrStorageUsed, hrStorageAllocUnits report.mib2.storage.usage.type=hrStorageIndex report.mib2.storage.usage.command=--title="Storage Utilization" --vertical-label="Bytes" DEF:total={rrd1}:hrStorageSize:AVERAGE DEF:used={rrd2}:hrStorageUsed:AVERAGE DEF:units={rrd3}:hrStorageAllocUnits:AVERAGE CDEF:totalBytes=total,units,* CDEF:usedBytes=total,used,-,units,* LINE2:totalBytes#0000ff:"Total" GPRINT:totalBytes:AVERAGE:" Avg : %8.2lf %s" GPRINT:totalBytes:MIN:"Min : %8.2lf %s" GPRINT:totalBytes:MAX:"Max : %8.2lf %sn" AREA:usedBytes#ff0000:"Used " GPRINT:usedBytes:AVERAGE:" Avg : %8.2lf %s" GPRINT:usedBytes:MIN:"Min : %8.2lf %s" GPRINT:usedBytes:MAX:"Max : %8.2lf %sn" Collecting SNMP Data from a specific OIDs…
  25. 25. 24 4. Ajouter le rapport créé au paramètre reports dans le même fichier : reports=mib2.bits, mib2.percentdiscards, mib2.percenterrors, ... mib2.storage.usage, ... 5. Redémarrer Opennms : sudo service opennms restart Collecting SNMP Data from a specific OIDs…
  26. 26. 25 • Fichier : Javamail-configuration.xml org.opennms.core.utils.fromAddress=onmsuser@gmail.com org.opennms.core.utils.transport=smtp org.opennms.core.utils.mailHost=smtp.gmail.com org.opennms.core.utils.smtpport=587 org.opennms.core.utils.smtpssl.enable=false org.opennms.core.utils.authenticate=true org.opennms.core.utils.authenticateUser=ouahidabdeljaouad@gmail.com org.opennms.core.utils.authenticatePassword=Password org.opennms.core.utils.messageContentType=text/html org.opennms.core.utils.charset=UTF-8 • Fichier : Notifd-configuration.xml Status=“on” pages-sent=”SELECT * FROM notifications” Configuring Email notifications (ex : Gmail)…
  27. 27. 26 Remote monitoring….
  28. 28. Comparison of network system monitoring IP SLA Repor ts Logica l Group ing trendi ng Trend predic tion Auto discov ery Agent SNMP Syslog Plugin s Trigge rs / Alerts Weba pp Distri buted Monit oring Invent ory Data storage Method Lic en se Maps Acces s Contr ol IP v6 O N M S YES YES YES Unkn own YES Supp orted YES YES YES YES Full Cont rol YES Limite d Jrobin Posgre sql G PL YES YES Limit ed N A G I O S Via Plugi n YES YES NO Via Plugi n Supp orted via Plugi n via Plugi n YES YES Full Cont rol YES Via Plugin Flat file, SQL G PL YES YES YES C A C T I YES YES YES YES Via plugi n No YES YES YES YES Full Cont rol YES YES RRDTo ol,MyS QL G PL Via plugi n YES YES Z A B B I X YES YES YES YES YES Supp orted YES YES YES YES Full Cont rol YES YES Oracle, Mysql, postgr esql,IB M DB2, SQLite G PL YES YES YES P R T G YES YES YES YES YES Supp orted YES YES YES YES Full Cont rol YES YES SQL Fr & Sh YES Gran ular Unkn own
  29. 29. 27 QUESTIONS !?

×