Server Monitoring mit apybot

Aus revampedia
Version vom 27. April 2015, 17:52 Uhr von Cem Aydin (Diskussion | Beiträge) (Kategorien eingefügt)

Motivation

Nach einem unbemerkten Ausfall eines unserer Server, gab es den Wunsch nach einer einfachen Überwachung/Benachrichtigung im Falle eines Ausfalls.

Diese soll auf unserem LTSP Server laufen, da wir diesen praktisch ständig benutzen und so einen Ausfall sofort bemerken.

Ich habe mich entschlossen dies mittels einem Python Script umzusetzen. So entstand der apybot.

Zuerst hatte ich die Idee im Falle eines Ausfalls Mails zu verschicken. Falls nun aber der Mailserver ausfällt funktioniert dies nicht. Nicht nur können dann keine Mails verschickt werden. Es können auch keine empfangen werden. Da wir auf freenode.net den IRC Channel #revamp haben, und dort auch present sind, entstand die Idee, statt der Mails, einen IRC Bot zu verwenden.

Über apybot

apybot ist ein einfacher IRC Bot, geschrieben in Python 3. Grundsätzlich kann dieser verschiedene Aufgaben übernehmen. Nicht zuletzt kann er als einfaches Beispiel für asynchrone Programmierung in Python 3 dienen.

Siehe dazu auch die Python Referenz (englisch): https://docs.python.org/3/library/asyncio.html

Weiterführende Dokumente zur asynchronen Programmierung in Python:

  • ?LINK?

Der source code des apybot ist in meinem git repository: ?LINK?

Features/Vorteile

  • Asynchrones IO (asyncio) / Ressourcenschonend
  • Reaktion auf private messages im IRC
  • Periodische ausführung von Funktionen
  • Einfachste Konfiguration
  • Einfach erweiterbar/anpassbar
  • Saubere moderne Programmierung
  • keine weiteren Abhängkeiten (für die Grundfunktion)

Konfiguration

IRC Netzwerk, Channel und gewünschter Nick werden direkt in der Python Datei angepasst.

[In Arbeit: Liste zu prüfender hosts.]

Anwendung

Befehle können dem apybot im IRC als private Nachricht geschickt werden:

\msg <nick_vom_apybot> <befehl>

Zur Zeit versteht der apybot die folgenden Befehle:

quote   Schickt ein Zitat zurück
        (Verwendet fortune, fortune muss auf dem System 
        auf dem der Bot läuft, installiert sein.)

Verwendung in der Revamp-it

[In Arbeit]

Vergleich C++ vs. Python

[In Arbeit]