#!/bin/bash ##### OPTIONS VERIFICATION ##### if [ -z "$1" ]; then exit 1 fi ##### PARAMETERS ##### METRIC="$1" POOL_PORT="${3:-9001}" STATSURL="${2:-http://localhost/fpm-status?port=$POOL_PORT}" CURL="/usr/bin/curl" CACHE_TTL="55" CACHE_FILE="/tmp/zabbix.fpm-status.`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 # case $METRIC in pool) grep "^pool:" $CACHE_FILE | cut -d ':' -f 2 | sed 's|^\s\+||' ;; process_manager) grep "^process manager:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; start_time) grep "^start time:" $CACHE_FILE | sed 's|^start time:\s\+||' ;; start_since) grep "^start since:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; accepted_conn) grep "^accepted conn:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; listen_queue) grep "^listen queue:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; max_listen_queue) grep "^max listen queue:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; listen_queue_len) grep "^listen queue len:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; idle_processes) grep "^idle processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; active_processes) grep "^active processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; total_processes) grep "^total processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; max_active_processes) grep "^max active processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; max_children_reached) grep "^max children reached:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||' ;; *) echo "Unsupported metric $METRIC" exit 1 ;; esac # exit 0