Nagios Monitoring

Continuous Monitoring with Nagios

Lesson 1 of 3 · 8 min · Beginner

Nagios is an industry-standard open-source tool used to continuously monitor network devices, applications, and servers. Its powerful core engine can scale to monitor thousands of hosts efficiently.

What You Can Monitor

Nagios provides deep visibility into your infrastructure, alerting you the second a critical service fails or a server starts running out of resources.

End-to-End Visibility

• Server Resources: CPU load, memory utilization, disk space.
• Network Services: HTTP, FTP, SMTP, SSH, Ping.
• Infrastructure: Routers, switches, applications, databases, and system logs.

Fast Notifications

Sends alerts via email, SMS, or custom integrations immediately after detecting issues, minimizing downtime.

Custom Plugins

Highly flexible architecture supports plugins written in bash, Python, PHP, or Perl to monitor absolutely anything.

How Nagios Works

The Nagios ecosystem relies on a central server scheduling checks and distributed plugins executing the actual metric collection on remote machines.

Core Components

  • Nagios Server Installed on the main host, it runs the core monitoring engine, scheduling, and web interface.
  • NRPE Daemon Nagios Remote Plugin Executor: An agent installed on remote Linux servers that allows the central server to securely execute local plugins.
  • Plugins Compiled executables or scripts that do the actual work of collecting metrics (e.g., checking disk space).
  • Scheduler The internal clock of Nagios that determines when to execute plugins based on user-defined intervals.

Checks & The Monitoring Flow

Active Checks

Nagios dictates the schedule. The central server initiates the check, connects to the remote service (often via NRPE), and pulls the status back.

Passive Checks

External applications or remote hosts initiate the process, pushing status information back to the Nagios server asynchronously. Great for firewall-restricted environments.

The Active Monitoring Workflow

  • 1. Schedule Nagios Scheduler triggers a check event based on time periods.
  • 2. Execute Nagios reaches out and executes the corresponding Plugin.
  • 3. Collect The Plugin interrogates the system and collects the raw metric data.
  • 4. Return Status code (OK, WARNING, CRITICAL, UNKNOWN) is returned to Nagios.
  • 5. Process & Alert Nagios processes the result and fires off notifications if an issue is detected.

Directories & Configuration

/usr/local/nagios/
nagios/
├── bin       # Main Nagios daemon binary
├── etc       # All configuration files (.cfg)
├── libexec   # Plugins used for monitoring (CRITICAL)
├── sbin      # CGI executables for web interface
├── share     # Web interface HTML and PHP files
└── var       # Runtime data, status.dat, and logs
Important FilePurpose / Definition
nagios.cfgMain config file defining global settings and including other files.
resource.cfgStores sensitive info securely, like database passwords (e.g., $USER1$).
commands.cfgMaps command names to actual plugin execution strings.
contacts.cfgDefines the users and email addresses that receive alert notifications.
templates.cfgDefines generic host/service templates to reduce code duplication.
timeperiods.cfgDefines valid monitoring hours (e.g., 24x7, or WorkHours only).
cgi.cfgControls web interface access, permissions, and behavior.
.htpasswdApache file that secures the Nagios web UI with login credentials.