Nagios

If you wish to set up monitoring for your instance, you can do so with our Nagios Module:

https://github.com/cited/nagios-webmin-module

Nagios and nrpe client are produced by Nagios

Nagios Exchange provides plugins, addons, docs, extensions and other tools

Below are some of the main sections for setting up basic monitoring.

nagiso.cfg to register our geosuite.cfg file

# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg

# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/geosuite.cfg

commands.cfg

# Monitor GeoServer: Monitor web page in addition to Tomcat to insure GeoServer is accessible

define command {
    command_name   geoserver_URL
    command_line   /usr/local/nagios/libexec/check_http_content -U "http://domain.com/geoserver/web/" -m "Welcome"

}

# Monitor PostgreSQL using the check_postgres.pl plugin:

define command {
     command_name    check_postgres_connection
     command_line    /usr/local/nagios/libexec/check_postgres.pl  --dbservice=$HOSTADDRESS$ --action=connection
 }

# Monitor disk usage using custom script, check_diskspace (script is below)

define command {
    command_name    check_diskspace
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_diskspace

geosuite.cfg file

# Using Slack plugin to get notifications on Slack channel
# Using check_diskspace (see next section)

define host {
    use                          linux-server
    host_name                    geosuite
    alias                        geosuite
    address                      192.1.2.3
    register                     1
}

define service {
  host_name                       geosuite
  service_description             PING
  check_command                   check_ping!100.0,20%!500.0,60%
  max_check_attempts              2
  check_interval                  2
  retry_interval                  2
  check_period                    24x7
  check_freshness                 1
  contact_groups                  admins,slack
  notification_interval           2
  notification_period             24x7
  notifications_enabled           1
  register                        1
}

define service {
  host_name                       geosuite
  service_description             Disk Space
  check_command                   check_diskspace
  max_check_attempts              2
  check_interval                  2
  retry_interval                  2
  check_period                    24x7
  check_freshness                 1
  contact_groups                  admins,slack
  notification_interval           2
  notification_period             24x7
  notifications_enabled           1
  register                        1
}

define service {
  host_name                       geosuite
  service_description             Check SSH
  check_command                   check_ssh!-p 48316
  max_check_attempts              2
  check_interval                  2
  retry_interval                  2
  check_period                    24x7
  check_freshness                 1
  contact_groups                  admins,slack
  notification_interval           2
  notification_period             24x7
  notifications_enabled           1
  register                        1
}

define service {
  host_name                       geosuite
  service_description             Check HTTP
  check_command                   check_http
  max_check_attempts              2
  check_interval                  2
  retry_interval                  2
  check_period                    24x7
  check_freshness                 1
  contact_groups                  admins,slack
  notification_interval           2
  notification_period             24x7
  notifications_enabled           1
  register                        1
}

define service {
  host_name                       geosuite
  service_description             Check PostgreSQL
  check_command                   check_postgres_connection
  max_check_attempts              2
  check_interval                  2
  retry_interval                  2
  check_period                    24x7
  check_freshness                 1
  contact_groups                  admins,slack
  notification_interval           2
  notification_period             24x7
  notifications_enabled           1
  register                        1
}


define service {
  host_name                       geosuite
  service_description             GeoServer Status
  check_command                   geoserver_URL
  max_check_attempts              2
  check_interval                  2
  retry_interval                  2
  check_period                    24x7
  check_freshness                 1
  contact_groups                  admins,slackmins
  notification_interval           2
  notification_period             24x7
  notifications_enabled           1
  register                        1
}

You can find the PostgreSQL monitor plugin on Nagios Exchange.

For disk usage monitoring, you can use our check_diskspace script below:

#!/bin/bash

chkuse=$(df -h |grep '/' |grep -v 'VolGroup' |awk '{if ($6 == "") print $4,$5; else print $5,$6;}')

echo "${chkuse}" | grep -o '[0-9]*' | while read mounts
do
    if [ $mounts -gt 98 ]
      then
      echocrit=$(echo "${chkuse}" | grep $mounts)
      echo $crit "CRITICAL"
      exit 2
    elif [ $mounts -gt 95 ]
      then
      echowarn=$(echo "${chkuse}" | grep $mounts)
      echo $warn "WARNING"
      exit 1
    fi
done

wait
rc=$?

if [ $rc -eq 0 ]; then
    echo "OK"
fi

exit ${rc}