NAGIOS NRPE MONITORING & EMAIL SETUP

Introduction

NRPE (Nagios Remote Plugin Executor) allows the Nagios Master server to monitor remote Linux Slave servers. This guide explains step-by-step configuration for monitoring and email alert setup.

Part 1: Monitor Slave from Master using NRPE

  1. Configure NRPE Daemon (Slave Server)
    • Open NRPE configuration file:
      nano /usr/local/nagios/etc/nrpe.cfg
    • Modify allowed_hosts:
      allowed_hosts=127.0.0.1,192.168.1.10
    • Restart NRPE:
      sudo systemctl restart nrpe
  2. Verify Connection from Master
    /usr/local/nagios/plugins/check_nrpe -H <Slave_IP_Address>
  3. Define Slave Host on Master
    nano /usr/local/nagios/etc/objects/slave.cfg
    define host{
        use                     linux-server
        host_name               Slave-Server-01
        alias                   My Remote Linux Host
        address                 <Slave_IP_Address>
        max_check_attempts      5
        check_period            24x7
        notification_interval   30
        notification_period     24x7
        contact_groups          admins
        register                1
    }
    
  4. Define Services
    # CPU Load
    define service{
        use                     generic-service
        host_name               Slave-Server-01
        service_description     CPU Load
        check_command           check_nrpe!check_load
    }
    
    # Current Users
    define service{
        use                     generic-service
        host_name               Slave-Server-01
        service_description     Current Users
        check_command           check_nrpe!check_users
    }
    
    # Root Disk Space
    define service{
        use                     generic-service
        host_name               Slave-Server-01
        service_description     Root Disk Space
        check_command           check_nrpe!check_disk
    }
    
  5. Enable Config & Restart Nagios
    nano /usr/local/nagios/etc/nagios.cfg
    cfg_file=/usr/local/nagios/etc/objects/slave.cfg
    sudo systemctl restart nagios

Part 2: Configure Email Notifications

  1. Install Mail Service

    Nagios requires an MTA like Postfix.

    echo "Test" | mail -s "Test Email" user@example.com
  2. Define Contact (contacts.cfg)
    define contact {
        contact_name                shanmugananthan
        use                         generic-contact
        alias                       shan
        email                       shan@example.com
        service_notification_period 24x7
        host_notification_period    24x7
        service_notification_options w,u,c,r,f,s
        host_notification_options   d,u,r,f,s
        service_notification_commands notify-service-by-email
        host_notification_commands  notify-host-by-email
    }
    
  3. Add Contact to Group
    define contactgroup{
        contactgroup_name admins
        alias             Nagios Administrators
        members           nagiosadmin,shanmugananthan
    }
    
  4. Apply Contact Group to Host
    define host {
        use             linux-server
        host_name       web-server-01
        alias           Web Server
        address         192.168.1.10
        contact_groups  admins
    }
    
  5. Verify & Restart
    /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    sudo systemctl restart nagios

Final Result