diff options
Diffstat (limited to 'etc/functions/icinga-status')
-rw-r--r-- | etc/functions/icinga-status | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/etc/functions/icinga-status b/etc/functions/icinga-status new file mode 100644 index 0000000..dcb6c7f --- /dev/null +++ b/etc/functions/icinga-status @@ -0,0 +1,33 @@ +typeset output +typeset sv_ok sv_warn sv_crit sv_unknown +typeset host_up host_down host_unreachable + +output=($(ssh aneurysm \ +'/usr/sbin/icingastats -md NUMSVCOK,NUMSVCWARN,NUMSVCUNKN,NUMSVCCRIT,'\ +'NUMHSTUP,NUMHSTDOWN,NUMHSTUNR')) + +function _icinga_format { + typeset format + + case ${1} in + yellow) format='%F{black}%K{yellow}' ;; + red) format='%K{red}' ;; + blue) format='%K{blue}' ;; + esac + + (( ${3} == 0 )) && format= + + print -Pn ${format} + + printf "%-16s %s%s" ${2} $(print -P '%F{default}%K{default}') ${3} + echo +} + +_icinga_format green 'Service OK' ${output[1]} +_icinga_format yellow 'Sercice WARN' ${output[2]} +_icinga_format blue 'Service UNKNOWN' ${output[3]} +_icinga_format red 'Service CRIT' ${output[4]} +echo +_icinga_format green 'Host UP' ${output[5]} +_icinga_format red 'Host DOWN' ${output[6]} +_icinga_format blue 'Host UNREACHABLE' ${output[7]} |