FFRN Monitoring Node <--> GW <--> Grafana

@leah gibt es zu der Struktur, wie Daten von den Node bis hin zu den Grafana verarbeitet werden.

Für LoRaWan/TheThingsNetwork gibt es so eine Monitoring Infrastruktur nicht, und deshalb mache ich mir Gedanken drüber:

  • auf den Gateways (die die Daten von den Sensoren/Aktoren empfangen/senden und normalerweise Mini-Rechner a la RPi sind) könnte ein Nagios-Client laufen, der misst.

  • Gemessen werden sollen Basics (CPU Load, RAM load, filesystem Utilization) aber auch TTN-spezifische Sachen (Zahl ein- und ausgehender Nachrichten und sendender/empfangender Geräte)

…und da fängt der Teil an, wo ich noch kein Bild habe…

  • Nagios sendet seine Werte in eine Graphite oder InfluxDB,

  • wo sie dann ein Grafana-Dashboard darstellt.

Meine Frage:

  • macht das Sinn? oder kann ich etwas besser machen?

Also das läuft in etwa so:

Auf jedem Knoten gibt es eine Software die sich Alfred nennt. Diese wird in einem komprimierten JSON Format mit den Statistik Werten aus dem Knoten gefüttert. Gleichzeitig lauschen diese Knoten auf einer IPv6 Multicast Adresse. Der Kartenserver sendet eine Aufforderung nach Informationen an diese Multicast Adresse und erhält dafür per Unicast die Antwort. Unicast ist dabei sozusagen eine Direktnachricht während eine Multicast Nachricht an viele, aber nicht alle möglichen Empfänger geht. Dann empfängt der Kartenserver die Daten und verarbeitet sie im JSON Format. Anschließend wird daraus die JSON Datei generiert, die die Karte speist. Diese JSON Datei nutzen wir dann wiederum um die Metriken fürs Graphite zu generieren und zu füttern, die dann wiederum vom Grafana als Frontend angezeigt werden.

Würde ich so nicht machen. Schreib dafür einfache Python Scripte, damit erreichst du schneller was du möchtest und kommst besser ans Ziel.

Eventuell lohnt sich hier eher ein Collectd, das hat ein direktes Modul um Daten in Graphite zu pumpen.

Nagios würde ich wie gesagt nicht nutzen, wenn überhaupt ein aktuelles Icinga2, das funktioniert zum einen Besser zum anderen hat es einen direkten Graphite export. Aber egal, wie gesagt ich glaube nicht das nen Icinga/Nagios hier die richtige Lösung wäre.

Ein InfluxDB würde ich auch nicht nutzen, da dass von der Datenhaltung nicht effizient für diese Form der Daten wäre und es recht umständlich zu verwalten ist im vergleich. Eher würde ich dir ein Graphite oder ein Prometheus empfehlen. Wie gesagt, wir nutzen Graphite und es funktioniert eigentlich ziemlich gut.

Wie gesagt, würde ein paar Sachen anders Lösen. Lass da doch vielleicht mal bei einem Treffen drüber reden. Was genau du brauchst und speichern willst und dann gucken wir was am ehesten passt.

1 „Gefällt mir“