Public | Automated Build

Last pushed: 14 days ago
Short Description
lighttpd + nagios3 for EXASolution DB instances + clusters
Full Description


Please note that this is an open source project which is not officially supported by EXASOL. We will try to help you as much as possible, but can't guarantee anything since this is not an official EXASOL product.

Use to read the full manual since Docker Hub is not able to provide the images inside this git project.


The EXASOL nagios monitoring container provides users a simple starting point for setting up a monitoring system for your EXASOL database. By running the installation procedure, a fully working nagios monitoring container will be created and some initial services configured. Afterwards, you can either use this container as your monitoring solution, or extract the nagios configuration for your own monitoring tool.

Necessary preparations on EXASOL database clusters

  • for using the XMLRPC API, you need an EXAoperation user having at least the supervisor role
  • this user needs to have read access on all EXAStorage volumes of the cluster
  • a logservice with all relevant informations
  • a database user for accessing the monitoring tables

Creating the user

Log into EXAoperation web interface with a user which has Administrator or Master role. Under "Access Management" you can add users.

Assign Supervisor role

Assign the correct role to the new user by clicking "Roles". The default role for new users is "User", but not all XMLRPC functions used by the plugins can be used by this role. That's why you have to change the role to "Supervisor".

Grant read-only access to all data and archive volumes

Add that user to all available EXAStorage volumes - not including any temporary volumes (which are system-managed). Having read-only access to all volumes is necessary to be able to calculate the free, available space for the databases. A full explanation about calculating the free disk space can be found in SOL-366.

Granting access for a specific EXAStorage volume can be done by clicking on "EXAStorage" in the EXAoperation web interface and choosing the desired volume by clicking on the volume name. Now you can edit the volume settings, add the monitoring user to the "Read-only Users" list and apply the changes. This has to be done on all existing volumes.

Creating the logservice

The nagios monitoring bundle also contains an event-based check for cluster log messages. This check needs a logservice with all the desired options and will notify you as soon as there is an entry with a log priority higher than "WARNING". Click on "Monitoring" on the navigation pane where you might already find an appropriate logservice. Otherwise we recommend to create a new logservice with the following options:

  • Minimum Log Priority: Information
  • EXAClusterOS Services: <All>
  • Database Systems: <All>

To configure the plugin you need the "Service" id (like "logservice2").

Creating the database monitoring user

If we want to use the performance plugin which uses the statistical system tables of EXASOL, you need a database user which is able to access thes tables. You can use the following snippet to create such a database user:

CREATE USER exa_monitor IDENTIFIED BY "secure password";

Installing and managing the EXASOL nagios docker container

The first step for the installation procedure is to create a new docker instance with the EXASOL nagios image. This image is publicly available and you can find it using the command line options of docker:

root@demo ~ # docker search EXASOL
NAME                       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
exasol/script-languages    Pluggable EXASOL UDF Scripts                    0                    [OK]
exasol/nagios-monitoring   lighttpd + nagios3 for EXASolution DB inst...   0                    [OK]

The nagios monitoring image needs a port for the nagios web interface. If your local port "443" isn't used yet, we suggest to use this port for the web interface.

docker create -p<your local port>:443 --name <docker container name> --hostname <hostname inside container> exasol/nagios-monitoring:latest

Example for default HTTPS port 443 and "exasol-nagios" as name for the container:

docker create -p443:443 --name exasol-nagios --hostname exasol-nagios exasol/nagios-monitoring:latest

After creating the instance we are able to start it:

root@demo ~ # docker start exasol-nagios

Thats all! Now you have a running Nagios3 enviroment. The login for the Nagios3 web interface is "nagiosadmin" and its default password is "admin". The container uses self-signed SSL certificates which will be automatically created.

Adding a cluster

Adding a cluster is quite simple: you just have to start the configuration wizard and fill out the necessary information. The Nagios configuration files will be generated automatically. The wizard can be started with the following docker command:

docker exec -ti <container name/id> nagios-addcluster

A full walkthrough for a cluster may look like this:

root@demo ~ # docker exec -ti exasol-nagios nagios-addcluster
Cluster name [A-Za-z0-9]: cluster25
License server IP address:
EXAoperation user (must have at least the supervisor role): monitor
EXAoperation password: 
Logservice number: 1
IP addresses of all cluster nodes (connection range):

*** trying to connect...
Do you want to monitor the database instance "db25_1"? (Y/n)y
Database monitoring user: exa_monitor
Do you want to monitor the database instance "db25_2"? (Y/n)y
Database monitoring user: exa_monitor
*** successfully created Nagios3 Configuration file '/etc/nagios3/conf.d/exa_cluster25.cfg'

After adding the cluster, all monitoring services are added to Nagios. You can check by opening the "Services" page:


You can find more information about troubleshooting, known problems, plugin descriptions, SNMP plugins on our GitHub nagios-monitoring Wiki page:


All sources to create the docker image can be found on GitHub (
If you want to build the container from scratch you can do by using the following lines:

git clone
docker build -t exasol/nagios-monitoring:latest -f Dockerfile .
Docker Pull Command
Source Repository