Muninlite für ff_node als munin-node

:exclamation: Vorhandensein eines munin (munin-master) für muninlite berücksichtigen :exclamation:

Die freie Software Munin ist ein Werkzeug zur Überwachung von Rechnern in einem Rechnernetzwerk mit Status- und Prozess-Visualisierung. Ein zentraler Rechner, der sogenannte „Master”, sammelt Leistungsdaten von im Netzwerk verteilten Computern, den „Nodes”, speichert diese und stellt die Daten mittels Webschnittstelle graphisch dar.

1.update & install

opkg update && opkg install xinetd muninlite

*** workaround

2.CHECK the munin TCP service port

edit /etc/services (munin   4949/tcp)

3.iptables (öffne munin port)
edit /etc/firewall.user

iptables -I INPUT -p tcp --dport 4949 -j ACCEPT

Achtung: öffnet die firewall auf allen interfaces :japanese_goblin:

3.1sofortiges öffnen auf der shell (einmalig)

iptables -I INPUT -p tcp --dport 4949 -j ACCEPT

FW wieder schließen:

iptables -D INPUT -p tcp --dport 4949 -j ACCEPT

4.xinetd ff_node startup

ln -s /etc/init.d/xinetd /etc/rc.d/S70xinetd

4.1sofortiger start (einmalig)

/etc/rc.d/S70xinetd start

5.make plugindir

mkdir -p /usr/sbin/munin-node-plugin.d

6.edit /usr/sbin/munin-node
PLUGINS=„ff_neighbours plugindir_ […]“

7.insert /usr/sbin/munin-node
Nach dem Update auf gluon2015.1.2 gibt es eine Änderung der Ports. wlan0-1 heißt jetzt mesh0

 ===== PLUGINS CODE =====
config_ff_neighbours() {
  echo "graph_title Clients Signalstrength"
  echo "graph_args --upper-limit '-30'"    
  echo "graph_scale no"                    
  echo "graph_vlabel Signalstrength in dBm"
  echo "graph_category freifunk"           
  OIFS=$IFS;                               
  IFS=$'\n';                               
  for LINE in $(iwinfo mesh0 assoc |grep "ms ago"); do
    echo "$(echo $LINE |cut -d\  -f1).label" $(echo $LINE |cut -d\  -f1);
  done                                                                   
  IFS=$OIFS;                                                             
}                                                                                                                             
fetch_ff_neighbours() {                                                                                                       
  OIFS=$IFS;                                                                                                                  
  IFS=$'\n';                                                                                                                  
  for LINE in $(iwinfo mesh0 assoc |grep "ms ago"); do                                                                      
    echo "$(echo $LINE |cut -d\  -f1).value" $(echo $LINE |cut -d\  -f3);                                                     
  done                                                                                                                        
  IFS=$OIFS;                                                                                                                  
}

config_cpu() {
[...]

7.1suche config_uptime()
insert nach „graph_vlabel uptime in days“
echo „graph_vlabel uptime in days“

echo "graph_category system"

[…]

8.muninlite mit plugins erweitern (bsp df)
8.1 downloaden
https://git.fr32k.de/picard/muninlite/raw/master/df
8.2 speichern unter
/usr/sbin/munin-node-plugin.d/df
8.3 ausführbar machen
chmod +x df

9.Debug

telnet ff_node 4949
Trying 192.168.0.244...
Connected to freifunk.
Escape character is '^]'.
# munin node at WHV-Kielerstr-1
list
ff_neighbours cpu if_br_wan if_br_client if_eth0VLAN1 if_wlan0_1 if_wlan0 if_eth0 if_eth
0VLAN2 if_err_br_wan if_err_br_client if_err_eth0VLAN1 if_err_wlan0_1 if_err_wlan0 if_er
r_eth0 if_err_eth0VLAN2 load memory processes uptime interrupts irqstats

quelle: http://munin-monitoring.org/wiki/HowToOpenWRT

*** workaround
download: http://openwrt.draic.info/barrier_breaker/14.07/DEINMODEL/generic/packages/packages/PACKET
bsp packet vnstat für TP-Link TL-WR1043ND: http://openwrt.draic.info/barrier_breaker/14.07/ar71xx/generic/packages/packages/vnstat_1.11-4_ar71xx.ipk
das dl packet via scp auf die ff-node kopieren:
Dateien vom/zum Router kopieren — Meshkit 0.1.0 Dokumentation
und dann installieren:
Pakete installieren — Meshkit 0.1.0 Dokumentation

UPDATE 11.09.2015: 7. gluon2015.1.2 (wlan0-1 heißt jetzt mesh0)

2 „Gefällt mir“

Siehe dazu auch:

1 „Gefällt mir“

Hallo @picard

vielen Dank für deine Anleitung für muninlite.

der „Master“ von munin ist bei mir auf einem Raspberry PI installiert und funktioniert mit „localhost“ jetzt seit ca. einer Woche.
Die Installation von muninlite auf einem TP-841 lief problemlos, nach deiner Anleitung.
Im Heimnetz ergibt ein „telnet 192.168.0.59 4949“, wobei die IP Adresse diejenige des FF-Routers ist, folgendes Ergebnis:

Trying 192.168.0.59…
Connected to 192.168.0.59.
Escape character is ‚^]‘.
# munin node at loy-wope1
list
ff_neighbours ff_clients cpu if_br_wan if_br_client if_eth1 if_wlan0_1 if_wlan0 if_eth0 if_err_br_wan if_err_br_client if_err_eth1 if_err_wlan0_1 if_err_wlan0 if_err_eth0 load memory processes uptime interrupts irqstats
quit

