How to install Nagios with Nconf

Nagios Core, is a free and open source computer-software application that monitors systems, networks and infrastructure. Nagios offers monitoring and alerting services for servers, switches, applications and services. It alerts users when things go wrong and alerts them a second time when the problem has been resolved.

NConf is a PHP based web-tool for configuring the Nagios monitoring software. It differs from similar tools by offering enterprise-class features like templates, dependencies and the ability to configure a large-scale, distributed Nagios topology.

This tutorial explains the detailed steps for configuring Nagios with Nconf.


Step1: Install LAMP server and complete the configurations

Step2: Install the dependent packages

#yum install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel unzip


Step1: Create nagios user and assign group

#useradd nagios

#groupadd nagcmd

#usermod -a -G nagcmd nagios

Step2: Download the latest version of nagios core from ""


Step3: Extract the downloaded package

#tar xvf nagios-*.tar.gz

Step4: Change the location to extracted folder

#cd nagios-*

Step5: Compile and install the package

#./configure --with-command-group=nagcmd

#make all

#make install

#make install-commandmode

#make install-init

#make install-config

#make install-webconf

#usermod -G nagcmd apache


Step1: Download the nagios plugin source from ""


Step2: Extract the downloaded package

#tar xvf nagios-plugins-*.tar.gz

Step3: Change the location to extracted folder

#cd nagios-plugins-*

Step4: Compile and install the package

#./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl


#make install


Step1: Download the nrpe source from ""


Step2: Extract the downloaded package

#tar xvf nrpe-*.tar.gz

Step3: Change the location to extracted folder

#cd nrpe-*

Step4: Compile and install the package

#./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

#make all

#make install

Step5: Copy the nrpe sample configuration file

#cp sample-config/nrpe.cfg /usr/local/nagios/etc

Step6: Start nrpe service

#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d


Note: If going to use Nconf for management, you can skip this section and continue with Nconf configuration.

Step1: Open nagios configuration file

#vi /usr/local/nagios/etc/nagios.cfg

Step2: Uncomment the following line and save the file


Step3: Create folder for saving the hosts configuration files

#mkdir /usr/local/nagios/etc/servers

Step4: Open contact configuration file

#vi /usr/local/nagios/etc/objects/contacts.cfg

Step5: Update the contact email address

#email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

Step6: Open command configuration file

#vi /usr/local/nagios/etc/objects/commands.cfg

Step7: Add nrpe check command at the end of the file and save it

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

Step8: Configure htacces authentication

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

Step9: Open new file for savinf the details for new host

#vi /usr/local/nagios/etc/servers/yourhost.cfg

Step10: Update the details for new host (sample syntax given below)

define host {
use linux-server
host_name yourhost
alias My first Apache server
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7

define service {
use generic-service
host_name yourhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%

define service {
use generic-service
host_name yourhost
service_description SSH
check_command check_ssh
notifications_enabled 0

Step11: Verify nagios configuration file syntax

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

Step12: Start the nagios service

#/etc/init.d/nagios start
That's all.. now the nagios web interface is available in the url "http://serveripaddress/nagios"


Step1: Download the latest version of Nconf from ""


Step2: Extract the downloaded package

#tar xvf nconf*.tgz

Step3: Move the extracted nconf folder to nagios document root

#mv -vf nconf /usr/local/nagios/share/

Step4: Assign permissions to the webserver user on nconf folder. Note that the webserver user will be different on different distributions

#chown -R nobody.nobody /usr/local/nagios/share/nconf

Step5: Assign execute permission to nagios binary file

#chmod 777 /usr/local/nagios/bin/nagios

Step6: Create mysql database, user for nconf and assign privileges

Step7: Browse the weburl "http://nconf_server_ip/nagios/nconf/INSTALL.php" and complete the installation

Step8: Open the nagios configuration file

#vi /usr/local/nagios/etc/nagios.cfg

Step9: Comment out all Nagios default configuration files

# You can specify individual object config files as shown below:
# Definitions for monitoring the local (Linux) host
# Definitions for monitoring a Windows machine
# Definitions for monitoring a router/switch
# Definitions for monitoring a network printer

Step10: Add nconf configuration directories and save the nagios configuration file


Step11: Create deployment configuration for Nconf

#vi /usr/local/nagios/share/nconf/config/deployment.ini

Step12: Update the below content and save the file

;; LOCAL deployment ;;
[deploy config]
type = local
source_file = "/usr/local/nagios/share/nconf/output/NagiosConfig.tgz"
target_file = "/usr/local/nagios/etc/"
action = extract
reload_command = sudo /etc/init.d/nagios restart

Step13: Add nagios reload command to apache user and remove the default reuiqre tty setting in sudo configuration file

#Defaults requiretty
apache ALL = NOPASSWD: /etc/init.d/nagios restart

Step14: Copy Nagios images to the right directory

#cp -a /usr/local/nagios/share/images/logos /tmp/base
#mv /tmp/base /usr/local/nagios/share/images/logos/base

Step15: Browse to http://nconf_server_ip/nagios/nconf and generate and deploy nagios configuration files

Now we can manage the Nagios configurations via Nconf web url.


Leave a Reply