Maps

From OpenNMS

Contents

Map Availability in OpenNMS

In the OpenNMS 1.6.x series, maps are available for Internet Explorer only. If you wish to use maps on other platforms, the easiest way is to install Internet Explorer in wine.

As of OpenNMS 1.7.0, maps now work in most SVG-capable browsers.

Enabling

The maps are set to off by default in 1.6.x. In order to enable them navigate to the etc directory of your OpenNMS install.

  • In etc directory, rename the file map.disable to map.enable , this will in turn enable the map in the openNMS Web interface.
  • Go to http://<your server>:8980/opennms/Index.map and start creating your first own map!

In the 1.7.4 the maps are enabled by default. Just click on the link in the main menu to access the map.

  • if you want to disable maps rename in etc directory map.enable in map.disable
  • To access the map go to http://<your server>:8980/opennms/map/index.jsp

Links!

The maps will additionally show links between adjacent nodes, when the when linkd daemon is enable.

  • How-To Enable linkd to get links on nodes

Maps

Maps are also avalaible as a complete SVG client application.

Maps allow users to visualize nodes and relative links.

Maps can contain sub maps and nodes.

Maps gives an immediate representation of the status, severity and avalaibility of a map element throw a color.

To every map element is associated an icon. At the moment icons are automatically loaded using db asset field displaycategory.

Users in Admin Role can create, delete and modify maps.


The maps Configuration File

maps in OpenNMS is controlled by the map.properties file (located in the OpenNMS_Install_Path/etc directory).

Let's look at that file:

############################################################################
# map.properties
#--------------------------------------------------------------------------
# This file defines client/server specific infos.
#
###########################################################################


###########################################################################
## S E V E R I T I E S    
###########################################################################

# A comma-separated list of severities.  A severity.{KEY}.id, 
# severity.{KEY}.color,
# severity.{KEY}.label,
# severity.{KEY}.flash default false
# property must be set for each key in this property.
# properties severity.default and severity.indeterminate are mandatory
# Severities must be ordered from worst to best (i.e.: critical.id < minor.id < normal.id, etc.)
# and must be a continous sequence of interger
#

severities=critical,major,minor,warning,normal,cleared,indeterminate

severity.critical.id=0
severity.critical.label=Critical
severity.critical.color=red
severity.critical.flash=true

severity.major.id=1
severity.major.label=Major
severity.major.color=orange


severity.minor.id=2
severity.minor.label=Minor
severity.minor.color=yellow

severity.warning.id=3
severity.warning.label=Warning
severity.warning.color=cyan

severity.normal.id=4
severity.normal.label=Normal
severity.normal.color=green

severity.cleared.id=5
severity.cleared.label=Cleared
severity.cleared.color=white

severity.indeterminate.id=6
severity.indeterminate.label=Indeterminate
severity.indeterminate.color=lightblue


severity.default=normal
severity.indeterminate=indeterminate

###########################################################################
## L I N K S
###########################################################################

# A comma-separated list of link keys.  A link.{KEY}.id 
# link.{KEY}.speed (optional): the speed in byte of the link 
# link.{KEY}.text 
# link.{KEY}.width
# link.{KEY}.dasharray (optional): define the outline style of the line. Valid values are 1,2,3... 
# link.{KEY}.snmptype
#
# multilink.status: 'best' or 'worst'; if there are more then 1 same link between 2 elements, specify the status to get.
# 					default value is best. 
# Notice that you can specify more than 1 link with same snmptype, differing by speed


#property must be set for each key in this property.
links=ethernet,fastethernet,gigaethernet,serial,framerelay,unknown

link.ethernet.id=0
link.ethernet.text=Ethernet
link.ethernet.speed=10000000
link.ethernet.width=1
link.ethernet.snmptype=6

link.fastethernet.id=1
link.fastethernet.text= Fast Ethernet
link.fastethernet.speed=100000000
link.fastethernet.width=2
link.fastethernet.snmptype=62

link.gigaethernet.id=2
link.gigaethernet.text= GigaBit Ethernet
link.gigaethernet.speed=1000000000
link.gigaethernet.width=3
link.gigaethernet.snmptype=117


link.serial.id=3
link.serial.text= Serial Line
link.serial.speed=64000
link.serial.width=1
link.serial.dash-array=3
link.serial.snmptype=22


link.framerelay.id=4
link.framerelay.text= Frame Relay
link.framerelay.speed=64000
link.framerelay.width=1
link.framerelay.dash-array=5
link.framerelay.snmptype=32


