TARGETS="192.168.0.51" #PLUGINS="load memory pisense_temp 1wire ina219 hue_temp_10 hue_temp_14 433mhz" PLUGINS="load memory pisense_temp 1wire ina219 433mhz" PASSWORD="SET_ME" source ~/.munin-collector.conf while true; do IFS=' '; for TARGET in ${TARGETS}; do echo "$(date) Fetching data from ${TARGET} ..." SOURCE=$(echo "nodes" | nc -N ${TARGET} 4949 | tail -n +2 | head -n -1) IFS=' '; for PLUGIN in ${PLUGINS}; do CONFIG=$(echo "config ${PLUGIN}" | nc -N ${TARGET} 4949 | tail -n +2 | head -n -1) DATA=$(echo "fetch ${PLUGIN}" | nc -N ${TARGET} 4949 | tail -n +2 | head -n -1) #echo "-----------------" #echo "$CONFIG" #echo "-----------------" #echo "$DATA" #echo "-----------------" TABLE_NAME="home_${PLUGIN}" # default if [[ $PLUGIN == hue_temp_* ]]; then TABLE_NAME="home_hue_temp" # FIXME use config data.sql.table fi IFS=$'\n'; for LINE in ${DATA}; do # parse data and insert to database #echo $LINE # if [ "${PLUGIN}" = "433mhz" ]; then # ZONE=$(echo $LINE | sed -E "s/(.*)_(.*)_(.*)\.(.*) (.*)/\1/") # METRIC=$(echo $LINE | sed -E "s/(.*)_(.*)_(.*)\.(.*) (.*)/\3/") # VALUE=$(echo $LINE | sed -E "s/(.*)_(.*)_(.*)\.(.*) (.*)/\5/") # # SQL="INSERT INTO readings (source, metric, value) VALUES (\"${ZONE}\",\"${METRIC}\",\"${VALUE}\");" # else SQL=$(echo $LINE | sed -E "s/(.*)\.(.*) (.*)/INSERT INTO ${TABLE_NAME} (source, metric, value) VALUES (\"${SOURCE}\",\"\1\", \"\3\");/") # fi #echo $SQL echo $SQL | mysql --host="192.168.0.12" --database="grafanaData" --user="grafanaWriter" --password="${PASSWORD}" done # LINE done # PLUGINS done # TARGETS sleep 300 done # FOREVER-LOOP