Skip to content

Icinga2 Check Result Not Processing — Quick Fix

DodaTech Updated 2026-06-24 2 min read

In this tutorial, you'll learn about Icinga2 Check Result Not Processing. We cover key concepts, practical examples, and best practices.

The Problem

Icinga2 is not processing check results for hosts or services. The web interface shows "Pending" checks that never resolve. The checker component may be stopped, or commands may be failing to execute. The check queue may be growing.

Error example:

Warning: No checks were executed in the last 30 seconds.
Check command for host 'web-server-01' failed: exit code 1
Checker queue contains 500 pending checks

The Fix

Step 1: Check the checker component

WRONG — restarting Icinga2 without checking the checker component:

# The checker may be disabled in Icinga2 configuration

RIGHT — verify the checker feature is enabled:

icinga2 feature list

Output:

Enabled features: api checker mainlog notification
Disabled features: influxdb elasticsearch

If checker is not in the enabled list:

icinga2 feature enable checker
systemctl restart icinga2

Step 2: Verify command execution

WRONG — assuming all plugins are accessible to Icinga2:

# Icinga2 may not have permission to execute check commands

RIGHT — test command execution:

# Test as the Icinga2 user
sudo -u nagios /usr/lib/nagios/plugins/check_ping -H 8.8.8.8 -w 100,20% -c 200,50%

Output:

PING OK - Packet loss = 0%, RTA = 12.34 ms

If this fails, fix permissions or reinstall plugins.

Use DodaTech's Check Pipeline Analyzer to monitor check execution times, queue depth, and command execution success rates.

Prevention Tips

  • Ensure the Icinga2 user has permission to execute all check plugins
  • Monitor the checker queue depth with Icinga2's internal metrics
  • Set appropriate max_check_attempts to avoid flapping checks
  • Use check_timeout to prevent long-running checks from blocking the queue
  • Use DodaTech's Icinga2 Performance Dashboard for real-time check queue visibility

Common Mistakes with check result

  1. Forgetting that lazy evaluation defers computation until the value is forced, causing space leaks with unevaluated thunks
  2. Using return to exit a function early instead of wrapping a pure value in the monad
  3. Mixing let bindings with <- bindings in do notation, producing type errors

These mistakes appear frequently in real-world ICINGA2 code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.

Practice Exercise

Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.

This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.

FAQ

### What causes "No checks were executed" in Icinga2?

This occurs when the checker component is disabled, all check commands fail with permission errors, or Icinga2 is overloaded and cannot schedule checks. Check the Icinga2 log for "Checker" messages and verify the checker feature is enabled.

How do I prioritize certain checks over others?

Use the check_interval and retry_interval settings to control check frequency. Critical services should have shorter intervals. Icinga2 does not support explicit priority queues, so use interval tuning to effectively prioritize important checks.

Why does Icinga2 stop running checks on a host after a few failures?

Icinga2 uses soft states and retry intervals. After max_check_attempts failures, the host or service enters a hard state and checks continue at the normal interval. If checks stop entirely, the host may have been flapping and Icinga2 adaptive checking may have reduced check frequency.

Related: DodaTech's Icinga2 Check Scheduler Optimizer provides recommendations for check interval tuning, parallelization, and queue management for large environments.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro