Hi, aktuell überwache ich meine FFRN APs über Nagios und die json Datei unter http://map.ffrn.de/nodes.json
Diese gibt es aber unter gluon ja nicht mehr wenn ich das richtig sehe …
Gibt es da schon eine Lösung oder bin ich zu schnell? :-)
Ich habe das bei mir angepasst und kann nachher mein neues Script hier posten.
Eigentlich hatte ich gehofft, dass ich die Knoten jetzt über IPv6 direkt monitoren kann, das funktioniert aber leider relativ schlecht (ist eine ganz andere Baustelle). Aktuell scheint die alte Lösung mit neuer Datei und neuer Struktur die beste Monitoring-Lösung zu sein.
Hi tobox, danke für die schnelle Info. Das wäre super von dir wenn Du es posten kannst :-)
THX …
Hi,
nodes.json gibt es immer noch. Aber jetzt unter
http://map.freifunk-rhein-neckar.de/data/nodes.json
Hier meine crontab-Einträge:
1,11,21,31,41,51 * * * * /usr/lib/nagios/plugins/update_freifunk_json.sh
@reboot /usr/lib/nagios/plugins/update_freifunk_json.sh
Der Inhalt des update-scripts:
#!/bin/sh
wget -q -O /tmp/gluon-nodes.json_ http://map.ffrn.de/data/nodes.json && mv /tmp/gluon-nodes.json_ /tmp/gluon-nodes.json
Hier der Inhalt des Zabbix-Scriptes, mit dem ich den Client-Count monitore:
#!/usr/bin/python
import json
import sys
from optparse import OptionParser
parser = OptionParser()
parser.add_option("--hostname", dest="hostname", help="hostname")
(options, args) = parser.parse_args()
nodes_json = open('/tmp/gluon-nodes.json', 'r').read()
nodelist = json.loads(nodes_json)
clientcount=0
for mac in nodelist["nodes"]:
node=nodelist["nodes"][mac]
if str(node["nodeinfo"]["hostname"]).lower() == str(options.hostname).lower():
if node["flags"]["online"] == True:
clientcount=node["statistics"]["clients"]
break
print(clientcount)
Da ich das Monitoring, ob ein Knoten online ist, oder nicht aktuell per IPv6 direkt mache, habe ich kein Nagios-Script dafür, das sollte ich aber aus dem Zabbix-Script trivial umschreiben lassen. Vielleicht kann ich das in der Mittagspause schnell machen.
Mit der heißen Nadel gestrickt, scheint aber zu gehen:
#!/usr/bin/python
import json
import sys
from optparse import OptionParser
parser = OptionParser()
parser.add_option("--hostname", dest="hostname", help="hostname")
(options, args) = parser.parse_args()
nodes_json = open('/tmp/gluon-nodes.json', 'r').read()
nodelist = json.loads(nodes_json)
clientcount=0
for mac in nodelist["nodes"]:
node=nodelist["nodes"][mac]
if str(node["nodeinfo"]["hostname"]).lower() == str(options.hostname).lower():
if node["flags"]["online"] == True:
print("OK: online")
sys.exit(0)
else:
print("Critical: offline")
sys.exit(2)
break
print("Unkown")
sys.exit(3)
Also ich kann die Status-Seite (normal erreichbar über die IPv6 Adresse) auch über die WAN IP des Knotens erreichen, hierzu musste ich in der Datei “/etc/config/firewall” einen Eintrag, analog zu “ssh” erstellen und den Port auf 80 umstellen. Eine genaue Anleitung gibt es Hier
Grüße
Hermann