Schon vor längerer bin ich vom dashing.io auf smashing.io umgestiegen. Der Umstieg gestaltete sich recht einfach, da an den Scripten unter Jobs keinerlei Anpassungen durchgeführt werden mussten.
Mittlerweile werden verschiedene Informationen aus diversen Quellen abgerufen unter anderem Ticketsysteme via Api oder DB Abfrage, Todo Liste, Informationen einer Telefonanlage, Microsoft Service Status, Automatisierungssysteme und Icinga.
Leider ist das smashing teilweise öfters am Tag abgestürzt und musste neu gestartet werden. In dem thin.log kam die Meldung smashing-1.3.6/lib/dashing/app.rb:86:in `block (2 levels) in <top (required)>‘: can’t add a new key into hash during iteration (RuntimeError)
Die Abstürze konnten massiv verringert werden, in dem bei dem Aufruf send_event nicht das Array übergeben wurde sondern eine Kopie des Array mit zum Bespiel values.dup statt values.
Neben dem zuvor erstellen collectd lassen sich mit Hilfe von Prometheus weitere Daten aus der Fritzbox sammeln, die über Grafana ausgegeben werden können. Zunächst Prometheus installieren.
apt-get install prometheus
Prometheus dient dazu die Daten abzurufen, jedoch werden für die verschiedenen Systeme Exporter benötigt.
Für den hier verwendeten Exporter wird docker und go benötigt, beides wurde nach den folgenden Anleitungen installiert.
Bei der Installation das Exporters mit go install github.com/sberk42/fritzbox_exporter@latest docker build --tag fritzbox-prometheus-exporter:latest . kam es zu einem Fehler. Die Installation konnte mit docker build --tag fritzbox-prometheus-exporter:latest go/pkg/mod/github.com/sberk42/fritzbox_exporter@v0.0.0-20230106183717-d39a1d30d4cf fortgesetzt werden.
Zugriff auf die Fritzbox
Für den Zugriff auf die Fritzbox über den Exporter, muss zunächst ein Benutzer angelegt werden. Die Einrichtung erfolgt unter System => Fritzbox Benutzer, der Benutzer benötigt das Recht das Einstellungen eingesehen werden können.
Nach der Einrichtung kann der Exporter gestartet werden.
In der Datei /etc/prometheus/prometheus.yml wird der Exporter wie folgt hinterlegt:
- job_name: fritzbox
static_configs:
- targets: ['ipadresse:9042']
Ob der Exporter erfolgreich im prometheus eingerichtet wurde, kann innerhalb des prometheus unter Status => Targes geprüft werden.
Jetzt muss nur noch im Grafana das Dashboard https://grafana.com/grafana/dashboards/12579-fritz-box-status/ importiert werden und als Datenquelle prometheus auswählen.
In vielen Unternehmen beziehungsweise auch an öffentlichen Stellen hängen Display, die die verschiedensten Inhalte ausgeben. Es werden die nächsten Besucher angekündigt, das aktuelle Wetter, der Speiseplan oder andere verschiedene Dashboards. Die womöglich billigste Variante ist vermutlich einen Monitor / Fernseher zu verwenden, der an einem Raspberry Pi angeschlossen ist. Auf dem Raspberry Pi wird der Browser in dem Kiosk Modus gestartet und gibt die gewünschte Seite aus. Soll die Seite gewechselt werden, so wird die Konfiguration auf dem Raspberry Pi angepasst und der Browser wird neu gestartet. Gibt es mehrere Display die verwaltet werden müssen, so ist dies vermutlich ein gewisser Aufwand. Die kleine in Ruby on Rails geschriebene Webapplikation übernimmt die Verteilung der URL.
In der Webapplikation werden die Rasperry Pis hinterlegt und auf dem Raspberry Pis werden entsprechende Scripte eingerichtet. Damit die Webapplikation auf die Raspberry Pis zugreifen kann, muss der Public Key des Benutzers unter dem die Webapplikation läuft, auf dem Pi hinterlegt werden. Nun kann per Mausklick eine neue Url hinterlegt oder der Pi heruntergefahren bzw. neugestartet werden.
In der Webapplikation können Gruppen angelegt werden, Benutzer und Raspberry Pis werden der Gruppe zugeordnet. Die angelegten Benutzer können nur Raspberry Pis verwalten, die sich in der gleichen Gruppe befinden.
Es gibt mehrere Möglichkeiten den originalen 7″ Touchscreen anzuschließen und mit Strom zu versorgen. Derzeit habe ich je ein Jumper-Kabel vom Pin 4 zu 5V+ am Display und von Pin 6 zu GND am Display. Wichtig ist dabei, das die Stromversorgung dann mittels Micro-USB am Display angeschlossen wird und nicht am Pi, da dieser nicht dafür ausgelegt ist das Display noch mit Strom zu versorgen und ggf. kaputt gehen kann. Ich werde demnächst aber die zweite Möglichkeit nutzen und je ein Netzteil für den Raspberry und eins für das Display einsetzen. Zu beachten ist dabei, dass die Stromversorgung zeitgleich eingeschaltet wird. Desweiteren ist ein Flachbandkabel am Display anzuschließen und am Raspberry.
Beim ersten Start stellte sich heraus, dass das Bild jedoch auf dem Kopf dargestellt wird. Um das Bild zu drehen, ist folgender Eintrag in der Datei"/boot/config.txt"anzupassen/einzutragen.
lcd_rotate=2
Anschließend muss der Raspberry neugestartet werden.
Folgender Eintrag in "/boot/config.txt" würde zwar das Bild drehen, jedoch würden die Touchoberfläche weiterhin auf dem Kopf stehen und damit für noch mehr Verwirrung sorgen.
Die tgz Datei wurde mit tar -zxvf mongodb-osx-ssl-x86_64-<version>.tgz entpackt und unter /usr/local/bin abgelegt. Für den Speicherort der Daten habe ich mich für das Standardverzeichnis /data/db entschieden. Das Verzeichnis wurde unter dem root Benutzer angelegt und der Besitzer der Verzeichnisse wurde auf meinen Benutzer mit dem ich auf dem Mac arbeite geändert.
Zum starten der mongodb muss folgendes auf der Kommandozeile ausgeführt werden