Info: Installing Nagios with Graph,SMS,NRPE,back-end Nconf as administration.

Posted on Updated on

Nagios is perfect monitoring tool used as watch dog of servers, we get alerts even we are not touch with internet using SMS service. We can also have good graph to  get report.

Pre-Installation:We have to check whether the pre-requirements are satisfied else follow the steps below.

OS Version

[root@nagios-server ~]# cat /etc/redhat-release
CentOS release 5.8 (Final)

Add additional offical centos repository.

[root@nagios-server ~]# mkdir /home/installer
[root@nagios-server installer]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
[root@nagios-server installer]# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
[root@nagios-server installer]# rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm

1.Nagios Installation

Dependencies :

yum install gcc glibc glibc-common gd gd-devel openssl openssl-devel

Pre-Installion steps

useradd -M nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache

Download-Packages

wget http://ncu.dl.sourceforge.net/project/nagios/nagios-3.x/nagios-3.4.4/nagios-3.4.4.tar.gz
wget http://nchc.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz
wget http://downloads.sourceforge.net/project/nconf/nconf/1.3.0-0/nconf-1.3.0-0.tgz
wget https://www.monitoringexchange.org/attachment/download/Artwork/Image-Packs/Base-Images/imagepak-base.tar.tar
wget http://sourceforge.net/projects/pnp4nagios/files/latest/download

Installation

tar -zxvf nagios-3.4.4.tar.gz
cd nagios
./configure –with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
tar -zxvf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure ; make ; make install
service httpd restart
service nagios restart

httpd://localhost/nagios

2.Nconf Installation

yum install mysql-server mysql mysql-devel php-common php-mysql
tar -zxvf nconf-1.3.0-0.tgz
cd nconf
cp -r nconf /usr/local/nagios/Admin
chown -R nagios.nagcmd /usr/local/nagios/
chmod 775 /usr/local/nagios/var/objects.cache
rm -rf /usr/local/nagios/etc/objects/*
cd /usr/local/nagios/Admin
chmod -R 775 config output static_cfg temp
echo "Alias /nagios/Admin /usr/local/nagios/Admin" >> /etc/httpd/conf.d/nagios.conf
tar -xvf imagepak-base.tar.tar
cp -r base/ /usr/local/nagios/share/images/logos/
chown -R nagios.nagcmd /usr/local/nagios/share/images/logos/

Create Mysql datace for Nconf

mysql> create database nconf;
mysql> grant all on nconf.* to ncfuser@localhost identified by 'Sedww#42'

http://localhost/nagios/Admin

Select ==> click here

Welcome to NConf setup

It shows that installation requirements are satisfied.

Select ==>Next

MySQL database configuration

DBHOST : localhost
DBNAME : nconf
DBUSER : ncfuser
DBPASS : Sedww#42

Select ==>Next

General Configuration
NCONFDIR : /usr/local/nagios/Admin
NAGIOS_BIN : /usr/local/nagios/bin/nagios
TEMPLATE_DIR : <No-change>

Select ==>Next

Authentication configuration

AUTH_ENABLED : TRUE (if you need authentication for Nconf)
AUTH_TYPE : file (password saved in a file)
file_admin_password : <Secreat>

Select ==>Next

Check if config files are present

Select ==>Finish

Error (No need to panic delete the files below from nagios)

– INSTALL
– INSTALL.php
– UPDATE
– UPDATE.php

cd /usr/local/nagios/Admin
rm -rf INSTALL INSTALL.php UPDATE UPDATE.php

Installation completed, refresh the browser and login with the user admin

Nagios settings deployment :

Edit the file and choose the type if deployment, here I select local deployment.

vi /usr/local/nagios/Admin/config/deployment.ini
;; LOCAL deployment ;;
[extract config]
type = local
source_file = "/usr/local/nagios/Admin/output/NagiosConfig.tgz"
target_file = "/tmp/"
action = extract
[copy collector config]
type = local
source_file = "/tmp/Default_collector/"
target_file = "/usr/local/nagios/etc/objects/Default_collector/"
action = copy
[copy global config]
type = local
source_file = "/tmp/global/"
target_file = "/usr/local/nagios/etc/objects/global/"
action = copy
reload_command = "/etc/rc.d/init.d/nagios reload"
;[copy nagios.cfg]
;type = local
;source_file = "/tmp/static_cfg/nagios.cfg"
;target_file = "/etc/nagios/nagios.cfg"
;action = copy
;reload_command = "sudo /etc/rc.d/init.d/nagios reload"

Deployment: Now you can see the Deploy button when you initiating “Generate Nagios config”. Please try the first nagios deployment.

Configuration Backup: Pre-installed addon comes with Nconf. Add the file in crontab and shadule the backup “/usr/local/nagios/Admin/ADD-ONS/backup_db.sh”

3 . Graph – PNP4Nagios

Installation

#yum -y install rrdtool rrdtool-perl php-gd
#tar -zxvf pnp4nagios-0.6.20.tar.gz
#cd pnp4nagios-0.6.20
#./configure && make all && make install-webconf && make install-config && make install-init && #make fullinstall
#service httpd restart
#mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.sample

Add the Custom Perfomance data

#vim /usr/local/nagios/etc/nagios.cfg
##########################
# service performance data
##########################
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
################################################
# host performance data starting with Nagios 3.0
################################################
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

Add below lines in command.cfg file

#vim /usr/local/nagios/etc/objects/commands.cfg
define command{
command_name process-service-perfdata-file
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
}
define command{
command_name process-host-perfdata-file
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
}

Reload Nagios to read new configurtaions.

#service nagios reload

Integration Graph with Nagios

Add the below line to templates.cfg

define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}

These two templates can now be included via “use srv-pnp” or “use host-pnp” for services and hosts respectively.

define host{
 use linux-server,host-pnp ; Name of host templates to use
 ; This host definition will inherit all variables that are defined
 ; in (or inherited by) the linux-server host template definition.
host_name localhost
alias localhost
address 127.0.0.1
}
define service{
use local-service,srv-pnp ; Name of service template to use
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

Popups

cp -r pnp4nagios-0.6.20/contrib/ssi/ /usr/local/nagios/share/ssi/
chown -R nagios. /usr/local/nagios/share/ssi/
chmod -x /usr/local/nagios/share/ssi/ *

Modify the templete that already created ad below.

define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}

After a restart of Nagios (after modifying the definitions) the result might look like this:

Graph

Advertisements

2 thoughts on “Info: Installing Nagios with Graph,SMS,NRPE,back-end Nconf as administration.

    aneesh said:
    October 30, 2013 at 10:37 pm

    how to get sms alerts from nagios/nconf

      Anand babu responded:
      November 19, 2013 at 4:04 pm

      You can get free python script configured for sending sms using 3rd party SMS gatway service. add the script as service in nagios , use the service for trigger alarm to get the update status. so you can receive sms in you mobile.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s