Responsive Web Frontend

Overview

Statusengine comes with a brand new responsive web frontend so you can take a look at your monitoring environment with every device you like.

The interface supports external commands like schedule a downtime or submit a passive check result.

Features

  • Modern and responsive Web Frontend for Naemon and Nagios 4
  • Made for Smartphones and Tablets
  • Support for long host and service output
  • Works with your current monitoring environment
  • Backend based on PHP, JavaScript (jQuery) and MySQL
  • Less configuration due to Statusengine is able to process performance data
  • Less parsing! You like to query the interface? Extend the URL with .json or .xml
  • Multiple themes for the web interface
External Commands suported by the interface

External commands

Easy communication with monitoring core due to the inbuilt external command interface

History options of host and services

History

With the history views for each host and service debugging your environment is very comfortable. You can search and sort any list or export it as json and xml.

Change your monitoring configuration

Configuration changes

Made temporary configuration changes for Notifications, Active/Passive checks, Flap detection and Event handler. Click on Enabled or Disabled to change.

Themes

Statusengine interface comes with two responsive themes:

By default the Interface is powered by a bootstrap theme called "AdminLTE".

If you like it more minimalistic you can use the "classic" UI:

Want to create your own theme? No problem.
You don't need to touch PHP or JavaScript files. Take a look at the CakePHP documentation about creating themes

Requirements

  • Working installation of Naemon or Nagios 4
  • MySQL root access
  • PHP >= 5.4
  • Ubuntu 14.04 (or any other Debian based OS)

Notice:

Please check your files /etc/php5/apache2/php.ini and /etc/php5/cli/php.ini if your timezone settings are correct, like in this example:


date.timezone = "Europe/Berlin"

How to setup? (Ubuntu 14.04)

Notice:

