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}