Monitor CentOS 7 / RHEL 7 using Nagios 4.0.7

NagiosNagios is the most widely used open source monitoring tools which help us to monitor the services and application that run’s on Windows,Linux,Routers and other network devices. With the help of Nagios you can monitor basic services and attributes. We can access the Nagios using web interface coming with the bundle and configuration need to be done on the file level.

Whats New:

  • Core Workers are lightweight process whose job is to perform checks, due to this they do perform checks much more quickly than the old process.
  • Nagios Core process using in-memory techniques, eliminating the disk I/O latencies that could previously slow things down in large installation.
  • Each configuration item is verified only once.
  • The host address attribute is now optional.
  • Bothe hosts and services now supports an hourly value attribute.

More feature can be found here.

Services List:

This Tutorial describes how can you monitor “private” services and attributes of Linux/UNIX servers, such as:


  • CPU load
  • Memory usage
  • Disk usage
  • Logged in users
  • Running processes
  • etc.

Private Services:

  • HTTP
  • FTP
  • SSH
  • SMTP
  • etc


Before installing the Nagios, system need to meet the requirements for installing Nagios; So install the Web Server (httpd) , PHP ,compilers and development libraries. Install all with single command.
yum -y install httpd php gcc glibc glibc-common gd wget perl
Create nagios user and nagcmd group (allowing the external commands to be executed through the web interface) , add the nagios and apache user to the part of nagcmd group.
useradd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache

Download latest Nagios Core.

cd /tmp/
tar -zxvf /tmp/nagios-4.0.7.tar.gz
cd /tmp/nagios-4.0.7/

Compile and Install Nagios:

./configure --with-nagios-group=nagios --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf

Configure Nagios:

Sample configuration files have now been installed in the /usr/local/nagios/etc directory. These sample files should work fine for getting started with Nagios. You’ll need to make just one change before you proceed…

Edit the /usr/local/nagios/etc/objects/contacts.cfg config file with your favorite editor and change the email address associated with the nagiosadmin contact definition to the address you’d like to use for receiving alerts.

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

Change the Email address field to receive the notification.

define contact{
contact_name nagiosadmin ; Short name of userus
generic-contact ; Inherit default values from generic-contact template (defined above)
alias Nagios Admin ; Full name of useremail ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

Configure Web Interface:

Create a nagiosadmin account for logging into the Nagios web interface. Remember the password that you assign to this user – you’ll need it later.

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

Restart Apache to make the new settings take effect.

systemctl restart httpd.service

Download and Install Nagios Plugins:

Download Nagios Plugins to /tmp directory.

cd /tmp
tar -zxvf /tmp/nagios-plugins-2.0.3.tar.gz
cd /tmp/nagios-plugins-2.0.3/

Compile and install the plugins.

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make install

Starting Nagios:

Verify the sample Nagios configuration files.

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

If there are no errors, start Nagios.

/etc/init.d/nagios start

Start nagios on system startup.

chkconfig nagios on

SELinux Settings:

See if SELinux is in Enforcing mode.


Put SELinux on Permissive mode.

setenforce 0

To make this change permanent, you’ll have to modify the settings in /etc/selinux/config and reboot.


Make sure to allow web server access through firewall.

firewall-cmd –permanent –zone=public –add-service=http
firewall-cmd –reload

Access Web Interface:

Now access the Nagios web interface using the following URL. You’ll be prompted for the username (nagiosadmin) and password you specified earlier.

CentOS 7 - Nagios 4.0.7 DashBoard
CentOS 7 – Nagios 4.0.7 DashBoard

Thats All.


Auto start the services at system start-up.

systemctl enable httpd.service
chkconfig nagios on


Share This Post

  • Ahmed

    Hi Raj,

    i just have installed nagios, and it worked fine, but after restarting the centos VM. i was not able to login to nagios. i followed all your steps and after that i was able to login. but when i did the restart again and wasnt able to login to nagios.
    would you be able to guide me through what could be the issue.

    • Raj

      Dear Ahmed,

      I have updated the article, the following has been added extra in article.
      Auto start the services, Iptables entry, Make sure to disable selinux

      PS: Let me know

      • Ahmed

        Thanks Raj,
        yes that was the issue, and now it works fine.Thanks

  • space-hunter

    for check_http with SSL enabled,
    you have to install openssl-devel befor compile the nagios-plugins
    yum -y install openssl-devel