Fixing Nagios Core After Fedora OS Upgrades

:police_car_light: Fixing Nagios Core After Fedora OS Upgrades (SIGSEGV/Command File Missing)

When your monitoring dies and takes your alerts with it

:wrench::bar_chart::skull::penguin:

You upgraded Fedora. Nagios stopped sending alerts. The command file vanished. You got that dreaded “Could not stat() command file” error.

This is the fix. No theory, no lectures, just commands that work.


:brain: What Happened (and Why)

When you upgrade Fedora to a new major version (like 40 → 41), the system libraries change. Your Nagios binary was compiled against the old glibc and other core libraries.

Result: Segmentation fault (SIGSEGV) on startup. Nagios crashes immediately, never creates the command file, and you get zero alerts.

The fix: Recompile Nagios against the new libraries.


:magnifying_glass_tilted_left: Step 1: Confirm the Problem

Check if Nagios is actually running:

systemctl status nagios

Look for:

  • Active: failed (Result: exit-code)
  • Main process exited, code=exited, status=254

Check the Nagios log for crashes:

tail -50 /usr/local/nagios/var/nagios.log

Look for:

  • Caught SIGSEGV, shutting down...

Verify the command file is missing:

ls -la /usr/local/nagios/var/rw/nagios.cmd

If you get “No such file or directory”, that confirms it.


:hammer_and_wrench: Step 2: Backup Your Current Binary (Optional but Smart)

cp /usr/local/nagios/bin/nagios /usr/local/nagios/bin/nagios.backup

This lets you roll back if something goes wrong (though the old binary will still crash).


:hammer: Step 3: Recompile Nagios for Your Current OS

Download and recompile Nagios 4.5.9 (or whatever version you’re running):

cd /tmp
wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.5.9/nagios-4.5.9.tar.gz
tar xzf nagios-4.5.9.tar.gz
cd nagios-4.5.9
./configure --with-command-group=nagcmd
make all

Stop Nagios, install the new binary, and restart:

systemctl stop nagios
make install
systemctl start nagios

:warning: This only replaces the Nagios binary. Your configs in /usr/local/nagios/etc/ are untouched.


:white_check_mark: Step 4: Verify It’s Working

Check service status:

systemctl status nagios

Look for Active: active (running) in green.

Verify the command file was created:

ls -la /usr/local/nagios/var/rw/nagios.cmd

Should exist as a named pipe (shows as prw-rw----).

Check the log for clean startup:

tail -20 /usr/local/nagios/var/nagios.log

Should show worker processes registering and “Successfully launched command file worker” with no SIGSEGV.

Verify processes are running:

ps aux | grep nagios | grep -v grep

Should show main nagios process + worker processes.


:test_tube: Step 5: Test Alerts

Force a service or host check from the Nagios web interface to confirm the command file is working and alerts are flowing.

If you get an alert, you’re done.


:counterclockwise_arrows_button: Future Prevention

If you upgrade Fedora again and this happens:

  1. Recompile Nagios using the steps above
  2. That’s it

Major OS upgrades = recompile monitoring tools that were built from source.


:brain: TL;DR

  • Fedora upgrade breaks Nagios due to library changes
  • Nagios crashes with SIGSEGV, command file never gets created
  • Fix: Recompile Nagios against current system libraries
  • Verify service status, command file, and test alerts
  • Configs stay intact, only the binary changes

:speech_balloon: Your Turn

Hit this after a RHEL/CentOS/Rocky upgrade too? Same fix applies.
Questions? Drop them below.