• Blog
  • Raspberry Pi
  • Über mich
  • Projekte
  • devowl.io

Der Raspberry Pi ist übertaktet und soll im 24/7 Dauerbetrieb laufen. Wie man einen Stabilen Betrieb hinbekommt, haben wir uns schon im Artikel Stabiler 24/7 Dauerbetrieb angesehen. Jedoch ist es nicht verkehrt, Daten über den Raspberry Pi zu sammeln, um diese im Bedarfsfall analysieren zu können. Zum Anderen können solche Daten auch helfen, ein Frühwarnsystem zu bauen, dass z.B. Alarm schlägt, wenn der Raspberry Pi zu heiß wird. Im Folgenden werde ich zwei Monitoring Systeme benennen, zu welchen ich jeweils Installationsanleitungen verlinkt habe, und darauffolgend werden wir ein kleines Script einrichten, dass bei einer außergewöhnlichen Wärmeentwicklung eine E-Mail versendet.

Voraussetzung: Raspbian oder vergleichbare Distribution installiert

RPi-Monitor

Dieses kleine Programm ist ein, extra für den Raspberry Pi geschriebenes, Monitoring Tool. Neben dem Auslesen aktueller Werte des Raspberry Pis, schreibt es auch die CPU-, RAM-, SWAP- und Netzwerk-Auslastung wie auch die Prozessor Temperatur, Uptime und SD-Karten Nutzung mit und bereitet diese Daten in ein paar übersichtlichen Graphen auf. Der Funktionsumfang ist nicht der Größte, aber es erfüllt den Zweck, dass man sich die gesammelten Daten im Nachhinein ansehen kann.

Wie man RPi-Monitor installiert erklärte ich bereits hier im Blog.

Munin

Ein meines Wissens nach sehr weit verbreitetes Monitoring Tool ist Munin. Und das keines Wegs zu unrecht, denn dieses Tool hat, insbesondere weil es modular aufgebaut ist und damit einfach erweitert werden kann, einen wirklich großartigen Funktionsumfang. Im Gegensatz zu anderen Monitoring Tools ist die grafische Ausgaben jedoch eher funktional als eine Augenweide.

Wie man einen Munin Server auf dem Raspberry Pi installiert, wurde auf Pingbin (Englisch) erklärt. Die Vorgehensweise, wie man ein Plugin installiert, dass viele Werte aus dem Raspberry Pi ausließt, erklärte Jörg Bösche in seinem Blog.

Nachdem wir nun zwei Lösungen zum Monitoring auf längere Dauer kennen, sollten wir ein Script einrichten, dass im Fall einer Überhitzung des Raspberry Pis direkt eine E-Mail an uns versendet. Natürlich könnte man auch Scripts schreiben, die in anderen Fällen Alarm schlagen, jedoch denke ich, dass die Überhitzung des Raspberry Pis das größte Problem ist, dass auftreten kann. Im Folgenden beziehen wir uns auf die Angabe des Prozessor Temperatur Sensors.

Step 1

Zunächst legen wir folgendes Script auf dem Raspberry Pi z.B. im Home-Verzeichnis des Benutzers pi ab. Dabei müssen wir die Variablen smtpHost (Adresse des SMTP-Servers), smtpPort (Port des SMTP-Servers), smtpUser (SMTP-Benutzername), smtpPassword (Passwort des SMTP-Benutzers), mailSender (Absender der E-Mail), mailReceiver (Empfänger der E-Mail) und criticalTemperature (CPU Temperatur ab der eine E-Mail versendet werden soll) anpassen. Die E-Mails werden dann über ein SMTP-Account versendet (möglichst das der Absender E-Mail-Adresse), sodass sie möglichst nicht in Spam-Filtern hängen bleiben. In dem Editor nano kann man mittels STRG + X, Y und Enter speichern.

nano monitoring-cpu-temp.py

import os
import smtplib
import time
from email.mime.text import MIMEText