link.unknown.id=5
link.unknown.text= Unknown
link.unknown.speed=unknown
link.unknown.width=1
link.unknown.dash-array=1
link.unknown.snmptype=0

link.default=5
multilink.status=best

###########################################################################
## L I N K  S T A T U S
###########################################################################
# A comma-separated list of linkstatuses keys.  
# linkstatus.{KEY}.color 
# linkstatus.{KEY}.flash (optional, default is false): if true, the link flashes

linkstatuses=up,down
linkstatus.up.color=green
linkstatus.down.color=red
linkstatus.down.flash=true

###########################################################################
## N O D E  S T A T U S
###########################################################################

# A comma-separated list of statutes keys.  A status.{KEY}.id 
# status.{KEY}.uei and 
# status.{KEY}.color 
# status.{KEY}.text property must be set for each key in this property.
# Statuses must be ordered from worst to best (i.e.: nodedown.id < nodeup.id, etc.)

statuses=nodeup,nodedown,interfacedown,servicedown,linkup,linkdown,undefined

status.nodedown.id=0
status.nodedown.color=red
status.nodedown.uei=uei.opennms.org/nodes/nodeDown
status.nodedown.text=NodeDown

status.interfacedown.id=1
status.interfacedown.uei=uei.opennms.org/nodes/interfaceDown
status.interfacedown.color=orange
status.interfacedown.text=InterfaceDown

status.linkdown.id=2
status.linkdown.uei=uei.opennms.org/generic/traps/SNMP_Link_Down
status.linkdown.color=orange
status.linkdown.text=SNMPLinkDown

status.servicedown.id=3
status.servicedown.uei=uei.opennms.org/nodes/nodeLostService
status.servicedown.color=yellow
status.servicedown.text=NodeLostService

status.undefined.id=4
status.undefined.uei=MATCH_ALL_EVENTS
status.undefined.color=grey
status.undefined.text=SeeEventDetails

status.nodeup.id=5
status.nodeup.uei=uei.opennms.org/nodes/nodeUp
status.nodeup.color=green
status.nodeup.text=NodeUp

status.linkup.id=6
status.linkup.uei=uei.opennms.org/generic/traps/SNMP_Link_Up
status.linkup.color=green
status.linkup.text=SNMPLinkUp


// status.default and status.unknown.uei are required values
// they should be equals to defined statuses
status.default=nodeup
status.unknown.uei=undefined

###########################################################################
## A V A I L
###########################################################################

# A comma-separated list of avails keys. 
# avail.{KEY}.id  
# avail.{KEY}.min  
# avail.{KEY}.color 
# avail.{KEY}.flash default false
#
# avail.undefined is mandatory

availabilities=normal,warning,critical,undefined

avail.normal.id=0
avail.normal.min=99
avail.normal.color=green

avail.warning.id=1
avail.warning.min=97
avail.warning.color=yellow

avail.critical.id=2
avail.critical.min=0
avail.critical.color=red
avail.critical.flash=true

# avail.undefined is mandatory
avail.undefined.id=3
avail.undefined.min=-1
avail.undefined.color=grey

# default is true
# setting to false speed up open and refresh map
avail.enable=true
#this field is mandatory
avail.enable.false.id=3



###########################################################################
## I C O N S    
###########################################################################
# A comma-separated list of incons keys. 
# icon.{KEY}.filename
icons=desktop,infrastructure,laptop,opennms,other,printer,server,telephony,unspecified,map,fileserver,firewall,mainframe,multilayerswitch,pix,router,switch,vax

icon.desktop.filename=desktop.png
icon.infrastructure.filename=infrastructure.png
icon.laptop.filename=laptop.png
icon.opennms.filename=opennms.png
icon.other.filename=other.png
icon.printer.filename=printer.png
icon.server.filename=server.png
icon.telephony.filename=telephony.png
icon.unspecified.filename=unspecified.png
icon.map.filename=map.png
icon.fileserver.filename=fileserver.png
icon.firewall.filename=firewall.png
icon.mainframe.filename=mainframe.png
icon.multilayerswitch.filename=multilayerswitch.png
icon.pix.filename=pix.png
icon.router.filename=router.png
icon.switch.filename=switch.png
icon.vax.filename=vax.png