Im Master werden die Daten aufgezeichnet. Also im ipv4 Netz funktioniert das Ganze.
Die eigentliche Frage ist jetzt: Wie bekomme ich das Ganze im Freifunknetz, also mit ipv6 Adressen, zum Laufen?

Hänge ich den Raspi direkt an den FF-Router ergibt ein „telnet 2a03:2260:1001:0:16cc:20ff:fe53:bad0 4949“ kein Ergebnis.

Auch der Eintrag im Master:

[loy-wope1.de]
address 2a03:2260:1001:0:16cc:20ff:fe53:bad0
use_node_name yes

bringt keinen Erfolg, es werden keine Daten aufgezeichnet.

Auszug aus dem munin-update.log:
2015/09/01 21:00:02 [ERROR] Munin::Master::UpdateWorker<de;loy-wope1.de> died with '[FATAL] Socket read from loy-wope1.de failed. Terminating process. at /usr/share/perl5/Munin/Master/UpdateWorker.pm line 254

Habe ich die richtige IP Adresse, welche vom FF-Router muss ich nehmen?
Muss ich noch an anderen Stellen Änderungen vornehmen, und wenn ja wo?

Fragen über Fragen, vielleicht kannst du ja ein bischen helfen!

Gruß, wope

hallo @wope
ich greife die daten nur lokal über die LAN ip ab,
es hat bei mir den grund das ich nur lokal das iptables 4949 auf machen will.

iptables -I INPUT -p tcp --dport 4949 -j ACCEPT

öffnet komplett

die ipv6 worüber dein ff_node erreichbar ist ist die selbe wie immer (auch ssh) bat0

Hallo @picard,

mittlerweile läuft ein Knoten über die globale ipv6, an der iptables habe ich nichts geändert. Ich werde morgen noch mal schauen was dort jetzt drin steht. Das Ziel bei mir ist, alle meine Knoten mit muninlite zu versorgen, da im Netmon gar nichts mehr läuft. So ein bischen Statistik braucht man aber schon.

Gruß, wope

OK, Leute habe die letzte Woche mit Muninlite experimentier und die Knoten sind immer wieder abgeschmiert… Auf dem tp841 gab es nur Chaos. Habe es auf drei Knoten installiert, die maximale Datenerfassung waren 16 Stunden, aber mit Unterbrechungen. Die anderen Knoten haben schon nach kurzer Zeit „xinetd“ beendet. Der Speicher oder die CPU Leistung reicht wohl nicht aus. Nach dem Update auf „gluon2015.1.2“ gibt es eine Änderung der Ports. „wlan0-1“ heißt jetzt „mesh0“. Dies muss man natürlich erst mal wissen, bitte Anpassen in der Anleitung von @picard
Auf einem CPE210 sehen die Ergebnisse dagegen sehr gut aus! Hier läuft „muninlite“ seit ca. 24 Stunden, und gibt gute Ergebnisse auf dem Server aus.

Gruß, wope

habe ich geändert, danke für den hinweis

Aus der reihe… Not macht erfinderisch :unamused:

Netmon liefert seit geraumer zeit keine Statistiken mehr bei Freifunk Nordwest. Ich will Statistiken… Munin ist eine einfach Lösung. Musste ich nur einen weg finden wie die ff_nodes abgefragt werden.
SSH „ssh reverse tunnel“, dadurch ist der Datenverkehr verschlüsselt, Firewall muss nicht geöffnet werden :stuck_out_tongue_winking_eye:
Dazu gibt es von mir eine Anleitung, aber dazu in nächster zeit mehr.

klappt soweit ganz gut, ich nutze „autossh“ mit key auf client seite und auf server seite einen limitierten nutzer der nur für fftunnel da ist.

einzige problem was ich habe, wenn der router gestartet wird baut dieser mit autossh keinen tunnel automatisch auf. dazu habe ich im openwrt umfeld auch schon etwas gefunden woran es liegen könnte, mich würde interessieren ob es hier jemanden gibt der einen ^^ ssh reverse tunnel auf freifunk router aufbauen kann automatisch nach boot oder zusammenbruch des tunnels.

munin und muninlite klappt ansonsten :grinning:
ein paar screenshots…

übersicht

freifunk speziell

vnstat mit muninlite

Kannst du kurz erklären, warum der reverse Tunnel erforderlich ist? Die Freifunkrouter sind doch von außen per SSH anwählbar?

mit dem reverse tunnel binde ich einen router auf einen port und da nur muninligt (4949). ich zeige mal wie das ausschaut.

Server: /etc/munin/munin.conf

[freifunk;WHV-Virchowstr27-1]
    address 127.0.0.1
    port 5003
    use_node_name yes

Router: /etc/config/autossh

option ssh '-i /etc/dropbear/id_rsa -N -T -R 5003:127.0.0.1:4949 fftunnel@serverurl.de -pPORT'