### Settings
# SMTP
smptHost = "smtp.example.de"
smtpPort = 587
smtpUser = "[email protected]"
smtpPassword = "thisisapassword"

# E-Mail
mailSender = "[email protected]"
mailReceiver = "[email protected]"

# Warning
criticalTemperature = 60 # in degree celsius
###

date = "%02i.%02i.%04i" % (int(time.localtime()[2]), int(time.localtime()[1]), int(time.localtime()[0]))
time = "%02i:%02i:%02i" % (int(time.localtime()[3]), int(time.localtime()[4]), int(time.localtime()[5]))

def getCPUtemperature():
    res = os.popen('vcgencmd measure_temp').readline()
    return(res.replace("temp=","").replace("'C\n",""))

tempFloat = float(getCPUtemperature())

if (tempFloat > criticalTemperature):
    server = smtplib.SMTP(smptHost, smtpPort)
    # server.starttls() # If TLS authentication should be used remove the hash at start of line
    server.login(smtpUser, smtpPassword)

    value = "Die aktuelle Temperatur des Raspberry Pi liegt bei " + str(tempFloat) + " Grad Celsius." + "\n" + "Zeit: " + time + " am " + date
    msg = MIMEText(value)
    msg['Subject'] = "[Warning] Rasperry Pi Temperatur " + str(tempFloat) + " Grad!"
    msg['From'] = mailSender
    msg['To'] = mailReceiver
    server.sendmail(mailSender, mailReceiver, msg.as_string())
    server.quit()
Step 2

Nun legen wir einen Cronjob an, der alle fünf Minuten das Script ausführt. Dadurch wird alle fünf Minuten die Temperatur des Raspberry Pis überprüft und gegebenenfalls eine Warnung per E-Mail versendet.

crontab -e

*/5 * * * * python monitoring-cpu-temp.py >/dev/null 2>&1

Wir kennen nun zwei Systeme um ein Monitoring des Raspberry Pis über längere Zeit durchzuführen und haben ein Warnungssystem eingerichtet, welches Alarm schlägt sobald sich der Raspberry Pi überhitzt.

Quelle: Python Script modifiziert von Alex Bloggt
Jan Karres
Jan Karres
Wirtschaftsinformatiker
Facebook
Twitter
YouTube
LinkedIn
Xing
GitHub

Themen

  • Blogging
  • Debian (Linux)
  • Eine Geschichte aus dem Leben des Jan
  • Fotos
  • Gaming
  • Gedanken
  • Linksammlungen
  • Privates
  • Projekte
  • Raspberry Pi
    • Einplatinencomputer (außer Raspberry Pi)
  • Schule und Studium
  • Tipps und Tricks
  • Videos
  • Vorgestellt
  • WordPress

Projekte

Dieser Blog ist meine kleine Base im Internet, in der ich über Themen schreibe, die mich persönlich beschäftigen. Abseits davon habe ich weitere Projekte im Netz, die teils aus Spaß entstanden, jedoch zum Teil auch meinen Kühlschrank füllen.

Alle Projekte

JanKarres.de © 2007-2022

Neueste Beiträge

  • Raspberry Pi: WLAN Access Point mit NordVPN (VPN Router) einrichten Dezember 5, 2020
  • Real Cookie Banner: Wie das Opt-in Cookie Banner für WordPress entstand November 18, 2020
  • Blog Setup erneut: Aufräumen einer kleinen Historie Oktober 13, 2020
  • devowl.io: Auf geht’s in das WordPress Business! März 10, 2020
  • Kuschelpartys: Nähe und Geborgenheit einfach erleben September 30, 2018

devowl.io

Meine Brötchen verdiene ich im Internet. Dazu habe ich gemeinsam mit meinem Kollegen Matze die devowl.io GmbH gegründet. Gemeinsam entwickeln und vertreiben wir in unser Plugins und Entwickler-Tools im WordPress Umfeld.

Mehr erfahren
  • Datenschutzerklärung
  • Impressum