Map Module

An openstreetmap based map for host and service state visualisation with Icinga Web2

Map module for Icinga Web 2

Table of Contents

  1. About
  2. License
  3. Support
  4. Requirements
  5. Installation
  6. Configuration
  7. FAQ
  8. Thanks
  9. Contributing

About

This module displays host objects as markers on openstreetmap using leaflet.js. If you configure multiple hosts with the same coordinates, i.e. servers in a datacenter, a clustered view is rendered.

Clustered mapClustered mapDetailed map

In order to locate a specific host on the map, you can use the custom host action:

Host action

The map module is directly integrated into the detail view in Icinga Web 2:

Host detail view

If you click on the host marker, a popup shows a service list and their current hard states.

Host detail view

You could also integrate a map as dashlet into your dashboards:

Map as a dashlet

License

Icinga Web 2 and this Icinga Web 2 module are licensed under the terms of the GNU General Public License Version 2, you will find a copy of this license in the LICENSE file included in the source package.

This module uses Leaflet and several plugins:

Support

Join the Icinga community channels for questions.

Requirements

Installation

Extract this module to your Icinga Web 2 modules directory as map directory.

Git clone:

cd /usr/share/icingaweb2/modules
git clone https://github.com/nbuchwitz/icingaweb2-module-map.git map

Tarball download (latest release):

cd /usr/share/icingaweb2/modules
wget https://github.com/nbuchwitz/icingaweb2-module-map/archive/v1.0.0.zip
unzip v1.0.0.zip
mv icingaweb2-module-map-1.0.0 map

Enable Icinga Web 2 module

Enable the module in the Icinga Web 2 frontend in Configuration -> Modules -> map -> enable. You can also enable the module by using the icingacli command:

icingacli module enable map

Configuration

Module

Configure the default coordinates and the zoom levels inside Configuration -> Modules -> map where you navigate to the configuration tab.

Configuration Tab

Add coordinates to a host object in Icinga 2

Add a custom attribute called geolocation to any host you want to display on the map. Its value consists of WGS84 coordinates in the following format:

vars.geolocation = "<latitude>,<longitude>"

Example:

object Host "db-in-la" {
  check_command = "hostalive"
  address = "192.168.33.5"
  vars.geolocation = "34.052234,-118.243685"
}

You could also add the geolocation variable to your hosts using the Icinga Director with the new mapDatatype module.

FAQ

Change default parameters per map

It's possible to change the parameters default_zoom, default_long and default_lat for a map by adding the parameters to the url:

map?default_zoom=20&default_long=13.370324&default_lat=52.500859

Show host coordinates inside the map

In order to highlight the host's coordinate, hold the CTRL key and click on the desired map location.

Thanks

This module borrows a lot from https://github.com/Mikesch-mp/icingaweb2-module-globe.

Contributing

There are many ways to contribute to the Icinga Web module for Maps -- whether it be sending patches, testing, reporting bugs, or reviewing and updating the documentation. Every contribution is appreciated!

Please continue reading in the contributing chapter.