Skip to main content

Nagios

note

Commands tested on version Core 4.3.

Check connectivity with nrpe agent

From the nagios server.

/usr/local/nagios/libexec/check_nrpe -H targetHostAddress

Check main config file for errors

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nrpe

Example nrpe checks from nrpe.cfg

command[check_ping]=/usr/lib/nagios/plugins/check_ping -H 127.0.0.1 -w 100.0,20% -c 500.0,60%
command[check_ssh]=/usr/lib/nagios/plugins/check_ssh -H 127.0.0.1
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_root]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p /
command[check_opt]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p /opt
command[check_var]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p /var
command[check_boot]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p /boot
command[check_swap]=/usr/lib/nagios/plugins/check_swap -w 10% -c 5%
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 350 -c 500
command[check_http]=/usr/lib/nagios/plugins/check_http -H localhost -w 45 -c 60

Use nrpe

Include in commands.cfg

define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
note

nrpe package must be installed on the host and the target servers.

Install from source on SLES 12 SP2

Enable additional repos, install dependencies

SUSEConnect -p sle-sdk/12.2/x86_64
SUSEConnect -p sle-module-web-scripting/12/x86_64
zypper in autoconf gcc glibc make wget unzip apache2 apache2-utils php5 apache2-mod_php5 gd gd-devel

Add to DirectoryIndex section in apache .conf files

index.html index.cgi index.pl index.php index.xhtml index.htm

Load apache module for php5

a2enmod php5
sudo systemctl restart apache2

Configure and compile source

cd /tmp
wget -O nagioscore.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.3.2.tar.gz
tar xzf nagioscore.tar.gz

cd /tmp/nagioscore-nagios-4.3.2/
./configure --with-httpd-conf=/etc/apache2/vhosts.d
make all

Create user and group

useradd nagios
groupadd nagios
usermod -a -G nagios nagios
usermod -a -G nagios wwwrun

Install files and enable services

make install
make install-init
systemctl enable nagios

make install-commandmode
make install-config
make install-webconf
systemctl enable apache2

Set web admin password

htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Start services

systemctl start nagios

Build & install nagios plugins

zypper in autoconf gcc glibc libmcrypt-devel make libopenssl-devel wget gettext gettext-runtime automake net-snmp perl-Net-SNMP

wget --no-check-certificate -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz
tar zxf nagios-plugins.tar.gz

cd /tmp/nagios-plugins-release-2.2.1/
sudo ./tools/setup
sudo ./configure
sudo make
sudo make install

Send email notifications with postfix and a different mail server

/etc/postfix/main.cf should contain:

relayhost = your_smtp_relay_address

Add to commands.cfg:

'notify-host-by-email' command definition
'notify-service-by-email' command definition

From address can be added to mail command with:

-r "mail@dir"