MRTG Hard Disk iostat.txt ========================= Public domain ******************************************************************************** **Incomplete** #!/bin/bash # Variables PATH="$PATH:/usr/local/mrtg-2/bin" CFG="/usr/local/mrtg-2/etc/mrtg-iostat.cfg" WRKDIR="/var/www/htdocs/iostat" HOST=$(hostname) UPTIME=$(cat /proc/uptime | sed -e 's,\..*,,') H=$(( $UPTIME / 3600 )) M=$(( ($UPTIME - $H * 3600) / 60 )) TMP=/tmp/stat.$$ # This function appends configuration for a device # or a partition to config file append_to_config_file() { cat >> $CFG << EOF ################################################################################ ##### ${DEV} ################################################################### ##### Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util ##### ${LINE} ################################################################################ Target[${DEV}_KBS]: \`printf "%s\n%s\n%s\n%s\n" ${RKBS} ${WKBS} ${H}:${M} ${HOST}\` Options[${DEV}_KBS]: gauge, nopercent, integer, unknaszero Title[${DEV}_KBS]: [${DEV}] Kilobits read/write per second PageTop[${DEV}_KBS]:

[${DEV}] Kilobits read/write per second

YLegend[${DEV}_KBS]: Kbits per second ShortLegend[${DEV}_KBS]: kbps Colours[${DEV}_KBS]: YELLOW#F9C000,RED#F90000,DARKGREEN#006600,VIOLET#FF00FF Legend1[${DEV}_KBS]: Kilobits read per second Legend2[${DEV}_KBS]: Kilobits write per second LegendI[${DEV}_KBS]: Read LegendO[${DEV}_KBS]: Write MaxBytes[${DEV}_KBS]: 100000 Target[${DEV}_TIME]: \`printf "%s\n%s\n%s\n%s\n" ${AWAIT} ${SVCTM} ${H}:${M} ${HOST}\` Options[${DEV}_TIME]: gauge, nopercent, integer, unknaszero Title[${DEV}_TIME]: [${DEV}] Await / Service time PageTop[${DEV}_TIME]:

[${DEV}] Await / Service time

YLegend[${DEV}_TIME]: milliseconds ShortLegend[${DEV}_TIME]: ms Colours[${DEV}_TIME]: YELLOW#F9C000,RED#F90000,DARKGREEN#006600,VIOLET#FF00FF Legend1[${DEV}_TIME]: Await for issued requests Legend2[${DEV}_TIME]: service time for issued requests LegendI[${DEV}_TIME]: await LegendO[${DEV}_TIME]: svctm MaxBytes[${DEV}_TIME]: 100000 Target[${DEV}_RRQMS]: \`printf "%s\n%s\n%s\n%s\n" ${RS} ${RRQMS} ${H}:${M} ${HOST}\` Options[${DEV}_RRQMS]: gauge, nopercent, integer, unknaszero Title[${DEV}_RRQMS]: [${DEV}] Read requests issued/queued per second PageTop[${DEV}_RRQMS]:

[${DEV}] Read requests issued/queued per second

YLegend[${DEV}_RRQMS]: req / sec ShortLegend[${DEV}_RRQMS]: req Colours[${DEV}_RRQMS]: YELLOW#F9C000,RED#F90000,DARKGREEN#006600,VIOLET#FF00FF Legend1[${DEV}_RRQMS]: Issued requests per second Legend2[${DEV}_RRQMS]: Queued requests per second LegendI[${DEV}_RRQMS]: Issued LegendO[${DEV}_RRQMS]: Queued MaxBytes[${DEV}_RRQMS]: 100000 Target[${DEV}_WRQMS]: \`printf "%s\n%s\n%s\n%s\n" ${WS} ${WRQMS} ${H}:${M} ${HOST}\` Options[${DEV}_WRQMS]: gauge, nopercent, integer, unknaszero Title[${DEV}_WRQMS]: [${DEV}] Write requests issued/queued per second PageTop[${DEV}_WRQMS]:

[${DEV}] Write requests issued/queued per second

YLegend[${DEV}_WRQMS]: req / sec ShortLegend[${DEV}_WRQMS]: req Colours[${DEV}_WRQMS]: YELLOW#F9C000,RED#F90000,DARKGREEN#006600,VIOLET#FF00FF Legend1[${DEV}_WRQMS]: Issued requests per second Legend2[${DEV}_WRQMS]: Queued requests per second LegendI[${DEV}_WRQMS]: Issued LegendO[${DEV}_WRQMS]: Queued MaxBytes[${DEV}_WRQMS]: 100000 EOF } # Main function iostat -dkx | egrep -v "^ *$|^Device:|$(hostname)"> ${TMP} mkdir -p "${WRKDIR}" echo "workdir: ${WRKDIR}" > ${CFG} for DEV in $(cat ${TMP} | awk '{print$1}'); do LINE=$(grep "${DEV} " ${TMP}) RRQMS=$(echo $LINE | awk '{print$2}') WRQMS=$(echo $LINE | awk '{print$3}') RS=$(echo $LINE | awk '{print$4}') WS=$(echo $LINE | awk '{print$5}') RKBS=$(echo "$(echo $LINE | awk '{print$6}') * 8" | bc) WKBS=$(echo "$(echo $LINE | awk '{print$7}') * 8" | bc) AVGRQSZ=$(echo $LINE | awk '{print$8}') AVGQUSZ=$(echo $LINE | awk '{print$9}') AWAIT=$(echo $LINE | awk '{print$10}') SVCTM=$(echo $LINE | awk '{print$11}') UTIL=$(echo $LINE | awk '{print$12}') #echo $DEV $RRQMS $WRQMS $RS $WS $RKBS $WKBS $AVGRQSZ $AVGQUSZ $AWAIT $SVCTM $UTIL append_to_config_file done rm -f ${TMP} indexmaker ${CFG} > ${WRKDIR}/index.html mrtg ${CFG} ******************************************************************************** _BY: Pejman Moghadam_ _TAG: mrtg, bash, bash-script_ _DATE: 2010-09-22 14:00:51_