Remote host - Passive Check - HARD state


We have passive service checks setup for a few hosts. The passive check result are sent from a remote host to Icinga api. However, the state is “SOFT;1” for “Critical” status. I would like to have it as “HARD”.

Currently as shown in the log –


The service definition has these attributes

check_command":“passive”, “enable_active_checks”:0

object Service "Service" {
        check_command = "passive"
        enable_active_checks = 0.000000
        host_name = "Host"
        version = 1643744795.534081

Please advise,


The SOFT state is intended to prevent unnecessary notifications that are sent in a HARD state. In my case the host is 3 check intervals in the SOFT state before it goes into the HARD state. This can be adjusted with the setting retry_interval.

See the Icinga documentation under Monitoring Basics for more information on the HARD/SOFT state.
Monitoring Basics - Icinga 2

Best regards!

Thanks for your time and the reply.

I thought that applies to Active checks. I’m after passive service check and looking for “HARD” state.


  1. you need to set enable active checks → this will result in the check to go UNKNOWN if there is no passive result in time
  2. you need to have a check_attempts =1 because you said you wanted that.
    → this will result in the check to go UNKNOWN after one attemot if there is no passive result in time
  3. you set the check_interval to for example 10m → this will be the window where you provide check result data from your process-check-result api call
  4. you have your passive check script provide data in an interval 5m this will make sure that the unknown from checkcommand" passive" get used if there is no passive check result within 10m

Thanks for the detailed answer. I updated the attribute " max_check_attempts = 1 " using api which took care of it.