I have a few custom checks for icinga2. These are ran by icinga2 using snmp, each has a custom OID.
The issue I’m running into (and not funding answers on ddg.gg or googles) is that even when there is an alert, and the script does exists with 1 or 2 this does not get to Icinga and it will report as everything is fine.
The scripts use two kind of exits to signal the status:
- and exit code
- a string
For example:
echo "All good - OK"; exit 0
echo "Something is fishy- WARNING"; exit 1
`echo “Things are broken - CRITICAL; exit 2”
Here is an example for a check:
apply Service "zpool_status" {
import "generic-service"
import "check_snmp-tpl"
check_command = "check_snmp"
vars.check_snmp_oid = ".OID number."
### I tried without invert but the result was the same ###
vars.check_snmp_invert = true
assign where "zpool" in host.vars.storage
}
template Service "check_zpool-tpl" {
vars.check_zpool_name = "ALL"
vars.check_zpool_warnpercent = ""
vars.check_zpool_critpercent = ""
}
object CheckCommand "check_zpool" {
command = [ PluginDir + "/check_zpools.sh" ]
arguments = {
"-p" = "$check_zpool_name$"
"-w" = "$check_zpool_warnpercent$"
"-c" = "$check_zpool_critpercent$"
}
}
These worked in Nagios but not here. Does anyone have an idea into what should I be looking to?