docker v0.6 - work with 'awk' fixed

This commit is contained in:
fedor 2021-11-11 10:53:48 +07:00
parent fbd1838f4b
commit dc1f36861d

View File

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