This guide is made for Ubuntu 14.04!
Click here if you are on Ubuntu 16.04

  1. Install dependencies
    
    apt-get install mysql-server apache2 libapache2-mod-php5 gearman-job-server libgearman-dev gearman-tools uuid-dev php5-gearman php5-cli php5-dev libjson-c-dev manpages-dev build-essential rrdtool php5-rrd php5-mysqlnd php5-gd unzip
    
    
  2. Download Statusengine
    Download and unzip/untar the latest version of Statusengine.
  3. Execute basic installation
    
    cd statusengine-x.x.x/
    chmod +x install.sh
    ./install.sh
    
    
  4. Create MySQL databases
    Naemon:
    
    mysql -u root -p < sql/naemon.sql
    
    
    Nagios:
    
    mysql -u root -p < sql/nagios.sql
    
    
    Statusengine:
    
    mysql -u root -p < sql/statusengine.sql
    
    
  5. Set your MySQL username and passwort in /opt/statusengine/cakephp/app/Config/database.php
    Naemon:
    
    
    <?php
    class DATABASE_CONFIG {
      public 
    $default = array(
          
    'datasource' => 'Database/Mysql',
          
    'persistent' => false,
          
    'host' => 'localhost',
          
    'login' => 'root',
          
    'password' => '123',
          
    'database' => 'statusengine',
          
    'prefix' => '',
          
    'encoding' => 'utf8',
      );
      public 
    $legacy = array(
          
    'datasource' => 'Database/Mysql',
          
    'persistent' => false,
          
    'host' => 'localhost',
          
    'login' => 'root',
          
    'password' => '123',
          
    'database' => 'naemon'//Change database from nagios to naemon!
          
    'prefix' => 'naemon_',  //Change prefix from nagios_ to naemon_!
          
    'encoding' => 'utf8',   //Set charset to UTF-8
      
    );
    Nagios:
    
    
    <?php
    class DATABASE_CONFIG {
      public 
    $default = array(
          
    'datasource' => 'Database/Mysql',
          
    'persistent' => false,
          
    'host' => 'localhost',
          
    'login' => 'root',
          
    'password' => '123',
          
    'database' => 'statusengine',
          
    'prefix' => '',
          
    'encoding' => 'utf8',
      );
      public 
    $legacy = array(
          
    'datasource' => 'Database/Mysql',
          
    'persistent' => false,
          
    'host' => 'localhost',
          
    'login' => 'root',
          
    'password' => '123',
          
    'database' => 'nagios',
          
    'prefix' => 'nagios_',
          
    'encoding' => 'utf8',  //Set charset to UTF-8
      
    );
  6. Create database tables
    
    yes | /opt/statusengine/cakephp/app/Console/cake schema update --plugin Legacy --file legacy_schema_innodb.php --connection legacy
    
    
  7. Enable Apache2 configuration
    
    cp apache2/sites-available/* /etc/apache2/sites-available/
    a2enmod rewrite
    a2ensite statusengine
    service apache2 restart
    
    
  8. Enable Statusengine's perfdata processor in /opt/statusengine/cakephp/app/Config/Statusengine.php
    If you don't want to use Statusengine to process your performance data (maybe you are using an other solution), you can skip this step!
    
    <?php
    //If you want, Statusengine's servicestatus workers are able to
    //process performacne data for you and save them to RRD files
    //so you don't need to install any additional software to
    //get the job done.
    'process_perfdata' => true//Change this value from false to true!
    
    mkdir -p /var/lib/pnp4nagios/perfdata
    
    
  9. Set the right path to naemonstats or nagiostats in /opt/statusengine/cakephp/app/Config/Interface.php
    Example:
    
    <?php
    // Path to naemonstats binary
    'naemonstats' => '/opt/naemon/bin/naemonstats',
  10. Fix your naemon.cfg or nagios.cfg
    Naemon:
    
    naemon_group=www-data
    
    
    Nagios:
    
    nagios_group=www-data
    
    
    Load Statusengine event broker:
    
    #Naemon:
    broker_module=/opt/statusengine/statusengine-naemon.o
    #Nagios:
    broker_module=/opt/statusengine/statusengine-nagios.o
    
    
    Disable process_performance_data - yes really disable it ;) (only if you use Statusengine as performance data processor!)
    
    process_performance_data=0
    
    
  11. Enable database clenup cronjob
    
    cp etc/cron.d/statusengine /etc/cron.d/statusengine
    
    

    Notice:

    Statusengine will delete status entries older X seconds out of your database.

    You can modify this values in   /opt/statusengine/cakephp/app/Config/Cronjob.php

  12. Finalize your setup
    
    update-rc.d statusengine defaults
    chown www-data:www-data /opt/statusengine/cakephp/app/tmp -R
    service statusengine start
    service naemon restart
    
    
  13. Navigate to http://xxx.xxx.xxx.xxx/statusengine with your favorite browser
    Username: admin
    Password:  admin

Optional steps

These steps are not required. But if you want you can extend the power of Statusengine Web Interface...

  1. Install pnp4nagios
    
    apt-get install -y pnp4nagios --no-install-recommends
    
    
  2. Enable Apache2 configuration for pnp4nagios
    
    a2ensite pnp4nagios.conf
    service apache2 restart
    
    

How to setup? (Ubuntu 16.04)

Notice:

This guide is made for Ubuntu 16.04!
Click here if you are on Ubuntu 14.04

  1. Install dependencies
    
    apt-get install mysql-server apache2 libapache2-mod-php gearman-job-server libgearman-dev gearman-tools uuid-dev php-cli php-dev libjson-c-dev manpages-dev build-essential rrdtool php-rrd php-mysqlnd php-gd unzip
    
    
  2. Download Statusengine
    Download and unzip/untar the latest version of Statusengine.
    First Version with Ubuntu 16.04 and PHP7 support is Statusengine 2.
  3. Execute basic installation
    
    cd statusengine-x.x.x/
    chmod +x install.sh
    ./install.sh
    
    
  4. Create MySQL databases
    Naemon:
    
    mysql -u root -p < sql/naemon.sql
    
    
    Nagios:
    
    mysql -u root -p < sql/nagios.sql
    
    
    Statusengine:
    
    mysql -u root -p < sql/statusengine.sql
    
    
  5. Set your MySQL username and passwort in /opt/statusengine/cakephp/app/Config/database.php
    Naemon:
    
    
    <?php
    class DATABASE_CONFIG {
      public 
    $default = array(
          
    'datasource' => 'Database/Mysql',
          
    'persistent' => false,
          
    'host' => 'localhost',
          
    'login' => 'root',
          
    'password' => '123',
          
    'database' => 'statusengine',
          
    'prefix' => '',
          
    'encoding' => 'utf8',
      );
      public 
    $legacy = array(
          
    'datasource' => 'Database/Mysql',
          
    'persistent' => false,
          
    'host' => 'localhost',
          
    'login' => 'root',
          
    'password' => '123',
          
    'database' => 'naemon'//Change database from nagios to naemon!
          
    'prefix' => 'naemon_',  //Change prefix from nagios_ to naemon_!
          
    'encoding' => 'utf8',   //Set charset to UTF-8
      
    );
    Nagios:
    
    
    <?php
    class DATABASE_CONFIG {
      public 
    $default = array(
          
    'datasource' => 'Database/Mysql',
          
    'persistent' => false,
          
    'host' => 'localhost',
          
    'login' => 'root',
          
    'password' => '123',
          
    'database' => 'statusengine',
          
    'prefix' => '',
          
    'encoding' => 'utf8',
      );
      public 
    $legacy = array(
          
    'datasource' => 'Database/Mysql',
          
    'persistent' => false,
          
    'host' => 'localhost',
          
    'login' => 'root',
          
    'password' => '123',
          
    'database' => 'nagios',
          
    'prefix' => 'nagios_',
          
    'encoding' => 'utf8',  //Set charset to UTF-8
      
    );
  6. Create database tables
    
    yes | /opt/statusengine/cakephp/app/Console/cake schema update --plugin Legacy --file legacy_schema_innodb.php --connection legacy
    
    
  7. Enable Apache2 configuration
    
    cp apache2/sites-available/* /etc/apache2/sites-available/
    a2enmod rewrite
    a2ensite statusengine
    systemctl restart apache2
    
    
  8. Enable Statusengine's perfdata processor in /opt/statusengine/cakephp/app/Config/Statusengine.php
    If you don't want to use Statusengine to process your performance data (maybe you are using an other solution), you can skip this step!
    
    <?php
    //If you want, Statusengine's servicestatus workers are able to
    //process performacne data for you and save them to RRD files
    //so you don't need to install any additional software to
    //get the job done.
    'process_perfdata' => true//Change this value from false to true!
    
    mkdir -p /var/lib/pnp4nagios/perfdata
    
    
  9. Set the right path to naemonstats or nagiostats in /opt/statusengine/cakephp/app/Config/Interface.php
    Example:
    
    <?php
    // Path to naemonstats binary
    'naemonstats' => '/opt/naemon/bin/naemonstats',
  10. Fix your naemon.cfg or nagios.cfg
    Naemon:
    
    naemon_group=www-data
    
    
    Nagios:
    
    nagios_group=www-data
    
    
    Load Statusengine event broker:
    
    #Naemon:
    broker_module=/opt/statusengine/statusengine-naemon.o
    #Nagios:
    broker_module=/opt/statusengine/statusengine-nagios.o
    
    
    Disable process_performance_data - yes really disable it ;) (only if you use Statusengine as performance data processor!)
    
    process_performance_data=0
    
    
  11. Enable database clenup cronjob
    
    cp etc/cron.d/statusengine /etc/cron.d/statusengine
    
    

    Notice:

    Statusengine will delete status entries older X seconds out of your database.

    You can modify this values in   /opt/statusengine/cakephp/app/Config/Cronjob.php

  12. Finalize your setup
    
    systemctl enable statusengine.service
    chown www-data:www-data /opt/statusengine/cakephp/app/tmp -R
    systemctl start statusengine
    systemctl restart cron
    /etc/init.d/naemon restart
    
    
    PS: Naemon also has a systemd service file.
  13. Navigate to http://xxx.xxx.xxx.xxx/statusengine with your favorite browser
    Username: admin
    Password:  admin

Try the Vagrant Box

You are not sure if Statusenigne is the right Web Interface for you? Or you just need a sandbox to play around?

Vagrant is an Open Source Software to deploy virtual machines.

Vagrant doesn't require any manual configuration! Everything is defined in a file called "Vagrantfile". Just download this file and run your own instance of Statusenigne.

Install VirtualBox and Vagrant on your system and download the Vagrantfile.
If you are using Ubuntu it's pretty easy:


sudo apt-get install vagrant virtualbox
mkdir statusengine-demo
cd statusengine-demo/
wget http://statusengine.org/Vagrantfile
vagrant up

If the virtual machine is ready you will see a welcome message with instructions how to continue.
You don't need to configure or install something. Everything work out of the box!

Open Source

Statusengine is a project I develop in my spare time. Everything is Open Source and you are welcomed to join development


Nagios, NDOUtils and the Nagios logo are trademarks, servicemarks, registered trademarks or registered servicemarks owned by Nagios Enterprises, LLC. All other trademarks, servicemarks, registered trademarks, and registered servicemarks are the property of their respective owner(s).
All other trademarks are property of their respective owners. Other product or company names mentioned may be trademarks or trade names of their respective owner.