Nagios

From SME Server
Jump to navigationJump to search


Edit-find-replace.png Not reviewed:
This howto or contrib has not been reviewed and might contain code that could harm your installation. For more information on the review process have a look at the Development Review page.


Important.png Note:
Suggest looking at Zabbix which works for SME9.*


Important.png Note:
This contrib was only applied and used on fresh SME (server only mode) install. Conflicts with other installed packages were not examined. The author strongly recommend to install this monitoring system on a dedicated server. It is entirely possible to run it on a virtualized system, which monitors the host itself. In this case you should set up a second Nagios server (acting as a watchdog) on an independent hardware (physically or virtualized) to monitor the main Nagios system


Important.png Note:
This contrib does not work on SME8b6 as documented here, there are a few changes needed to the repository info and also the yum commands, also a change needs to be made to the location of the nagios.pid file in order for it run successfully after installation. There is an outstanding bug bugzilla:5539 which contains the necessary information.


Maintainer

Michael Weinberger


Introduction

Nagios is a host and service monitor designed to inform you of network problems before your clients, end-users or managers do. Read more...


This Nagios contrib installs Nagios Version 3 and was tested on fresh installed SME Server 7.3 It provides all packages needed to setup a SME Server as a central Nagios monitoring server including the graphical performance data analyser PNP4Nagios. (Applied this how-to on a fresh SME Server 7.4, works)

Nagios-screenshot-8.png Nagios-PNP-Screenshot.gif
Statusmap screenshot of a sample Nagios configuration PNP Screenshot (Source: www.pnp4nagios.org)


These packages are provided by the contrib. All other dependend packages will be installed via yum from the Centos and DAG repostitories.

Package Version Build date Purpose
smeserver-nagios 2.0.0-1 17 Nov 2008 Integrates Nagios service into the SME Server
smeserver-nagios-nrpe 2.0.0-1 17 Nov 2008 Integrates NRPE service into the SME Server
smeserver-nagios-nsca 2.0.0-1 17 Nov 2008 Integrates NSCA service into the SME Server (needed in a Distributed Installation)
smeserver-nagios-plugins-mysql 2.0.0-1 18 Nov 2008 Plugin that checks the mysqld service on a SME Server
smeserver-nagios-backup 2.0.0-1 17 Nov 2008 Nagios backup integration. Includes Nagios configuration and status data into the SME standard backup
nagios-plugins-temptrax 2.0.1-1 18 Nov 2008 Plugins for the Sensatronics Ethernet Temperature Devices E4/E16/F
nagios-plugins-esx3i 1.0.3-0 16 Nov 2008 Plugins to monitor ESXi servers that support the "Common Information Model (CIM)" protocol like Dell PowerEdge 29xx. Read more...
perl-Nagios-Plugin 0.17-1 19 Oct 2007 A family of perl modules to streamline writing Nagios plugins
nagios-of-plugins 0.9.4-1 08 Jul 2007 Additional plugins written by Gavin Carr of Open Fusion
nagios-plugins-generic 1.0.0 01 Nov 2007 A generic plugin. Read more...
nagios-nuvola-1.0.3.tar.gz 1.0.3 28 Oct 2007 Nuvola GUI theme
nagios-icons-nx-1.0.0.tar.gz 1.0.0 04 Nov 2007 Additional useful icons, including the SME logo

Download

Download the packages and files from http://mirror.contribs.org/smeserver/contribs/michaelw/sme7/Nagios3/packages/ manually or run the the script wgetall to download all in one go.

bash < wgetall

Installation

Important.png Note:
If you have the Nagios 2 contrib installed, follow the update instructions below


Configure the dag repositoy

You need to activate the Dag reposity before installing this contrib.

see dag repository

Installation of a central Nagios server

Intstalling the packages

/usr/bin/yum --enablerepo=dag install \
 nagios-plugins-setuid \
 perl-Config-Tiny