// icon.default.map and icon.default.node are required values
// they should be equals to defined icons
icon.default.map=map
icon.default.node=unspecified

  
###########################################################################
## B A C K G R O U N D   I M A G E S    
###########################################################################
# A comma-separated list of bgimages keys. 
# bgimages.{KEY}.filename
bgimages=napoli,italia,abruzzo,basilicata,calabria,campania,emilia_romagna,friuli,lazio,liguria,lombardia,molise,marche,piemonte,puglia,sicilia,sardegna,trentino,toscana,umbria,valle_d_aosta,veneto

bgimage.napoli.filename=napoli.gif
bgimage.italia.filename=italia.jpg
bgimage.abruzzo.filename=abruzzo.jpg
bgimage.basilicata.filename=basilicata.jpg
bgimage.calabria.filename=calabria.jpg
bgimage.campania.filename=campania.jpg
bgimage.emilia_romagna.filename=emilia_romagna.jpg
bgimage.friuli.filename=friuli.jpg
bgimage.lazio.filename=lazio.jpg
bgimage.liguria.filename=liguria.jpg
bgimage.lombardia.filename=lombardia.jpg
bgimage.molise.filename=molise.jpg
bgimage.marche.filename=marche.jpg
bgimage.piemonte.filename=piemonte.jpg
bgimage.puglia.filename=puglia.jpg
bgimage.sicilia.filename=sicilia.jpg
bgimage.sardegna.filename=sardegna.jpg
bgimage.trentino.filename=trentino.jpg
bgimage.toscana.filename=toscana.jpg
bgimage.umbria.filename=umbria.jpg
bgimage.valle_d_aosta.filename=valle_d_aosta.jpg
bgimage.veneto.filename=veneto.jpg


# 	- A comma-separated list of context menu commands (skipped if contextmenu is disabled):
# 		cmenu.commands=COMMAND1,COMMAND2,...,COMMANDN 
# 		for each command:
#		cmenu.{COMMAND1}.link: link to the page to open (you can use the special words 'ELEMENT_ID' and 'ELEMENT_LABEL'
# 											 to use the selected map element's id or label as argument of the linked page)
#		cmenu.{COMMAND1}.params: (javascript window.open() ) params for the window containing the page
#		- to insert a separator in the context menu, use the character '-' as command and omit link and params.
#		- link is a parameter mandatory, params is optional

cmenu.commands=Ping,Traceroute,-,Events,Resource%20Graphs
cmenu.Ping.link=map/response/ping.jsp?node=ELEMENT_ID
cmenu.Ping.params=toolbar,width=300,height=300, left=0, top=0, scrollbars=1, resizable=1
cmenu.Traceroute.link=map/response/traceroute.jsp?node=ELEMENT_ID
cmenu.Traceroute.params=toolbar,width=300,height=300, left=0, top=0, scrollbars=1, resizable=1
cmenu.Events.link=event/list?filter=node%3DELEMENT_ID
cmenu.Events.params=toolbar,width=640,height=480, left=0, top=0, scrollbars=1, resizable=1
cmenu.Resource%20Graphs.link=graph/chooseresource.htm?parentResourceType=node&parentResource=ELEMENT_ID&reports=all
cmenu.Resource%20Graphs.params=toolbar,width=640,height=480, left=0, top=0, scrollbars=1, resizable=1

# Also, you can define the way to calculate severity for (sub)Maps.
# property 'severity.map' may be 
#	-'worst': gets the worst severity of the elements of the map
#	-'avg':   calculates the severity of the map as the average severity of all the elements of the map
#	-'best':  gets the best severity of the elements of the map
# default value='avg'

severity.map=worst

#	- enable.reload: if true, reload map instead of refresh (default is false)
#			 reload should be actived for map's implementations in which the content of a map
#			 (elements in addition to status and links) could change in the time. 			
#	- enable.contextmenu: if false, disable context menu for node elements (default is true)
#	- enable.doubleclick: if false, disable double click for node elements (default is true)

enable.reload=false
enable.contextmenu=true
enable.doubleclick=true

This file defines severity, status and avalaibility visualization properties and parameters for map elements. You can change the default settings (similar to OpenNMS standard severity and event configuration) to meet your requirement.

Beginning with release 1.7.4 the following section has been added to the map.properties file.

