Einfuhrung

In der Cloud-Infrastruktur-Landschaft ist die Uberwachung der Gesundheit und Ressourcen von EC2-Instanzen essenziell. Eine haufige Herausforderung fur Systemadministratoren besteht darin, sicherzustellen, dass der Festplattenspeicher nicht ausgeht, was zu Leistungseinbussen oder Service-Ausfallen fuhren kann. Wahrend AWS robuste Uberwachungstools wie CloudWatch bereitstellt, konnen diese zusatzliche Kosten und Komplexitat verursachen, insbesondere bei kleineren oder weniger komplexen Setups.

In diesem Artikel untersuchen wir eine einfache und kosteneffiziente Losung mit einem Bash-Skript, das als Cron-Job auf deinen EC2-Instanzen lauft. Dieses Skript pruft die Festplattennutzung der Instanz und sendet bei Uberschreitung eines definierten Schwellenwerts eine Warnung an einen Slack-Kanal. Diese Methode erfordert minimale Einrichtung, keine externen Uberwachungstools und halt die Kosten niedrig.

Warum du Festplattenuberwachung brauchst

Festplattenspeicher-Probleme werden oft ubersehen, bis sie zu Problemen fuhren wie:

  • Anwendungsausfalle: Anwendungen oder Dienste konnen ausfallen, wenn nicht genugend Festplattenspeicher fur Logging, Datenschreiben oder temporare Dateien vorhanden ist.
  • Leistungseinbussen: Geringer Festplattenspeicher kann zu Systemverlangsamungen fuhren, insbesondere bei Diensten, die stark auf Lese-/Schreiboperationen angewiesen sind.
  • Ausfallzeiten: Kritische Systeme konnen absturzen, wenn wesentliche Prozesse aufgrund voller Festplatten nicht ausgefuhrt werden konnen.

Die Bash-Skript-Losung

Hier ist die Losung mit einem Bash-Skript und einem Slack-Webhook. Das Skript pruft die Festplattennutzung des Root-Volumes (/) und sendet eine Warnung an einen Slack-Kanal, wenn die Nutzung einen definierten Schwellenwert uberschreitet. Es enthalt auch Informationen wie den Hostnamen, die private IP und die offentliche IP der EC2-Instanz, um die betroffene Instanz schnell zu identifizieren.

#!/bin/bash

THRESHOLD=85 # Define the disk usage threshold (in %) SLACK_WEBHOOK_URL=“https://hooks.slack.com/services/your/webhook/url"

Get EC2 metadata for hostname, public IP, and private IP

hostname=$(curl -s http://169.254.169.254/latest/meta-data/local-hostname) public_ip=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4) private_ip=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)

Check disk space usage for root directory

disk_usage=$(df -h / | grep -v Filesystem | awk ‘{print $5}’ | sed ’s/%//’)

if [ “$disk_usage” -ge “$THRESHOLD” ]; then message=“Disk usage on EC2 instance ‘${hostname}’ is at ${disk_usage}%. \nPrivate IP: ${private_ip} \nPublic IP: ${public_ip}. \nPlease extend disk space!”

payload=”{’text’: ‘$message’}" curl -X POST -H ‘Content-type: application/json’ –data “$payload” $SLACK_WEBHOOK_URL fi

Vor- und Nachteile dieses Ansatzes

Vorteile:

  1. Kosteneffizient: Keine zusatzlichen AWS-Services wie CloudWatch erforderlich, die Kosten fur benutzerdefinierte Metriken verursachen konnen.
  2. Einfach und leichtgewichtig: Die Losung verwendet native Tools (Bash, curl, cron), die auf fast allen Linux-basierten Systemen verfugbar sind.
  3. Sofortige Benachrichtigungen: Slack als Benachrichtigungskanal stellt sicher, dass dein Team Warnungen in Echtzeit erhalt.
  4. Anpassbar: Du kannst das Skript leicht anpassen, um verschiedene Schwellenwerte zu prufen, zusatzliche Verzeichnisse zu uberwachen oder die Haufigkeit der Uberprufungen zu andern.

Nachteile:

  1. Keine zentralisierte Uberwachung: Da das Skript auf einzelnen EC2-Instanzen lauft, gibt es kein zentrales Dashboard zur Anzeige der Festplattennutzung uber alle Instanzen hinweg.
  2. Wartung: Wenn du viele EC2-Instanzen hast, musst du dieses Skript auf allen bereitstellen und warten.
  3. Beschrankt auf Festplattenuberwachung: Dieses Skript uberwacht nur die Festplattennutzung, wahrend Dienste wie CloudWatch mehrere Aspekte der EC2-Gesundheit uberwachen konnen.

Fazit

Dieses Bash-Skript bietet eine einfache, kostengunstige Losung zur Uberwachung des EC2-Festplattenspeichers und zum Senden von Warnungen an Slack, wenn die Festplattennutzung einen kritischen Schwellenwert uberschreitet. Es ist eine ausgezeichnete Wahl fur Organisationen oder Projekte, die nicht die Komplexitat und Kosten von AWS CloudWatch oder anderen umfassenden Uberwachungstools benotigen.