#!/usr/bin/bash set -Eeuo pipefail PATH=/nwp/bin:/bin:/usr/bin:/usr/local/bin if [[ -w /var/www/html/rrd ]]; then cd /var/www/html/rrd else set -x : local debug mode fi TZ=UTC test -f /nwp/bin/syslogscan.rb || exit 0 tmp=z.syslog2-work trap "rm -f ${tmp}.*" 0 : ${REFTIME:=$(date +'%Y-%m-%dT%H:00:00')} rrdnow=$(date --date=${REFTIME} +%s) s=$(( $rrdnow - 3600 )) GREPPAT=$(date --date="@$s" +^%Y-%m-%dT%H:) TAGLIST="feedstore gsm13 obsan obsbf jmxscan wisbf wistm gras gwjp gwde" for tag in $TAGLIST do heartbeat=7200 if [[ gsm13 = $tag ]]; then heartbeat=43200 fi if [[ ! -f ${tag}2.rrd ]]; then rrdcreate -b 'now - 2 day' ${tag}2.rrd --step 3600 \ DS:count:GAUGE:${heartbeat}:U:U \ DS:dlfiles:GAUGE:${heartbeat}:U:U \ DS:elapsed:GAUGE:${heartbeat}:U:U \ RRA:AVERAGE:0.5:1:2160 RRA:MAX:0.5:1:2160 \ RRA:AVERAGE:0.5:24:720 RRA:MAX:0.5:24:720 fi done egrep -h $GREPPAT /var/log/syslog{,.1} > ${tmp}.1 syslogscan.rb ${tmp}.1 > ${tmp}.2 ruby -- - $rrdnow ${tmp}.2 > ${tmp}.sh < syslogrrd2.log 2>&1 || : draw(){ tag=$1 suf=$2 span=$3 sspan="$4" rrdtool graph -o ${tag}2${suf}.png -t "${tag} (${sspan})" \ -e ${rrdnow} -s end-${span} \ DEF:count=${tag}2.rrd:count:AVERAGE \ DEF:dlfiles=${tag}2.rrd:dlfiles:AVERAGE \ DEF:elapsed=${tag}2.rrd:elapsed:AVERAGE \ CDEF:esec=elapsed,1000,/ \ LINE1:count#0088FF:"count" \ LINE2:dlfiles#FF8800:"dlfiles" \ LINE2:esec#88FF88:"elapsed(s)" \ GPRINT:count:MAX:"count.max=%6.0lf" \ GPRINT:count:LAST:" %6.0lf" \ GPRINT:dlfiles:MAX:" dlfiles.max=%6.0lf" \ GPRINT:dlfiles:LAST:" %6.0lf" \ GPRINT:esec:MAX:" elapsed.max=%6.1lfs" \ GPRINT:esec:LAST:" %6.1lfs" \ > /dev/null } for tag in $TAGLIST do draw $tag a 259200 "3 days" draw $tag b 2592000 "30 days" draw $tag c 31104000 "360 days" done