Überwachung linuxbasierter Server

Aus FHEMWiki
Wechseln zu: Navigation, Suche


Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


Beachte: Artikel derzeit fragmentarisch, daher NICHT nutzbar.

2019-03-13-serverueberwachung-1.jpg

In diesem Artikel wird im Sinne eines proof of concept die Möglichkeit der Überwachung vieler linuxbasierter Server auf ausstehende Updates, Plattenplatz usw. beschrieben.

Vorbemerkung

Es gibt bereits mehrere, recht ausgefeilte Lösungen zur Überwachung von Servern: Angefangen von Nagios bis hin zum Modul SYSMON. Dem soll keine weitere Lösung hinzugefügt werden, es geht in diesem Projekt nicht um die minutengenaue Überwachung von Serverparametern. Hier geht es um einen täglichen Status aller Server im Hausnetz: Liegen Updates an, ist noch Plattenplatz frei? - Dabei ist der Fokus gelegt auf minimale Belastung der zu überwachenden Server (die im Folgenden "Clients" genannt werden) und des Netzes.

Begriffsbestimmung

In diesem Artikel ist "Server" das Gerät, auf dem FHEM läuft. Client/Clients sind Maschinen, die linuxbasiert (Debian, Ubuntu, Raspian) sind, beispielsweise kleine, leistungsschwache Raspberry Pi Zero. Obwohl auf diesen Clients ein Webserver erforderlich ist, installiert sein muss, werden sie der sprachlichen Klarheit wegen als "Client" benannt.

Installation auf den Clients

Jeder Client muss künftig zwei Bedingungen erfüllen: Erstens muss er täglich eine JSON-Datei seines Zustands bereitstellen. Zweitens muss ein Webserver diese Datei dem Server ausliefern können.

Installation Webserver auf Clients

Sofern noch kein Webserver installiert ist, sollte bei kleinen, schwachen Geräten ein möglichst leichtgewichtiger, ressourcensparender Webserver installiert werden. Ein Beispiel wird im Artikel Webserver auf Raspberry beschrieben, dort sind weitere Alternativen benannt. - Der Webserver sollte von /var/www ausliefern, dort ist händisch sodann ein Unterverzeichnis "html" anzulegen.

Installation JSON-Script auf Clients

Danach muss jeder Client in die Lage versetzt werden, eine JSON-Datei mit den tagesbezogenen Zustandsdaten des Client bereitzustellen. Dafür werden keinerlei Java oder Javascript (und im Sinne der Schlankheit auch nicht diesbezügliche riesige Pakete) benötigt.

...

Installationen auf dem Server

...

FHEM Scripte und Devices

Sofern eine IP 24 Stunden nicht erreichbar war, wird die entsprechende Device automatisch gelöscht:

##########
# alte IP-Devices rausschmeissen
# https://forum.fhem.de/index.php/topic,94475.0.html
# 

sub check_dead() {
  my $maxAge   = 86400;
  my @checkDev = devspec2array("192.168.*");
  my $alive    = 0;
 
  foreach my $d (@checkDev){
    $alive = 0;
    foreach my $r (keys %{$defs{$d}{READINGS}}){
      my $age = ReadingsAge($d,$r,0);
      $alive = 1 if ($age < $maxAge);
      Debug "device: $d reading: $r age: $age";
    }
#    Debug "delete $d" unless $alive;
    CommandDelete(undef,$d) unless $alive;
  }
}


FTUI Kachel

Fakultative Installation auf dem Server

...

Danksagung

Bei der Umsetzung der Idee halfen -manchmal ohne es zu wissen- mehrere Teilnehmer des FHEM-Forums, denen der Primärautor des Beitrags für ihre uneigennützige, freundliche Hilfe zu Dank verpflichtet ist.