Nagios Core

If you like this project, consider supporting me on Buy Me a Coffee ☕️

Nagios Core Sysadmin Cheatsheet

Nagios Core is an open-source IT infrastructure monitoring system originally developed by Ethan Galstad in 1999. It provides monitoring of hosts, services, and network devices with alerting capabilities. Nagios pioneered the modern monitoring landscape and inspired many successors.

Common use cases / Типичные сценарии: Host/service availability monitoring, network device monitoring, alerting via email/SMS/Slack, performance data collection, SLA reporting.

Status / Статус: Nagios Core is still maintained but is considered a legacy monitoring solution. Modern alternatives include Checkmk (Nagios evolution with auto-discovery), Zabbix (enterprise-grade, auto-discovery), Prometheus + Grafana (cloud-native, metrics-focused), Icinga 2 (modern Nagios fork with improved configuration and API).

Default ports / Порты по умолчанию: 80/443 (Web UI via Apache), 5666/tcp (NRPE agent), 5667/tcp (NSCA passive checks)


📚 Table of Contents / Содержание

  1. Installation & Configuration
  2. Core Management
  3. Sysadmin Operations
  4. NRPE Remote Monitoring
  5. Security
  6. Maintenance
  7. Troubleshooting & Tools
  8. Logrotate Configuration

1. Installation & Configuration

Install Nagios Core / Установка Nagios Core

# RHEL/AlmaLinux — install from EPEL or compile from source
# Установка из EPEL или компиляция из исходников
dnf install epel-release
dnf install nagios nagios-plugins-all nagios-plugins-nrpe

# Debian/Ubuntu
apt install nagios4 nagios-plugins nagios-nrpe-plugin

# From source (any distro) / Из исходников
wget "https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.5.0/nagios-4.5.0.tar.gz"
tar -xzf nagios-4.5.0.tar.gz
cd nagios-4.5.0
./configure --with-httpd-conf=/etc/apache2/sites-enabled
make all
make install install-init install-commandmode install-config install-webconf

Main Config Files / Основные файлы конфигурации

Root directory: /usr/local/nagios/etc/ or /etc/nagios/

File Description / Описание
nagios.cfg Main configuration / Основной конфиг
objects/commands.cfg Command definitions / Определения команд
objects/contacts.cfg Contact definitions / Определения контактов
objects/localhost.cfg Local host monitoring / Мониторинг локальной машины
objects/templates.cfg Object templates / Шаблоны объектов
cgi.cfg CGI/Web interface config / Конфиг веб-интерфейса
resource.cfg User macros ($USERn$) / Пользовательские макросы

Host Definition Example / Пример определения хоста

/usr/local/nagios/etc/objects/servers.cfg

define host {
    use                     linux-server
    host_name               <HOST>
    alias                   Production Server
    address                 <IP>
    max_check_attempts      5
    check_period            24x7
    notification_interval   30
    notification_period     24x7
}

define service {
    use                     generic-service
    host_name               <HOST>
    service_description     PING
    check_command           check_ping!100.0,20%!500.0,60%
}

define service {
    use                     generic-service
    host_name               <HOST>
    service_description     SSH
    check_command           check_ssh
}

User Management / Управление пользователями (Web UI)

Using htpasswd for Basic Auth. / Использование htpasswd для Basic Auth.

# Create initial nagiosadmin user / Создать начального пользователя nagiosadmin
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

# Add new user / Добавить нового пользователя
htpasswd /usr/local/nagios/etc/htpasswd.users <USER>

# Don't forget to add contacts in objects/contacts.cfg / Не забудьте добавить контакты в contacts.cfg

2. Core Management

Verify Config / Проверка конфигурации

[!IMPORTANT] Always verify configuration before restarting Nagios. A bad config will prevent the service from starting. / Всегда проверяйте конфигурацию перед перезапуском.

# Validate configuration / Проверить конфигурацию
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

# Quick test (returns exit code 0 on success) / Быстрый тест
nagios -v /etc/nagios/nagios.cfg && echo "Config OK" || echo "Config ERROR"

Service Control / Управление сервисом

systemctl start nagios     # Start / Запустить
systemctl stop nagios      # Stop / Остановить
systemctl restart nagios   # Restart / Перезапустить
systemctl reload nagios    # Reload config / Перезагрузить конфиг
systemctl enable nagios    # Enable on boot / Автозапуск
systemctl status nagios    # Check status / Проверить статус

3. Sysadmin Operations

