monitoring/munin/munin-collector

52 lines
1.7 KiB
Plaintext
Executable File

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