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. 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. 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. 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. 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. 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. 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. 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. 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. 10
Exemple d’architecture de supervision OpenNMS
Supervision système des
serveurs
BD référentielle qui fournit des
infos supplémentaires
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. 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>
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. 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. 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. 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. 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. 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. 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. 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. 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. 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…
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