StatusUpdates: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
6.635 Bytes hinzugefügt ,  8. Februar 2021
https ging bei mir nicht...
(influx doku)
(https ging bei mir nicht...)
 
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 13: Zeile 13:
  ssh root@Router-IP
  ssh root@Router-IP
Und führe folgenden Befehl aus (copy & paste).
Und führe folgenden Befehl aus (copy & paste).
<pre>wget -q -O /tmp/ffp-collect http://monitor.freifunk-potsdam.de/ffp-collect && chmod +x /tmp/ffp-collect && /tmp/ffp-collect install</pre>
<pre>wget -q -O /tmp/ffp-collect https://monitor.freifunk-potsdam.de/ffp-collect && chmod +x /tmp/ffp-collect && /tmp/ffp-collect install</pre>
'''Troubleshooting:''' bei Routern mit wenig Flash ist möglicherweise keine HTTPS-Unterstützung gegeben. In diesem Falle kannst du das Script von https://monitor.freifunk-potsdam.de/ffp-collect kopieren und mit
<pre>cat > /tmp/ffp-collect && chmod +x /tmp/ffp-collect && /tmp/ffp-collect install</pre>
zum laufen bringen, indem du es dann in die Konsole einfügst und am Ende Strg + D drückst.
 
Beim ersten Start werden alle Schnittstellen aufgelistet, unter denen gewählt werden kann, welche '''nicht''' mitgeschnitten werden sollen (z.B. private APs, normalerwise keine).
Beim ersten Start werden alle Schnittstellen aufgelistet, unter denen gewählt werden kann, welche '''nicht''' mitgeschnitten werden sollen (z.B. private APs, normalerwise keine).
<br>
<br>
Zeile 20: Zeile 24:
* upload: läd Daten hoch (alle 10 Minuten)
* upload: läd Daten hoch (alle 10 Minuten)
* upgrade: läd die aktuelle Version dieses Scriptes herunter und installiert sie (zum 1. jeden Monat zu einer zufälligen Uhrzeit)
* upgrade: läd die aktuelle Version dieses Scriptes herunter und installiert sie (zum 1. jeden Monat zu einer zufälligen Uhrzeit)
'''Achtung:''' Ein sysupgrade löscht Grafana und dannach muss es neu installiert werden, [https://github.com/seth0r/ffp-monitor/issues/1 Issue 1].


====Weitere Befehle:====
====Weitere Befehle:====
Zeile 87: Zeile 93:
END
END
</pre>
</pre>
Außerdem gibt es ein paar Queries, die regelmäßig via Cron ausgeführt werden, weil sie als CQ zu lange brauchen oder nicht funktionieren:
<br>
Täglich:
<pre>
# TRAFFIC TX, freifunk.network -> ffarchive.traffic_tx (5m von -48h)
SELECT non_negative_derivative(last(tx_bytes)) AS tx_bytes
INTO ffarchive."default".traffic_tx
FROM freifunk."default".network
WHERE time > NOW() - 48h
GROUP BY time(5m), device, hostname fill(none)
# TRAFFIC RX, freifunk.network -> ffarchive.traffic_rx (5m von -48h)
SELECT non_negative_derivative(last(rx_bytes)) AS rx_bytes
INTO ffarchive."default".traffic_rx
FROM freifunk."default".network
WHERE time > NOW() - 48h
GROUP BY time(5m), device, hostname fill(none)
# LQ NLQ, freifunk.links -> ffarchive.links (5m von -48h bis -23h)
SELECT
    min(linkQuality) AS lq_min,
    max(linkQuality) AS lq_max,
    mean(linkQuality) AS lq_mean,
    median(linkQuality) AS lq_median,
    min(neighborLinkQuality) AS nlq_min,
    max(neighborLinkQuality) AS nlq_max,
    mean(neighborLinkQuality) AS nlq_mean,
    median(neighborLinkQuality) AS nlq_median
INTO ffarchive."default".links
FROM freifunk."default".links
WHERE time < now() - 23h and time > NOW() - 48h
GROUP BY time(5m), localIP, remoteIP, remoteHostname, hostname fill(none)
# LEASES, freifunk.dhcp -> ffarchive.dhcp (5m von -48h bis -23h)
SELECT min(leases) AS min, max(leases) AS max, mean(leases) AS mean, median(leases) AS median
INTO ffarchive."default".dhcp
FROM freifunk."default".dhcp
WHERE time < now() - 23h and time > NOW() - 48h
GROUP BY time(5m), network, hostname fill(none)
# ASSOC, freifunk.wireless -> ffarchive.wireless (5m von -3h)
SELECT min(assoc) AS min, max(assoc) AS max, mean(assoc) AS mean, median(assoc) AS median
INTO ffarchive."default".wireless
FROM freifunk."default".wireless
WHERE time < now() - 23h and time > NOW() - 48h
GROUP BY time(5m), device, essid, hostname fill(none)
# ETX, ffarchive.links -> ffarchive.link_etx (5m von -48h bis -23h)
SELECT
    1 / (max(lq_max) * max(nlq_max)) AS etx_max,
    1 / (min(lq_min) * min(nlq_min)) AS etx_min,
    1 / (mean(lq_mean) * mean(nlq_mean)) AS etx_mean,
    1 / (median(lq_median) * median(nlq_median)) AS etx_median
INTO ffarchive."default".link_etx
FROM ffarchive."default".links
WHERE time < now() - 23h and time > NOW() - 48h
GROUP BY time(5m), localIP, remoteIP, remoteHostname, hostname fill(none)
</pre>
Stündlich:
<pre>
# TRAFFIC TX, freifunk.network -> ffarchive.traffic_tx (5m von -3h)
SELECT non_negative_derivative(last(tx_bytes)) AS tx_bytes
INTO ffarchive."default".traffic_tx
FROM freifunk."default".network
WHERE time > NOW() - 3h
GROUP BY time(5m), device, hostname fill(none)
# TRAFFIC RX, freifunk.network -> ffarchive.traffic_rx (5m von -3h)
SELECT non_negative_derivative(last(rx_bytes)) AS rx_bytes
INTO ffarchive."default".traffic_rx
FROM freifunk."default".network
WHERE time > NOW() - 3h
GROUP BY time(5m), device, hostname fill(none)'
# LEASES, freifunk.dhcp -> ffarchive.dhcp (5m von -3h)
SELECT min(leases) AS min, max(leases) AS max, mean(leases) AS mean, median(leases) AS median
INTO ffarchive."default".dhcp
FROM freifunk."default".dhcp
WHERE time > now() - 3h
GROUP BY time(5m), network, hostname fill(none)
# ASSOC, freifunk.wireless -> ffarchive.wireless (5m von -3h)
SELECT min(assoc) AS min, max(assoc) AS max, mean(assoc) AS mean, median(assoc) AS median
INTO ffarchive."default".wireless
FROM freifunk."default".wireless
WHERE time > now() - 3h
GROUP BY time(5m), device, essid, hostname fill(none)
# ETX, freifunk.links -> freifunk.link_etx (1m von -3h bis -1h)
SELECT 1 / (mean(linkQuality) * mean(neighborLinkQuality)) AS etx
INTO freifunk."default".link_etx
FROM freifunk."default".links
WHERE time > now() - 3h AND time < now() - 1h
GROUP BY time(1m), localIP, remoteIP, remoteHostname, hostname fill(none)
</pre>
===Crontab===
Alles, was in der Crontab mit dem Parsen zu tun hat:
<pre>
# parsing
# 0,5,10,...
*/5  *  * * *  www-data    /var/www/monitor.freifunk-potsdam.de/wsgi/ff/parseff1.py /var/ffdata/ >> /var/ffdata/ffdata.log
# 4,9,14,...
4-59/5 *  * * * www-data    /var/www/monitor.freifunk-potsdam.de/wsgi/ff/parseff2.py
59  *  * * *  root        cat /var/ffdata/ffdata.log && rm /var/ffdata/ffdata.log
1    3  * * *  www-data    find /var/ffdata/mv/ -type f -ctime +1 -delete
*/15 *  * * *  www-data    /var/www/monitor.freifunk-potsdam.de/wsgi/ff/lperf.py
8    *  * * *  www-data    /var/www/monitor.freifunk-potsdam.de/wsgi/ff/routes.py > /dev/null
#*    *  * * *  www-data    /var/www/monitor.freifunk-potsdam.de/wsgi/ff/sendmsg.py
*    *  * * *  www-data    /var/www/monitor.freifunk-potsdam.de/wsgi/ff/sendtweet.py routermsg
0    8  * * *  www-data    /var/www/monitor.freifunk-potsdam.de/wsgi/ff/sendtweet.py netstate
# Influx stuff
3    *  * * *  root        /root/influxdb_cq.sh hour > /dev/null 2>&1
13  1  * * *  root        /root/influxdb_cq.sh day > /dev/null 2>&1
27  4  7 * *  freifunk    /home/freifunk/influxdump.sh
</pre>
=== Dashboards ===
==== eine Location (Verbund aus mehreren Knoten) anlegen ====
Beispiel: ich möchte folgende Knoten gruppieren:
* 254-142-ph-werkstatt
* 254-54-ph-up
* 254-119-ph-buero
* 254-86-ph-seminar
* 254-155-ph-heizraum
Vorgehensweise
* bei Grafana einloggen
* im HOME Dashboard am besten ein Dashboard wählen (einer Location) und dieses dann klonen (Einstellungen -> save as)
* die Templating variable $host editieren (Einstellungen -> Templating)
* also z.B. für die oberen Knoten folgenden Regex angeben: /254-142-|254-54-|254-119-|254-86-|254-155-/
* nach Klick auf ''update'' sieht mensch auch, ob der Regex die richtigen Knoten getroffen hat
* für Zusatzinfos auf das Dashboard gehen, dann Settings, im Reiter ''Links'' können Infos, wie z.B. die Webseite vom Verein der Location verändert/hinzugefügt werden
* die Hosts List aktualisieren: neben hosts auf die Nodes klicken und die aufgelisteten alle anklicken
* nun eventuell noch das Zeitintervall ändern (oben rechts)
* am Ende Dashboard abspeichern & fertig
51

Bearbeitungen

Navigationsmenü