/usr/bin/yum --enablerepo=dag localinstall \
 smeserver-nagios-*.noarch.rpm \
 pnp-*.i386.rpm \
 smeserver-nagios-backup-*.noarch.rpm \
 perl-Nagios-Plugin-*.noarch.rpm \
 smeserver-nagios-plugins-mysql-*.noarch.rpm \
 nagios-plugins-generic-*.noarch.rpm \
 nagios-of-plugins-*.noarch.rpm \
 nagios-plugins-temptrax-*.el4.rf.i386.rpm \
 nagios-plugins-esx3i-*.el4.noarch.rpm

Use the configuration files from the smeserver-nagios package as a starting point. This provides a working configuration.

/bin/cp -ba /etc/nagios/nagios.cfg-smeserver /etc/nagios/nagios.cfg
/bin/cp -ba /etc/nagios/cgi.cfg-smeserver /etc/nagios/cgi.cfg

Configuring global access with password required

config set nagios service Name Nagios PublicAccess global-pw
expand-template /etc/httpd/conf/httpd.conf
service httpd-e-smith restart
service nagios restart

Test the installation by pointing your browser to https://IPADDRESS/nagios/

Browser login in as admin. After 10 minutes the performance data graphes are available. Click on on the 'star' icon next to the service name to view the graphes on a new page.

Install the VMware ESXi Server CIM Hardware Monitoring (optional)

If you plan to monitor an ESx3i server with CIM compliant hardware, you can configure the ESXi plugin

 /usr/bin/yum --enable=dag install openssl-devel perl-XML-SAX

Download and install the VMware Infrastructure (VI) Perl Toolkit

Ignore this warning: The following Perl modules were found on the system but may be too old to work with VIPerl: URI XML::NamespaceSupport

It does not affect the proper function of the nagios plugins.

To get some configuration hints run

rpm -qi nagios-plugins-esx3i
Install the Nuvola theme (optional)

The Nuvola theme provides a nice and modern GUI. The screenshot above was made with the Nuvola theme installed.

cd /usr/share/nagios
rm -rf config.js images index.html main.html side side.html stylesheets
cd -
tar --strip-path=1 -C /usr/share/nagios -xzf nagios-nuvola-*.tar.gz
chmod a+r -R /usr/share/nagios

Empty your browser cache and reload the Nagios page.

Integrate Ajaxterm in the Nuvola theme Home menu (optional)

Install the Ajaxterm contrib and run

patch -p0 /usr/share/nagios/side/dtree_data.js < dtree_data.js.patch

Empty your browser cache and reload the Nagios page.

Install additional logo icons (optional)

This installs a set of icons, including the SME server logo. The logos can be used in the hostextinfo{} sections. A preview of the logos can be found here.