Plugins / Плагины

Nagios plugins are located in /usr/local/nagios/libexec/ or /usr/lib64/nagios/plugins/.

# Test Ping / Тест пинга
./check_ping -H <HOST> -w 100.0,20% -c 500.0,60% -p 5

# Test HTTP / Тест HTTP
./check_http -H <HOST> -u /

# Test Disk / Тест диска
./check_disk -w 20% -c 10% -p /

# Test SMTP / Тест SMTP
./check_smtp -H <HOST>

# Test DNS / Тест DNS
./check_dns -H <HOST> -s <DNS_SERVER>

# Test TCP port / Тест TCP порта
./check_tcp -H <HOST> -p 443

Important Paths / Важные пути

Path Description / Описание
/usr/local/nagios/etc/ Configuration directory / Каталог конфигурации
/usr/local/nagios/var/ State and log data / Данные состояния и логи
/usr/local/nagios/var/nagios.log Main log / Основной лог
/usr/local/nagios/var/retention.dat State retention file / Файл сохранения состояния
/usr/local/nagios/var/status.dat Current status / Текущий статус
/usr/local/nagios/var/rw/nagios.cmd External command pipe / Канал внешних команд
/usr/local/nagios/libexec/ Plugins / Плагины
/usr/local/nagios/share/ Web UI files / Файлы веб-интерфейса

Log Monitoring / Мониторинг логов

# Follow main log / Следить за основным логом
tail -f /usr/local/nagios/var/nagios.log

# Search for errors / Поиск ошибок
grep -i error /usr/local/nagios/var/nagios.log | tail -20

# Check notification history / Проверить историю уведомлений
grep NOTIFICATION /usr/local/nagios/var/nagios.log | tail -20

Firewall Configuration / Настройка фаервола

# Allow web UI / Разрешить веб-интерфейс
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

# Allow NRPE / Разрешить NRPE
firewall-cmd --permanent --add-port=5666/tcp

# Allow NSCA (passive checks) / Разрешить NSCA (пассивные проверки)
firewall-cmd --permanent --add-port=5667/tcp
firewall-cmd --reload

4. NRPE Remote Monitoring

NRPE Architecture / Архитектура NRPE

Component Description / Описание
NRPE Plugin (Server) Installed on Nagios server, sends commands / На сервере Nagios
NRPE Daemon (Client) Installed on remote host, executes checks / На удалённом хосте

Install NRPE Agent / Установка агента NRPE

# On monitored host / На контролируемом хосте
dnf install nrpe nagios-plugins-all    # RHEL/AlmaLinux
apt install nagios-nrpe-server nagios-plugins   # Debian/Ubuntu

NRPE Configuration / Конфигурация NRPE

/etc/nagios/nrpe.cfg

# Allow Nagios server IP / Разрешить IP сервера Nagios
allowed_hosts=127.0.0.1,<NAGIOS_SERVER_IP>

# Command definitions / Определения команд
command[check_load]=/usr/lib64/nagios/plugins/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w 250 -c 400
# Start NRPE service / Запустить NRPE
systemctl enable --now nrpe

Check NRPE Status / Проверка статуса NRPE

Run from Nagios Server to Client. / Запуск с сервера Nagios на клиент.

# Check NRPE connection / Проверить подключение NRPE
/usr/local/nagios/libexec/check_nrpe -H <CLIENT_IP>
# Expected output: NRPE v4.x.x

# Run remote check / Запустить удалённую проверку
/usr/local/nagios/libexec/check_nrpe -H <CLIENT_IP> -c check_load
/usr/local/nagios/libexec/check_nrpe -H <CLIENT_IP> -c check_disk

5. Security

Web UI Authentication / Аутентификация веб-интерфейса

# Change nagiosadmin password / Сменить пароль nagiosadmin
htpasswd /usr/local/nagios/etc/htpasswd.users nagiosadmin

NRPE Security / Безопасность NRPE

[!WARNING] Always restrict allowed_hosts in NRPE config to your Nagios server IP only. An unrestricted NRPE allows remote command execution. / Всегда ограничивайте allowed_hosts только IP сервера Nagios.

# In nrpe.cfg / В nrpe.cfg
allowed_hosts=127.0.0.1,<NAGIOS_SERVER_IP>
dont_blame_nrpe=0    # Disable command arguments / Отключить аргументы команд (безопасно)

6. Maintenance

Acknowledge Alert (CLI) / Подтверждение алерта (CLI)

