Install & configuration for Nagios & Nagios Client (NRPE) on CentOS 5

Install

Add RPMForge Yum Repository

It is recommended that you configure yum-priorities prior to following this tutorial to avoid having base CentOS packages being overwritten by the RPMForge repository. Instructions to do so can be found on the CentOS Wiki.

Install & Configure Prerequisites

  • Install Apache
    • yum install httpd php gcc glibc glibc-common gd gd-devel
  • Configure Apache to start on boot
    • chkconfig httpd on
  • Configure iptables to allow Apache traffic
    • /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    • /etc/init.d/iptables save
    • /etc/init.d/iptables restart

Install  Nagios & Nrpe

  • Install Nagios (Server Side)

    [mylogin@hostname nagios]# yum install nagios nagios-plugins nagios-plugins-nrpe nagios-devel

  • Install Nagios (Client Side)

[mylogin@hostname nagios]# yum install nagios nagios-plugins nagios-plugins-nrpe nagios-devel nagios-nrpe

  • Create the default Nagios web access user & set a password
    • htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
  • Verify default config files
    • nagios -v /etc/nagios/nagios.cfg
  • Start Nagios
    • /etc/init.d/nagios start
  • Start Apache
    • /etc/init.d/httpd start

Verify Install

  • Try logging into your new Nagios installation by going to http://YourIpAddress/nagios/ and logging in with nagiosadmin and the password you set.

Nagios Server Configuration

Before starting any configuration make it a habit to backup all configuration files. This will save us a lot of time in troubleshooting. Having a backup will also allow us to restore the most recent configuration to the system. We can also make the backup configuration as a future reference in case we need something :

[mylogin@hostname nagios]# cd /etc
[mylogin@hostname nagios]# cp -frp nagios nagios.backup-<date>
[mylogin@hostname nagios]# cp -rf /etc/nagios/objects/localhost.cfg /etc/nagios/objects/server1.cfg
[mylogin@hostname nagios]# chown -R nagios:nagios server1.cfg
[mylogin@hostname nagios]# nano /etc/nagios/objects/server1.cfg

define host{
use                     linux-server            ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name               server1
alias                   server1
address                 your client server ip
}
define hostgroup{
hostgroup_name  server1-servers ; The name of the hostgroup
alias           server1 Servers ; Long name of the group
members         server1     ; Comma separated list of hosts that belong to this group
}
define service{
use                             local-service         ; Name of service template to use
host_name                       server1
service_description             PING
check_command            check_ping!100.0,20%!500.0,60%
}

define service{
use                             local-service         ; Name of service template to use
host_name                       server1
service_description             Root Partition
check_command            check_local_disk!20%!10%!/
}

define service{
use                             local-service         ; Name of service template to use
host_name                       server1
service_description             Current Users
check_command            check_local_users!20!50
}

define service{
use                             local-service         ; Name of service template to use
host_name                       server1
service_description             Total Processes
check_command            check_local_procs!250!400!RSZDT
}

# Define a service to check the load on the local machine.

define service{
use                             local-service         ; Name of service template to use
host_name                       server1
service_description             Current Load
check_command            check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
}

define service{
use                             local-service         ; Name of service template to use
host_name                       server1
service_description             Swap Usage
check_command            check_local_swap!20!10
}

define service{
use                             local-service         ; Name of service template to use
host_name                       server1
service_description             SSH
check_command            check_ssh
notifications_enabled        0
}

define service{
use                             local-service         ; Name of service template to use
host_name                       server1
service_description             HTTP
check_command            check_http
notifications_enabled        0
}
Your Configuration will be like this . Now save that config.

[mylogin@hostname nagios]#service nagios restart
[mylogin@hostname nagios]# chkconfig nagios on
[mylogin@hostname nagios]# service nrpe restart
[mylogin@hostname nagios]# chkconfig nrpe on
[mylogin@hostname nagios]# nagios -v /etc/nagios/nagios.cfg

Nagios Client Configuration

[mylogin@hostname nagios]# nano /etc/nagios/nrpe.cfg
change server_address=127.0.0.1 to your nagios server ip
[mylogin@hostname nagios]# service nagios restart
[mylogin@hostname nagios]# chkconfig nagios on
[mylogin@hostname nagios]# service nrpe restart
[mylogin@hostname nagios]# chkconfig nrpe on