diff --git a/docker/docker.sh b/docker/docker.sh index bdf9a10..d143598 100755 --- a/docker/docker.sh +++ b/docker/docker.sh @@ -3,13 +3,17 @@ # author mikedmorto 2021 year export LC_ALL="" export LANG="en_US.UTF-8" -version="0.5" +version="0.6" DOCKER="/usr/bin/docker" + +TMP="" +PATCH="/tmp/zabbix.docker.tmp" JSON="" #### PARAMETRS #### METRIC="$1" ITEM="$2" +ERROR=0 case "$METRIC" in discovery) @@ -37,7 +41,11 @@ exit 0 # get container status docker.container_running) -RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$count=0;} { if ($1 == IT && $7 == "Up") count += 1 } END {if (count > 1) print ""; else if (count == 1) print 1; else if (count == 0) print 0} '` +RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {count=0} {if ($1 == IT) count += 1} END {if (count == 1) print 1; else print ""} '` +TMP=`${DOCKER} ps | tail -n +2` + if [ "$RET" == "1" ] + then RET=`echo $TMP | awk -v IT="${ITEM}" ' BEGIN {count=0} {if ($1 == IT) count += 1} END {if (count == 1) print 1; else if (count > 1) print ""; else if (count == 0) print 0} '` + fi echo ${RET} @@ -48,9 +56,18 @@ RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$count=0;} { if #get cpu usage docker.cpu) -RET=`${DOCKER} stats --no-stream | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$count=0;} {if ($1 == IT) count += 1} END {if (count > 1) print ""; else if (count == 1) print $3; else if (count == 0) print 0} '` +RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {count=0;} {if ($1 == IT) count += 1} END {if (count == 1) print 1; else print ""} '` +TMP=`${DOCKER} stats --no-stream | tail -n +2` + if [ "$RET" == "1" ] + then RET=`echo $TMP | awk -v IT="${ITEM}" ' BEGIN {count=0} {if ($1 == IT) count += 1} END {if (count == 1) print 1; else if (count == 0) print 0; else print ""}'` + if [ "$RET" == "1" ] + then RET=`echo $TMP | awk -v IT="${ITEM}" '{if ($1 == IT) print $3}'` + fi + fi + echo ${RET} | awk -v FS="%" '{print $1}' + exit 0 ;; @@ -58,7 +75,15 @@ RET=`${DOCKER} stats --no-stream | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$co #get ram usage docker.ram) -RET=`${DOCKER} stats --no-stream | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$count=0;} {if ($1 == IT) count += 1} END {if (count > 1) print ""; else if (count == 1) print int($4*1048576); else if (count == 0) print 0} '` +RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {count=0;} {if ($1 == IT) count += 1} END {if (count == 1) print 1; else print ""} '` +TMP=`${DOCKER} stats --no-stream | tail -n +2` + if [ "$RET" == "1" ] + then RET=`echo $TMP | awk -v IT="${ITEM}" ' BEGIN {count=0} {if ($1 == IT) count += 1} END {if (count == 1) print 1; else if (count == 0) print 0; else print ""}'` + if [ "$RET" == "1" ] + then RET=`echo $TMP | awk -v IT="${ITEM}" '{if ($1 == IT) print int($4*1048576)}'` + fi + fi + echo ${RET} exit 0 @@ -69,7 +94,11 @@ RET=`${DOCKER} stats --no-stream | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$co #get container name docker.name) -RET=`${DOCKER} ps | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$count=0;} {if ($1 == IT) count += 1} END {if (count > 1) print ""; else if (count == 1) print $13; else if (count == 0) print 0} '` +RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {count = 0} {if ($1 == IT) count += 1} END {if (count == 1) print 1; else print ""} '` + + if [ "$RET" == "1" ] + then RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" '{if ($1 == IT) print $12}'` + fi echo ${RET} exit 0 @@ -80,12 +109,15 @@ RET=`${DOCKER} ps | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$count=0;} {if ($1 #get container image docker.image) -RET=`${DOCKER} ps | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$count=0;} {if ($1 == IT) count += 1} END {if (count > 1) print ""; else if (count == 1) print $2; else if (count == 0) print 0} '` +RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {count = 0} {if ($1 == IT) count += 1} END {if (count == 1) print 1; else print ""} '` + + if [ "$RET" == "1" ] + then RET=`${DOCKER} ps -a | tail -n +2 | awk -v IT="${ITEM}" '{if ($1 == IT) print $2}'` + fi echo ${RET} exit 0 - ;;