Geschäftlich arbeite ich mit PRTG um unsere ICT-Umgebung zu überwachen. Leider ist das PRTG Core-System Windows basierend und somit kann ich es zu Hause (vorerst) nicht einsetzen. Pi Control wurde von Willy Fritzsche entwickelt und bietet einen gelungenen Überblick über den Zustand des Raspberry Pi.

  

Natürlich kann man Pi Control nicht mit den Grossen wie PRTG oder Nagios vergleichen, da es nur den Zustand des aktuellen Rechners anzeigt und dennoch reicht das meistens aus um sich schnell über den aktuellen Zustand seines Raspberry Pi zu informieren.

Vielleicht kriegt man ja PRTG, da Windows basierend, auf einem Raspberry Pi mit Windows 10 IoT zum laufen... Das wird sicher ein spannendes, zukünftiges Projekt.

Wie kriegt man eine Applikation auf einem Gerät zum laufen, die nicht für dieses Gerät/OS geschrieben wurde? Ganz einfach, man betreibt Engineering, schummelt ein wenig und darf sich nicht ärgern weil nicht alles 100%ig funktioniert ;-) 

Bei mir läuft LIGHTTPD als Webserver, leider habe ich mich nicht darauf geachtet ob dieser vorinstalliert war, z.B. durch ein anderes Programm, oder ob er durch Pi Control installiert wurde. Aus vergangenen Installationen weiss ich jedoch, dass Pi Control bei der Installation Vorschläge zu verschiedene Webserver wie NGIX, LIGHTTPD usw. macht.

Pi Control kann man hier herunterlagen oder mit diesem Befehl herunterladen und starten:

curl https://pi-control.de/pic_installer | sudo bash

 

Die aufkommenden Fragen habe ich so beantwortet j - j - j - 2 - pic - j dabei wird bei der dritten Frage bereits auf eine Herausforderung hingedeutet:

Installation1

 

Auch dies deutet darauf hin, dass es Problemchen geben könnte, hier müsste die IP-Adresse stehen:

Installation2

 

Den Browser deines Vertrauens öffnen und weiter geht's, sieht schon mal gut aus:

Installation3

 

Wähle die Sprache der du meinst mächtig zu sein:

Installation4

 

~ Da waren sie wieder, meine drei Probleme ~ (Zitat aus "Otto der Film")

Installation5

 

 Der Schlüssel zum (vermeidlichen) Glück befindet sich in dieser Datei /var/www/html/pic/install/resources/Content/install_requirement.php

Zeile 65:
if ($otherDistribution['version'] == 'Raspbian GNU/Linux 7' || $otherDistribution['version'] == 'Raspbian GNU/Linux 8' || $otherDistribution['version'] == 'Raspbian GNU/Linux 9') 

ersetzen durch:
if ($otherDistribution['version'] == 'Raspbian GNU/Linux 7' || $otherDistribution['version'] == 'Raspbian GNU/Linux 8' || $otherDistribution['version'] == 'Raspbian GNU/Linux 9' || $otherDistribution['version'] == 'Raspbian GNU/Linux 10')

 

Da waren's nur noch zwei...

Installation6 

 

Leider funktionieren die im Programm angebotenen Problemlösungen nicht unter Rasbian 10 (buster). PHP5-CLI kann nicht unter "buster" installiert werden...

Installation7

 

... da bereits auf PHP7.3-cli referenziert wird (kann man mit diesem Befehl kontrollieren: dpkg-query -l)

Installation8

 

Nun bearbeiten wir die Zeile 31 von:
if (trim(exec('dpkg -s php5-cli | grep Status: ')) != '' || trim(exec('dpkg -s php7.0-cli | grep Status: ')) != '')

auf:
if (trim(exec('dpkg -s php7.3-cli | grep Status: ')) != '' || trim(exec('dpkg -s php7.3-cli | grep Status: ')) != '')

 

Nun noch das letzte Problem lösen...

Installation9

 

... leider habe ich keine wirkliche Lösung im Web gefunden und habe hier so richtig geschummelt in dem ich das Script regelrecht manipuliert habe.

Zeile 28 angepasst von:
if (function_exists('mcrypt_encrypt') !== false)

auf:
if (function_exists('mcrypt_encrypt') !== true)

und das Ergebnis sieht schon mal nicht so schlecht aus:

Installation10

 

Als nächstes muss ein Benutzer für die Anmeldung an der Webseite erstellt werden:

Installation11

 Installation12

 

Nun muss der Admin des Raspberry Pi hinterlegt werden, damit per SSH ein Cronjob angelegt wird:

Installation13

Installation14

 Installation15

 

Nun können wir uns schon mal anmelden, damit wir...

Installation16

 

... mit Schrecken sehen müssen, dass etwas nicht geklappt hat:

Installation17

 

Obwohl der Cronjob * * * * * www-data php -f "/var/www/html/pic/resources/cron/init.php" >/dev/null 2>&1 # By Pi Control korrekt angelegt wurde, scheint etwas nicht richtig zu funktionieren. Beim betrachten der Datei /var/www/html/pic/resources/cron/init.php ist mir aufgefallen, dass darin wieder PHP5-CLI vorkommt.

Zeile 34 angepasst von:
if (trim(exec('dpkg -s php5-cli | grep Status: ')) != '' || trim(exec('dpkg -s php7.0-cli | grep Status: ')) != '')

auf:
if (trim(exec('dpkg -s php7.3-cli | grep Status: ')) != '' || trim(exec('dpkg -s php7.3-cli | grep Status: ')) != '')

 

und schon ist auch dieses Problem behoben:

Installation18

 

Das ganze hat jedoch einen Schönheits- / Funktions-Fehler! Will man die Funktion Terminal oder das Plugin Cron benutzen und will sich mit dem RasPi-Admin für SSH anmelden...

Installation19

... wird man mit diesem Output beschenkt:

Installation20

 

Dies hat mit Sicherheit mit der PHP-Funktion mcrypt_encrypt etwas zu tun, welche ich bei der Installation "ausgetrickst" habe. Leider habe ich noch keine Lösung dazu gefunden ausser dass diese Funktion veraltet ist und eigentlich nicht mehr eingesetzt werden sollte.

Bitte schau später wieder vorbei, vielleicht finde ich eine Lösung zu diesem Problem oder es wird ein Programm Update des Herstellers angeboten.

Kommentar schreiben