Via external command file (cmd.cgi). / Через файл внешних команд.

# Acknowledge host problem / Подтвердить проблему хоста
now=$(date +%s)
commandfile='/usr/local/nagios/var/rw/nagios.cmd'
printf "[%lu] ACKNOWLEDGE_HOST_PROBLEM;<HOST>;1;1;1;<USER>;Admin Ack\n" $now > $commandfile

# Acknowledge service problem / Подтвердить проблему сервиса
printf "[%lu] ACKNOWLEDGE_SVC_PROBLEM;<HOST>;CPU Load;1;1;1;<USER>;Investigating\n" $now > $commandfile

Schedule Downtime / Плановое обслуживание

# Schedule host downtime / Запланировать обслуживание хоста
now=$(date +%s)
end=$(date -d '+2 hours' +%s)
printf "[%lu] SCHEDULE_HOST_DOWNTIME;<HOST>;%lu;%lu;1;0;7200;<USER>;Maintenance window\n" $now $now $end > $commandfile

Performance Data / Данные производительности

Nagios writes perfdata to host-perfdata and service-perfdata files if enabled. Processed by PNP4Nagios or Graphite. / Nagios пишет perfdata в файлы, если включено. Обрабатывается PNP4Nagios или Graphite.


7. Troubleshooting & Tools

Common Issues / Частые проблемы

1. "Failed to start nagios" / Nagios не запускается

# Always check config first / Всегда проверяйте конфиг
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

# Check permissions / Проверить права
ls -la /usr/local/nagios/var/rw/nagios.cmd
chown nagios:nagios /usr/local/nagios/var/rw/nagios.cmd

2. Web UI Not Loading / Веб-интерфейс не загружается

# Check Apache / Проверить Apache
systemctl status httpd
systemctl status apache2

# Check CGI configuration / Проверить конфигурацию CGI
cat /etc/httpd/conf.d/nagios.conf

3. No Notifications / Нет уведомлений

# Check notification log / Проверить лог уведомлений
grep NOTIFICATION /usr/local/nagios/var/nagios.log | tail -20

# Check notification settings / Проверить настройки уведомлений
grep notification /usr/local/nagios/etc/objects/contacts.cfg

4. Agent (NRPE) Not Responding / Агент (NRPE) не отвечает

# Test NRPE from server / Тест NRPE с сервера
/usr/local/nagios/libexec/check_nrpe -H <CLIENT_IP>

# On client: check NRPE service / На клиенте: проверить сервис NRPE
systemctl status nrpe
ss -tlnp | grep 5666

# Check firewall on client / Проверить фаервол на клиенте
firewall-cmd --list-all | grep 5666

8. Logrotate Configuration

/etc/logrotate.d/nagios

/var/log/nagios/*.log
/usr/local/nagios/var/*.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    create 640 nagios nagios
    sharedscripts
    postrotate
        /bin/kill -HUP $(cat /var/run/nagios/nagios.lock 2>/dev/null) 2>/dev/null || true
    endscript
}


On this page

Nagios Core Sysadmin Cheatsheet 📚 Table of Contents / Содержание 1. Installation &amp; Configuration Install Nagios Core / Установка Nagios Core Main Config Files / Основные файлы конфигурации Host Definition Example / Пример определения хоста User Management / Управление пользователями (Web UI) 2. Core Management Verify Config / Проверка конфигурации Service Control / Управление сервисом 3. Sysadmin Operations Plugins / Плагины Important Paths / Важные пути Log Monitoring / Мониторинг логов Firewall Configuration / Настройка фаервола 4. NRPE Remote Monitoring NRPE Architecture / Архитектура NRPE Install NRPE Agent / Установка агента NRPE NRPE Configuration / Конфигурация NRPE Check NRPE Status / Проверка статуса NRPE 5. Security Web UI Authentication / Аутентификация веб-интерфейса NRPE Security / Безопасность NRPE 6. Maintenance Acknowledge Alert (CLI) / Подтверждение алерта (CLI) Schedule Downtime / Плановое обслуживание Performance Data / Данные производительности 7. Troubleshooting &amp; Tools Common Issues / Частые проблемы 1. "Failed to start nagios" / Nagios не запускается 2. Web UI Not Loading / Веб-интерфейс не загружается 3. No Notifications / Нет уведомлений 4. Agent (NRPE) Not Responding / Агент (NRPE) не отвечает 8. Logrotate Configuration Documentation Links / Ссылки на документацию