#!/bin/bash set -Ceuo pipefail PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin test -f /nwp/bin/syslogscan.rb || exit 0 cd /var/www/html/rrd trap "rm -f syslog-work.*" 0 : ${LASTHOUR:=$(date +'%Y-%m-%dT%H:%M:00')} rrdnow=$(date --date=${LASTHOUR} +%s) LANG=C journalctl -S '10 minute ago' --facility=news \ -o short-iso-precise \ | ruby /nwp/bin/syslogscan.rb > syslog-work.ltsv items="feedstore gsm13 obsan obsbf jmxscan" for tag in $items do if [ ! -f ${tag}.rrd ]; then rrdcreate -b 'now - 2 day' ${tag}.rrd \ DS:count:GAUGE:600:U:U RRA:AVERAGE:0.5:1:512 RRA:AVERAGE:0.5:288:512 \ DS:dlfiles:GAUGE:600:U:U RRA:AVERAGE:0.5:1:512 RRA:AVERAGE:0.5:288:512 \ DS:elapsed:GAUGE:600:U:U RRA:AVERAGE:0.5:1:512 RRA:AVERAGE:0.5:288:512 fi done ruby -- - $rrdnow syslog-work.ltsv > syslog-work.sh < worklog.txt 2>&1 || : for tag in $items do rrdtool graph -o ${tag}.png -t "$tag" \ DEF:count=${tag}.rrd:count:AVERAGE \ DEF:dlfiles=${tag}.rrd:dlfiles:AVERAGE \ DEF:elapsed=${tag}.rrd:elapsed:AVERAGE \ CDEF:esec=elapsed,1000,/ \ LINE1:count#0088FF \ LINE2:dlfiles#FF8800 \ LINE2:esec#88FF88 \ > /dev/null rrdtool graph -o ${tag}d10.png -t "$tag" \ -e now -s end-864000s \ DEF:count=${tag}.rrd:count:AVERAGE \ DEF:dlfiles=${tag}.rrd:dlfiles:AVERAGE \ DEF:elapsed=${tag}.rrd:elapsed:AVERAGE \ CDEF:esec=elapsed,1000,/ \ LINE1:count#0088FF \ LINE2:dlfiles#FF8800 \ LINE2:esec#88FF88 \ > /dev/null done mv syslog-work.ltsv syslogscan.ltsv