diff options
author | Daniel Friesel <derf@derf.homelinux.org> | 2010-07-22 21:10:20 +0200 |
---|---|---|
committer | Daniel Friesel <derf@derf.homelinux.org> | 2010-07-22 21:10:20 +0200 |
commit | 9608c4aa49aa0df9a2c47e8a602023e02a3c63ac (patch) | |
tree | 41a9a0dd2c98c3067185dc5a07c21298b7b90eae | |
parent | 444081887459f5afb59f70ea13c9343d72019750 (diff) |
Add icinga-status function
-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]} |