###########################################################################
## SYSOIDS to ICONS
###########################################################################
# A comma-separated list of sysoids keys.
# sysoids.{KEY}.iconName
sysoids=.1.3.6.1.4.1.9.1.17,\
.1.3.6.1.4.1.9.1.48,\
.1.3.6.1.4.1.9.1.222,\
.1.3.6.1.4.1.9.1.278,\
.1.3.6.1.4.1.9.1.282,\
.1.3.6.1.4.1.9.1.283,\
.1.3.6.1.4.1.9.1.326,\
.1.3.6.1.4.1.9.1.359,\
.1.3.6.1.4.1.9.1.400,\
.1.3.6.1.4.1.9.1.451,\
.1.3.6.1.4.1.9.1.516,\
.1.3.6.1.4.1.9.1.543,\
.1.3.6.1.4.1.9.1.674,\
.1.3.6.1.4.1.9.1.863,\
.1.3.6.1.4.1.9.1.928,\
.1.3.6.1.4.1.9.5.40

sysoid..1.3.6.1.4.1.9.1.17.iconName=router
sysoid..1.3.6.1.4.1.9.1.48.iconName=router
sysoid..1.3.6.1.4.1.9.1.222.iconName=router
sysoid..1.3.6.1.4.1.9.1.278.iconName=switch
sysoid..1.3.6.1.4.1.9.1.282.iconName=multilayerswitch
sysoid..1.3.6.1.4.1.9.1.283.iconName=multilayerswitch
sysoid..1.3.6.1.4.1.9.1.326.iconName=router
sysoid..1.3.6.1.4.1.9.1.359.iconName=switch
sysoid..1.3.6.1.4.1.9.1.400.iconName=switch
sysoid..1.3.6.1.4.1.9.1.451.iconName=firewall
sysoid..1.3.6.1.4.1.9.1.516.iconName=switch
sysoid..1.3.6.1.4.1.9.1.543.iconName=telephony
sysoid..1.3.6.1.4.1.9.1.674.iconName=firewall
sysoid..1.3.6.1.4.1.9.1.863.iconName=router
sysoid..1.3.6.1.4.1.9.1.928.iconName=switch
sysoid..1.3.6.1.4.1.9.5.40.iconName=switch

This allows you to define icons for map elements based on each element's sysoid. Icons for a few cisco devices are defined in the distribution, as shown above. You may make additions and changes to meet your specific needs. When a new map is generated, these icons will be used instead of the generic default icon for all elements with matching entries. The generic default icon will be still used for any element without a matching entry. If you wish to change the icon for a specific element once a map has been created, you may do so using the map's menus.

Here an example map screenshot: Image:Example.jpg

ACL

  • It is possible to restrict access to the maps by specifing user and group with access schema.
  • The access schema supported are RW, RO and RWRO
  • RW and RO at the moment are equivalent. If the access is set to one of this every user can access the map.
  These access schema were designed to gain access to the map to the user in ReadWrite mode or ReadOnly mode
   but was never implemented.
  • RWRO enables access to the map only to owner and to the map group specified
  • At the moment only user that have ADMIN_ROLE can modify maps for which the specified user has access
  • When you create a map using the map application you create a map whose owner is the user who creates the map
  (that must have ADMIN_ROLE) whise group is null and whose access schema RW (so every user can access the map)
  • There is no way at the moment to change owner, group and access schema frm the Map GUI
  • To change the map access go to the database and update map table:
  owner is in the map table field mapOwner
  group is in the map table field mapGroup
  access schema is in the map table field mapAccess

Automatic maps

  • From version 1.7.2 it is possible to automatically generate maps using the maps-provisiong-adapter.
  • In the map provisiong adapter you can specify the ACL for the map so that are created with proper access control


Default map for group

  • From version 1.7.4 it is possible to set a default map for a group in modifyGroup page. When a user that belongs to a group for which the default map is specified log into

the map application the default map is automatically open.


Enhancements

  • Improve performance in loading and refresh function. It seems that the best way of doing this is to work using asyncronus methods. This must be developed using new service mapd.
  • We have to introduce JSon for Communication layer.
  • Use Daos
Personal tools
DevJam 2008 Sponsors
DevJam 2008 Sponsor: Google
DevJam 2008 Sponsor: Netregistry
DevJam 2008 Sponsor: Papa John's
NewEdge Networks
OpenNMS takes home the gold award!
Join the Free Software Foundation
Support This Project Commercial OpenNMS Support OpenNMS Italia Get OpenNMS at SourceForge.net. Fast, secure and Free Open Source software downloads Our Network Simulator Our Java Profiler