
Teilen Sie:
Adrian is a problem solver and Python developer advocate. He works with various programming languages to solve engineering problems. Introduced to programming at age 16, Adrian has spent the last 8 years oscillating between backend development and automation. He lives in Nairobi and when not writing code he is most likely playing Call Of Duty or NBA 2K on his PlayStation, riding his bicycle or binge watching the latest series on Netflix.
Erstellen eines Systems zur Überwachung der Festplattennutzung mit der Vonage Messages API
Lesedauer: 3 Minuten
Einführung
Die Festplattennutzung ist eine wichtige Kennzahl, die in der IT-Infrastruktur eines jeden Unternehmens überwacht werden muss. Ohne Kenntnis der Festplattennutzung zu einem bestimmten Zeitpunkt riskiert ein Unternehmen Leistungsprobleme bei seinen produktiv arbeitenden Anwendungen sowie finanzielle Einbußen aufgrund plötzlicher Kosten für die Aufrüstung der bestehenden Infrastruktur.
Moderne Cloud-Infrastrukturanbieter wie AWS bieten fortschrittliche Kennzahlensysteme mit konfigurierten Alarmen an, die jedoch mit zusätzlichen Kosten verbunden sind. Die Festplattennutzung ist eine wichtige Kennzahl, und für einen Bruchteil der Kosten von Cloud-Anbietern können Sie Ihr eigenes System zur Überwachung der Festplattennutzung mit Warnmeldungen entwickeln. Cool, nicht wahr?
In diesem Leitfaden wird genau beschrieben, wie man ein benutzerdefiniertes System zur Überwachung der Festplattennutzung mit der Programmiersprache Python und der Vonage Messages API erstellt. Beachten Sie, dass Sie dieses Programm auf Ihren Servern und sogar auf Ihrem lokalen Entwicklungsrechner ausführen können.
Voraussetzungen:
Python 3.6+
Einrichten einer Vonage-Anwendung über die Vonage CLI
Installieren Sie die neueste Version der Vonage CLI auf Ihrem Entwicklungsrechner:
npm install --location=global @vonage/cliKonfigurieren Sie Ihr Vonage
API_KEYundAPI_SECRETaus dem letzten Schritt:vonage config:set --apiKey=API_KEY --apiSecret=API_SECRETErstellen Sie eine Vonage-Nachrichten-App: Verwenden Sie den Befehl
vonage apps:createund folgen Sie den Aufforderungen im interaktiven CLI-Modus wie unten beschrieben:
✔ Application Name … <insert any appropriate name>
✔ Select App Capabilities › <select Messages>
✔ Create messages webhooks? › (y/N)
✔ Allow use of data for AI training? Read data collection disclosure - https://help.nexmo.com/hc/en-us/articles/4401914566036 … <select either y/N> Unsere Ziele
Wir wollen eine leichtgewichtige Anwendung entwickeln, die Folgendes tut:
Abrufen unserer Festplattennutzungsstatistiken (entweder auf dem Server oder dem lokalen Entwicklungsrechner). Wir werden uns auf eine Python-Bibliothek verlassen,
psutilum unsere Festplattennutzungsstatistiken zu erhalten.Legen Sie einen beliebigen Schwellenwert fest, z. B. 50 % der Festplattennutzung, bei dessen Erreichen wir Benachrichtigungen versenden können.
Passen Sie eine Nachricht an, die uns benachrichtigt, wenn die Festplattenauslastung unseren Schwellenwert überschreitet. Wir verlassen uns auf die Vonage-API, um diese Nachricht an uns zu übermitteln.
Schritte
Erstellen Sie ein lokales Projektverzeichnis: Zum Beispiel,
mkdir disk_usage_monitor && cd disk_usage_monitor.Erstellen Sie in unserem Projektverzeichnis eine virtuelle Umgebung, um unsere Projektabhängigkeiten von den globalen Python-Abhängigkeiten zu trennen:
python3 -m venv .venv.Aktivieren Sie unsere virtuelle Umgebung mit folgendem Befehl:
source .venv/bin/activate.Erstellen Sie in unserem Projektverzeichnis eine Datei
requirements.txtmit dem Befehltouch requirements.txtund kopieren Sie die folgenden Projektabhängigkeiten in diese Datei:
vonage==3.5.1
python-dotenv==1.0.0
psutil==5.9.5Um die Abhängigkeiten in unserer virtuellen Umgebung zu installieren, führen Sie den folgenden Befehl aus:
pip3 install -r requirements.txtErstellen Sie die Datei .env, in der unsere Umgebungsvariablen gespeichert werden, mit folgendem Befehl
touch .envund kopieren Sie den folgenden Inhalt:
Anmerkung: Änderung YOUR_VONAGE_API_KEY, YOUR_VONAGE_API_SECRET, THE_SENDER_NUMBER und THE_RECIPIENT_NUMBER mit den Informationen, die im Vonage Dashboard.
# Vonage Credentials
VONAGE_API_KEY=YOUR_VONAGE_API_KEY
VONAGE_API_SECRET=YOUR_VONAGE_API_SECRET
VONAGE_SENDER=THE_SENDER_NUMBER
RECIPIENT=THE_RECIPIENT_NUMBERFügen Sie eine Datei namens
monitor.pymit dem Befehltouch monitor.pyin unser Projektverzeichnis ein und fügen Sie den folgenden Inhalt ein:
Anmerkung:
psutil.disk_usageaus derpsutilpython library, gibt ein benanntes Tupel der Form:sdiskusage(total=xxxxx, used=xxxxx, free=xxxx, percent=47.0). Der Prozentwert ist für uns von größtem Interesse.
import psutil
import vonage
from dotenv import dotenv_values
# load your environment variables
config = dotenv_values(".env")
client = vonage.Client(key=config["VONAGE_API_KEY"], secret=config["VONAGE_API_SECRET"])
# get disk usage statistics for home directory
stats = psutil.disk_usage("/")
# device: give it an easily identifiable name e.g. server 1.89.200.4
device = "local dev machine"
# send out a message indicating the disk usage level
client.messages.send_message(
{
"channel": "sms",
"message_type": "text",
"from": config["VONAGE_SENDER"],
"to": config["RECIPIENT"],
"text": f"Your Disk Usage is at {stats[-1]} % on {device}.",
}
)Damit können Sie die Datei monitor.py Datei mit dem folgenden Befehl ausführen: python3 monitor.py.
Wir möchten Benachrichtigungen erhalten, sobald ein bestimmter Schwellenwert auf unserem Gerät erreicht wird. Wir können unsere
monitor.pyDatei so ändern, dass sie uns Warnungen sendet, sobald ein bestimmter Schwellenwert erreicht wird:
# our previous code remains as is on this section
...
# the disk usage threshold. Adjust this to an acceptable threshold of your choice
threshold = 50
# if disk usage is above given threshold, send out an sms alert
if stats[-1] > threshold:
client.messages.send_message(
{
"channel": "sms",
"message_type": "text",
"from": config["VONAGE_SENDER"],
"to": config["RECIPIENT"],
"text": f"Your Disk Usage is at {stats[-1]} % on {device}. Delete some files soon to create some disk space!",
}
)
Bonus
Auf Unix-Systemen können wir dieses Programm als Cron-Job einrichten, der täglich (oder je nach gewünschter Häufigkeit) ausgeführt wird, um regelmäßige Überprüfungen der Festplattennutzung durchzuführen:
Bearbeiten Sie Ihren crontab-Eintrag in einer Terminalsitzung mit folgendem Befehl sudo crontab -e und fügen Sie den folgenden Cron-Eintrag hinzu, der täglich um 6:00 Uhr morgens ausgeführt wird:
0 6 * * * cd <project_directory> && .venv/bin/python3 monitor.pyUnter Windows können wir unser Programm mit den folgenden Schritten als geplante Aufgabe für die tägliche Ausführung einrichten:
Öffnen Sie den Aufgabenplaner über das Startmenü.
Wählen Sie in der Aktionsleiste die Option Aufgabe erstellen, um einen neuen Cron-Job zu erstellen.
Fügen Sie im Fenster "Aufgabe erstellen", das auf Ihrem Bildschirm erscheint, auf der Registerkarte "Allgemein" einen Namen für die Aufgabe hinzu und belassen Sie die anderen Optionen als Standard.
Wählen Sie die Registerkarte "Auslöser" und klicken Sie auf "Neu", um einen Auslöser hinzuzufügen.
Wählen Sie im Fenster "Aufgabe beginnen" im Seitenbereich "Täglich" und als Startzeit z. B. 06:00:00 Uhr. Belassen Sie die anderen Optionen als Standard.
Erstellen Sie eine neue Aktion im Aktionenbedienfeld und geben Sie im Bedienfeld "Neue Aktion" einen Pfad zur ausführbaren Python-Datei an, die sich aus der Ausführung des folgenden Befehls in einer Eingabeaufforderung ergibt:
where python.Fügen Sie im Abschnitt "Argumente hinzufügen" den Dateinamen hinzu, z. B.
monitor.py.Fügen Sie im Abschnitt start in den Pfad zum Projektverzeichnis hinzu:
C:\Users\<user>\path\to\project-directory.
Schlussfolgerung
Wir haben ein vollwertiges System zur Überwachung der Festplattennutzung mit einer Warnkomponente eingerichtet, die sich auf die Vonage-APIs stützt, um SMS-Warnungen zu versenden.
Wenn Ihnen das gefallen hat oder Sie weitere Fragen haben, können Sie mir eine Nachricht schicken an E-Mail oder sehen Sie sich das vollständige Codebeispiel auf GitHub.
Vonage begrüßt immer die Beteiligung der Community. Bitte werden Sie Mitglied bei Vonage auf GitHub und dem Vonage Community Slack.
Teilen Sie:
Adrian is a problem solver and Python developer advocate. He works with various programming languages to solve engineering problems. Introduced to programming at age 16, Adrian has spent the last 8 years oscillating between backend development and automation. He lives in Nairobi and when not writing code he is most likely playing Call Of Duty or NBA 2K on his PlayStation, riding his bicycle or binge watching the latest series on Netflix.