Hallo, ich bin zwar nicht mattes, aber antworte trotzdem mal:
die Graphen werden nicht mit RRD Tool erstellt, sondern mit Grafana und Prometheus.
Für Prometheus benutzt Du den textfile_collector von: GitHub - prometheus/node_exporter: Exporter for machine metrics
Die promdateien werden bei uns erstellt durch:
#!/bin/bash
for FFNODE in `cat /home/monitoring/node_exporter/textfile_collector/ffnode-clients-bo.json| jq .|grep node_id|awk '{print $2}'|tr -d \",|sed '/node/d'|sed '/map/d'`
do
echo "ffnode_"$FFNODE"_clients 0`cat /home/monitoring/node_exporter/textfile_collector/ffnode-clients-bo.json|jq '.nodes["'$FFNODE'"].statistics.clients' 2> /dev/null`"
done
und
#!/bin/bash
TRAFFIC=0
for FFNODE in `cat /home/monitoring/node_exporter/textfile_collector/ffnode-traffic-bo.json| jq .|grep node_id|awk '{print $2}'|tr -d \",|sed '/node/d'|sed '/map/d'`
do
TRAFFIC=$(cat /home/monitoring/node_exporter/textfile_collector/ffnode-traffic-bo.json|jq '.nodes["'$FFNODE'"].statistics.traffic.rx.bytes + .nodes["'$FFNODE'"].statistics.traffic.tx$
if [ "$TRAFFIC" -gt 0 ]; then
echo ffnode_"$FFNODE"_traffic "$TRAFFIC"
fi
done
im crontab dann
* * * * * root sleep 10 && cp /var/www/ffdata/nodes.json /home/monitoring/node_exporter/textfile_collector/ffnode-clients-bo.json && cd /home/monitoring/node_exporter/textfile_collector/ && bash collect_ffnode_clients.sh >ffnode_clients_bo.temp 2>/dev/null && cp ffnode_clients_bo.temp ffnode_clients_bo.prom
* * * * * root sleep 15 && cp /var/www/ffdata/nodes.json /home/monitoring/node_exporter/textfile_collector/ffnode-traffic-bo.json && cd /home/monitoring/node_exporter/textfile_collector/ && bash collect_ffnode_traffic.sh >ffnode_traffic_bo.temp 2>/dev/null && cp ffnode_traffic_bo.temp ffnode_traffic_bo.prom
Im Grafana legt man Templates an:
ffnode_*_clients
bzw
ffnode_*_traffic
als query
Die bunten Bilder werden dann z.B. mit der Query:
round(avg_over_time($nodes[5m]))
bzw.
rate($traffic[360s])*8
Die Bilder bekommt man über die share Funktion einfach share und direkt link to rendered image klicken. dann hat man eine „Muster URL“.
in der config.js vom meshviewer sieht das bei uns dann so aus:
"nodeInfos": [
{ "name": "Clientstatistik",
"href": "http://map.freifunk-bochum.de:3000/render/dashboard-solo/db/ff-bo-nodes?panelId=1&fullscreen&var-nodes=ffnode_{NODE_ID}_clients&theme=light&width=1000&height=332",
"thumbnail": "http://map.freifunk-bochum.de:3000/render/dashboard-solo/db/ff-bo-nodes?panelId=1&fullscreen&var-nodes=ffnode_{NODE_ID}_clients&theme=light&width=600&height=332",
"caption": "Knoten {NODE_ID}"
},
{ "name": "Trafficstatistik",
"href": "http://map.freifunk-bochum.de:3000/render/dashboard-solo/db/ff-bo-nodes?panelId=2&fullscreen&var-traffic=ffnode_{NODE_ID}_traffic&theme=light&width=1000&height=332",
"thumbnail": "http://map.freifunk-bochum.de:3000/render/dashboard-solo/db/ff-bo-nodes?panelId=2&fullscreen&var-traffic=ffnode_{NODE_ID}_traffic&theme=light&width=600&height=332",
"caption": "Knoten {NODE_ID}"
}
],
Ich glaube das waren die wesentlichen Infos, die man braucht um das irgendwie hin zu bekommen. Ich hätte das ohne @mattes, der mir geholfen (besser gesagt, der es für mich umgesetzt und dabei sogar erklärt hat) nicht hinbekommen. Mit den oben stehenden hints könnte Dir das aber gelingen.
Alle credits gehen hier an @mattes seine Arbeit wurde in Bochum raubmordkopiert.