City vs Data Center Temperature !
Following is a temperature graph to compare difference between City temperature vs Data Center temperature. I made it for some local presentation purposes. Since I had no external sensor available for outside temperature monitoring, therefore I used external bash script to gather data from the internet using ‘Pakistan Meteorological Department PMD‘ website and then after filtering , output only required data. For NOC I used internal UPS sensor snmp query.

#cat /temp/weather.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #!/bin/sh#set -x# Script to download KARACHI city temperature from Pakistan MET Dept web site and output only temperature related information# It will also query the NCO room temperature using UPS sensor via snmp query# I made this script to create City temperature vs NOC temperature comparison MRTG graph# Created : 9th-DEC-2016# Syed Jahanzaib# aacable[at]hotmail[dot]com####### Various Variables ########## City temperature temporary holders in /tmp folderCITY_TEMPR_HOLDER="/tmp/khiweather.txt"CITY_TEMPR_4_OFFLINE="/tmp/khiweather_offline.txt"# Variables for UPS IP and SNMP community string. It ilwl be used to acquire data center temperature using UPS sensorUPS_IP="10.0.0.10"UPS_SNMP_STR="public"# OID for temperature sensor using USP SNMP card/sendorUPS_OID="1.3.6.1.4.1.13400.2.62.2.1.2.0"################################################################################### PART - 1 , DATA CENTER Temperature query via UPS SNMP enabled sensor############################################################################# Store DATA Center temperature queries result in bufferNOC_TEMPR=`snmpwalk -v1 -c $UPS_SNMP_STR $UPS_IP -Onqv $UPS_OID`# Divide stored buffer by 100 to get human readable format in CelsiusNOC_TEMPR_FINAL=`echo $(($NOC_TEMPR/100))`# Validate if temperature is not valid, liek url not accessible, or other errors# If error found, then PRINT ZERO 0 VALUE , else print the acquired resultNOC_TEMPR_FINAL_VALID=`echo ${#NOC_TEMPR_FINAL}`if [ $NOC_TEMPR_FINAL_VALID -eq 2 ]; thenecho "$NOC_TEMPR_FINAL"elseecho "0"fi################################################################################## PART - 2 , QUERY KARACHI CITY TEMPERATURE FORM THE INTERNET# USING PAKISTAN MET DEPt for KARACHI website, than TRIM THE RESULT ##################################################################################CITY_TEMPR=`lynx -cache=1 -dump $URL > $CITY_TEMPR_HOLDER`CITY_TEMPR_VALUE=`grep -A 1 "Karachi" $CITY_TEMPR_HOLDER |sed '2q;d' | awk '{print $1}'`CITY_TEMPR_VALID=`echo ${#CITY_TEMPR_VALUE}`# Validate if temperature is not valid, like URL not accessible, OR other errors# If error found, then PRINT last valid VALUEif [ $CITY_TEMPR_VALID -eq 2 ]; then#CITY_TEMPR_VALUE_FINAL=`echo $(($CITY_TEMPR_VALUE - 1))`echo "$CITY_TEMPR_VALUE"echo "$CITY_TEMPR_VALUE" > $CITY_TEMPR_4_OFFLINEelsecat $CITY_TEMPR_4_OFFLINEfi########################## END ########################## |
MRTG CFG file for weather
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | WorkDir:/var/www/mrtg### MONITORING KARACHI Temprature vs our DATA Center ###Target[KARACHI_CITY_vs_NOC_tempr]: `/temp/weather.sh`Title[KARACHI_CITY_vs_NOC_tempr]: Temprature Monitoring / Data Center vs Karachi City using PAK MET Site by zaibPageTop[KARACHI_CITY_vs_NOC_tempr]: <h1>Temprature Monitoring / Data Center vs Karachi City using PAK MET Site by zaib</h1>Options[KARACHI_CITY_vs_NOC_tempr]: gauge, growright, nopercentMaxBytes[KARACHI_CITY_vs_NOC_tempr]: 60Colours[KARACHI_CITY_vs_NOC_tempr]: B#467EEE,R#FF0000,BLUE#2184FF,RED#ff4f27YLegend[KARACHI_CITY_vs_NOC_tempr]: TempratureShortLegend[KARACHI_CITY_vs_NOC_tempr]: cLegendI[KARACHI_CITY_vs_NOC_tempr]: NOC TempratureLegendO[KARACHI_CITY_vs_NOC_tempr]: City TempratureLegend1[KARACHI_CITY_vs_NOC_tempr]: NOC TempratureLegend2[KARACHI_CITY_vs_NOC_tempr]: City Temprature#Unscaled[KARACHI_CITY_vs_NOC_tempr]: dwmy |
Data Center Room Temperature & Humidity !

Above graph was made using Emerson Liebert UPS sensor using following OID’s and MRTG CFG
Temperature: 1.3.6.1.4.1.13400.2.62.2.1.2.0
Humidity: 1.3.6.1.4.1.13400.2.62.2.1.3.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | WorkDir:/var/www/mrtg### MONITORING NOC ROOM TEMP ###Target[noc_room_temp]: 1.3.6.1.4.1.13400.2.62.2.1.2.0&1.3.6.1.4.1.13400.2.62.2.1.3.0:public@10.0.0.1 / 100Options[noc_room_temp]: gauge, growright, nopercentMaxBytes[noc_room_temp]: 100Colours[noc_room_temp]: B#467EEE,R#FF0000,RED#ff4f27,DIRTY YELLOW#E6B420#Unscaled[noc_room_temp]: dwmyYLegend[noc_room_temp]: NOC Room Temprature/HumidityTitle[noc_room_temp]: NOC Room Tempr/HumidityPageTop[noc_room_temp]: <h1>NOC Room Tempr/Humidity</h1>ShortLegend[noc_room_temp]: c/%LegendI[noc_room_temp]: TempratureLegendO[noc_room_temp]: HumidityLegend1[noc_room_temp]: C NOC_Room TempLegend2[noc_room_temp]: Humidity |