tar --strip-path 1 -C /usr/share/nagios/images/logos -xzf nagios-icons-nx-*.tar.gz
chown nagios.root  /usr/share/nagios/images/logos/*
chmod 644  /usr/share/nagios/images/logos/*

Hints

  • Place all your configuration files in /etc/nagios/ in the sub-directories templates, host, services, etc.
  • Do not change the default pathes of log files, rrd files, etc.. The smeserver-nagios-backup RPM requires these settings to work properly.
  • Nagios 3 runs host checks that provides performance data. Add this action_url option to each host definiton:
action_url /nagios/pnp/index.php?host=$HOSTNAME$
  • Add this action_url option to service checks with performance data output
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
  • You can permit other users to access Nagios. Add them separated by a comma to the lines
authorized_for_system_information=admin
authorized_for_system_commands=admin
authorized_for_configuration_information=admin
authorized_for_all_hosts=admin
authorized_for_all_host_commands=admin
authorized_for_all_services=admin
authorized_for_all_service_commands=admin
  • It is a good idea to make your Nagios server as independent as possible from the infrastructure it monitors, i.e., use a dedicated hardware, network, mail- and pager system, firewall and internet connection if possible.
  • Consider to setup a second Nagios somewhere on your network, which monitors your central Nagios server. Then you need to install the NRPE also on the central server.

Update from Nagios 2 to Nagios 3

Before installing this contrib based on Nagios 3, remove all packages of the previous Nagios 2 installation

service nagios stop
service nagiosgrapher stop
/usr/bin/yum erase \
nagios-plugins-esx3i \
nagios-nrpe \
nagios-plugins-temptrax \
nagios-plugins \
nagios-of-plugins \
nagios-plugins-generic \
nagios  smeserver-nagios-nrpe \
smeserver-nagios \
smeserver-nagios-plugins-mysql \
nagios-plugins-nrpe  \
nagios-plugins-setuid \
smeserver-nagiosgrapher \
smeserver-nagios-backup

Remove all NagiosGrapher rrd data. It is not possible to tranfer the existing NagiosGrapher data to PNP.

rm -rf /var/lib/nagios/*

Backup your Nagios configuration data

cp -a /etc/nagios /etc/nagios.v2

Delete Nagios configuration data

rm -rf /etc/nagios 

Move the retention data to the new Nagios 3 loaction

mkdir -p /var/nagios/
mv /var/log/nagios/retention.dat /var/nagios/

Now install this contrib following the instructions in chapter 'Installation'

service nagios stop

Delete the default configuration files

cd /etc/nagios
rm -rf commands/default.cfg \
  objects \
  contacts/contacts.cfg \
  hostgroups/default.cfg \
  hosts/localhost.cfg \
  servicegroups/default.cfg \
  services/localhost.cfg \
  templates/default.cfg \
  timeperiods/default.cfg

Copy your saved configuration files to /etc/nagios. When you place them into the pre-defined directories contacts, services, hostgroups, templates, commands, hosts, servicegroups, and timeperiods you don't need to adjust nagios.cfg.

Review your config files and do the following

  • add use host-pnp to your generic host definition to add an action url for PNP to all hosts.
  • for all services that output performance data add action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ to your service template definitions
  • move all options from hostextinfo definition (except host_name and action_url) to host definition. Delete the hostextinfo definition.
  • do the same for serviceextinfo definitons

When done check your config

nagios -v /etc/nagios/nagios.cfg

and finally start the service

service nagios start

Backup and Restore

With the smeserver-nagios-backup RPM installed all Nagios and PNP configuration data, status data and archives are included in the SME Server standard backup. In the pre-backup event those data are copied to the /home/e-smith/db/nagios/ directory. As the nagios service is stopped during copying it is recommended to configure Nagios to save its scheduling info (next check time) for hosts and services in a file and use this at startup. Otherwise Nagios would re-schedule all checks spreaded over the timeframe defined by max_service_check_spread and max_host_check_spread (default 30 min). As a result you would have gaps in checking and visible gaps in the PNP graphes.

in /etc/nagios/nagios.cfg set:

retain_state_information=1
state_retention_file=/var/nagios/retention.dat
use_retained_program_state=1
use_retained_scheduling_info=1

When doing a restore, the data from /home/e-smith/db/nagios/ are copied back to their original locations in the bootstrap-console-save event.

Uninstall

This removes the installed Nagios packages.

service nagios stop
rpm -e \
nagios-of-plugins \
nagios-plugins-esx3i \
nagios-plugins-generic \
nagios-plugins-temptrax \
perl-Nagios-Plugin \
pnp \
smeserver-nagios \
smeserver-nagios-backup \
smeserver-nagios-nrpe \
smeserver-nagios-nsca \
smeserver-nagios-plugins-mysql \
nagios-plugins-setuid \
perl-Config-Tiny

Remvove the dependencies if not needed by other contribs

rpm -e \
fping \
gd \
libart_lgpl \
libmcrypt \
nagios \
nagios-nrpe \
nagios-nsca \
nagios-nsca-client \
nagios-plugins \
nagios-plugins-nrpe \
perl-Class-Accessor \
perl-Crypt-DES \
perl-Math-Calc-Units \
perl-Net-SNMP \
perl-Params-Validate \
perl-rrdtool \
rrdtool \
xinetd 

Ignore the warnings about non-existing user nagios and group nagios.

expand-template /etc/httpd/conf/httpd.conf
service httpd-e-smith restart

References