Twitter Servermonitoring

twitterheartbeat_header1

Seitdem ich einen Twitteraccount habe, denke ich angestrengt darüber nach, welche Haushaltsgegenstände ich irgendwie dazu bringen könnte mit Twitter zu kommunizieren. Die KM2-Kaffeemaschine fällt leider flach (Frenchpress). Aber dann lassen wir eben die Server twittern. Für alle Kontrollfreaks Für alle die ihre Server ungern unbeobachtet lassen, habe ich mal ein kleines Script geschrieben, mit dem man seine Server twittern lassen: Ob es ihnen gut geht, ob sie genug Speicher haben, ihnen etwa schlecht ist, sie Langeweile haben etc.

Ideal für alle die auch abends per iPhone oder PDA noch schauen wollen, ob denn wirklich alles okay ist.

Das Script ist ziemlich minimalistisch, hat keinerlei Abhängigkeiten (es wird kein cURL oder so benötigt) und müsste so ziemlich überall laufen was so gerade Linux durchgeht. Lizenz ist BSD, also mitnehmen, einbauen, Spaß haben.

Installation:

  1. Twitterheartbeat runterladen, entpacken, ausführbar machen
  2. In der Datei twitterheartbeat.php $TWITTERUSERNAME und $TWITTERPASSWORD setzen
  3. Cron mit dem gewünschtem Formatstring einrichten.

Die Formatstring-Platzhalter:

$ ./twitterheartbeat.php --help
twitterheartbeat 1.3
Publishes server information (heartbeats) to twitter
Usage: twitterheartbeat FORMATSTRING
or:    twitterheartbeat --debug
Formatstring placeholders:
        %h                 Hostname
        %la                Load average
        %th                System uptime human readable
        %tt                System uptime in seconds
        %ab                Days till alex birthday
        %ri                Memory information
        %pc                Count of all processes
        %uc                Count of users logged in
        %lt                Local time of the machine
        %f(PARTIONNAME)    Free disk space of PARTITIONNAME in bytes
        %fh(PARTIONNAME)   Free disk space of PARTITIONNAME human readable
        %u(PARTIONNAME)    Used disk space in bytes
        %uh(PARTIONNAME)   Used disk space human readable
        %p(PROCESSNAME)    'yes' if PROCESSNAME is running, otherwise 'no'
        %pc(PROCESSNAME)   Count of running processes  matching PROCESSNAME
        %vnh(DEVICE)       vnstat statistics for the current hour
        %vnd(DEVICE)       vnstat statistics for the current day
        %vnm(DEVICE)       vnstat statistics for the current month
Examples:
        twitterheartbeat "%h: %th - %uc logged in, %la"
        twitterheartbeat "%h: srv: free %fh(/srv/) - used %uh(/srv/)"
        twitterheartbeat "Bake a big, fat cake, %ab till alex great day!"

Cron-Beispiel: veröffentlicht alle fünfzehn Minuten Serverinformationen (alles in einer Zeile):

0,15,30,45 * * * * /path/to/twitterheartbeat.php \
   "%h: Load: %la, srv: free %fh(/srv/), used: %uh(/srv/) - up for %th"

chirp, chirp

Speichern, anderen zeigen, genießen:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Technorati
  • MisterWong

Geschrieben am Montag, 20. April 2009, von Alex, abgelegt unter Allgemein

Tags: , , , , ,

Andere Beiträge mit ähnlichen Inhalten, die Dich evtl. auch interessieren könnten:

13 Antworten zu “Twitter Servermonitoring”


  1. Ada sagt:

    Super Sache! Und diese schnuckeligen Vögel erst.

  2. SuperMario sagt:

    Goil! Goil! Goil! Tausend Dank! :o )

  3. SuperMario sagt:

    Hm… es twitter seit dem 06. Aug. ab 3 Uhr nicht mehr… twitter.com war down… am system wurde nichts geändert und das script haut keine fehlermeldung raus… hat twitter.com was zwischenzeitlich an der api geändert?!

  4. [...] Update: Eine neue Version (1.2) von Twitterheartbeat ist da. Verbessert ist vor allem die Stabilität, die Debug-Möglichkeiten und noch ein paar kleine [...]

  5. Alex sagt:

    @SuperMario: Ich hab mal eine aktualisierte Version online gestellt. Lass es mal mit –debug laufen.

  6. SuperMario sagt:

    @Alex: Super, werde ich gleich mal antesten! Vielen vielen Dank!

  7. SuperMario sagt:

    Obwohl seit gestern Version 1.1 ohne Hand anzulegen wieder funktioniert, frag mich nicht warum, läuft 1.2 aller erste Sahne! Vielen Dank!

    Requestet Feature:
    * Traffic Anzeige (Optionen: aktueller I/O, I/O Gesammt, Monat, Woche, letzte 24h, letzte Std., etc.) auf Basis von vnstat oder so…
    * Paypal Donate Button ;)

  8. SuperMario sagt:

    Ich seh gerade, Ihr sitzt auch in Düsseldorf! Was trinkt Ihr gerne für ein Kaffee? ;)

  9. [...] schnell hier die frohe Kunde, dass es nochmal eine neue Version (1.3) von Twitterheartbeat gibt. Neu hinzugekommen ist vnstat-Support – das Twitter Servermonitoring Script kann jetzt [...]

  10. Alex sagt:

    @SuperMario: Zieh mal die 1.3 Version :-) vnstat Support ist jetzt drin.

    Als Betatester bist Du natürlich herzlich auf einen Kaffee hier bei KM2 eingeladen. :-)

  11. SuperMario sagt:

    Juuhuuu! *freu_mir_ein_keks*

    Wenn du mir sagst, was für ein Kaffee Ihr “verbraucht”, bring ich mal als Dankeschön welchen mit! :)

  12. SuperMario sagt:

    Huhu!

    Hier als Dankeschön ein kleiner Betatestreport:

    Erstmal ein fettes Lob! Läuft extrem geschmeidig! :)

    Abteilung Schönheitschirurgie:

    1. Beispielsweise wird bei der Arbeitspeicher-Ausgabe folgendes angezeigt: “Total: xxx, Free: xxx, Used: xxx”. Ich habe es bereits für mich und würde es ‘ab Werk’ wie folgt einstellen: “MEM: xxx / xxx” = “MEM: free / used”. Das selbe gilt Festplattenplatz, usw. Getreu dem Motto: ‘Ik hab doch nur 140 Zeichen!’ ;)

    2. Bei den Prozessen, hab ich ‘yes’ und ‘no’ gegen ‘run’ und ‘stop’ getauscht. Bei ‘stop’ reagiert mein Puls empfindlicher als nur auf ‘no’… ;)

    Abteilung Schädlingsbekämpfung:

    Die ersten 6 Zeichen nach dem Eintrag “%vnm(DEVICE)” werden ‘geschluckt’… ‘überschrieben’… nicht angezeigt…

    Wie auch immer… Aktueller Workaround: Den Eintrag zum Schluss setzen. Fällt dann nicht auf! ;)

    Fazit:

    Sehr geiles Script! Fasst die wichtigsten Eckdaten zusammen und erspart damit das umständliche Browsing verschiedener Monitoring-Webinterfaces auf dem iPhone & Co.

  13. [...] TwitterHeartbeat A server monitor script to keep track of your servers – written in pure PHP, no dependencies (i.e. no cURL needed). by KM2 [...]


Eine Antwort hinterlassen