| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/bin/bash
- ##### OPTIONS VERIFICATION #####
- if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
- exit 1
- fi
- ##### PARAMETERS #####
- RESERVED="$1"
- METRIC="$2"
- STATSURL="$3"
- CURL="/usr/bin/curl"
- CACHE_TTL="55"
- CACHE_FILE="/var/spool/zabbix/zabbix.nginx.`echo $STATSURL | md5sum | cut -d" " -f1`.cache"
- EXEC_TIMEOUT="1"
- NOW_TIME=`date '+%s'`
- ##### RUN #####
- if [ -s "${CACHE_FILE}" ]; then
- CACHE_TIME=`stat -c"%Y" "${CACHE_FILE}"`
- else
- CACHE_TIME=0
- fi
- DELTA_TIME=$((${NOW_TIME} - ${CACHE_TIME}))
- #
- if [ ${DELTA_TIME} -lt ${EXEC_TIMEOUT} ]; then
- sleep $((${EXEC_TIMEOUT} - ${DELTA_TIME}))
- elif [ ${DELTA_TIME} -gt ${CACHE_TTL} ]; then
- echo "" >> "${CACHE_FILE}" # !!!
- DATACACHE=`${CURL} --insecure -s "${STATSURL}" 2>&1`
- echo "${DATACACHE}" > "${CACHE_FILE}" # !!!
- chmod 640 "${CACHE_FILE}"
- fi
- #
- if [ "${METRIC}" = "active" ]; then
- cat "${CACHE_FILE}" | grep "Active connections" | cut -d':' -f2
- fi
- if [ "${METRIC}" = "accepts" ]; then
- cat "${CACHE_FILE}" | sed -n '3p' | cut -d" " -f2
- fi
- if [ "${METRIC}" = "handled" ]; then
- cat "${CACHE_FILE}" | sed -n '3p' | cut -d" " -f3
- fi
- if [ "${METRIC}" = "requests" ]; then
- cat "${CACHE_FILE}" | sed -n '3p' | cut -d" " -f4
- fi
- if [ "${METRIC}" = "reading" ]; then
- cat "${CACHE_FILE}" | grep "Reading" | cut -d':' -f2 | cut -d' ' -f2
- fi
- if [ "${METRIC}" = "writing" ]; then
- cat "${CACHE_FILE}" | grep "Writing" | cut -d':' -f3 | cut -d' ' -f2
- fi
- if [ "${METRIC}" = "waiting" ]; then
- cat "${CACHE_FILE}" | grep "Waiting" | cut -d':' -f4 | cut -d' ' -f2
- fi
- #
- exit 0
|