Surveiller ses serveurs avec Ruby et Jabber

Voici un tout petit programme de moins de 20 lignes permettant très simplement de surveiller un serveur grâce aux protocoles Jabber.

Il suffit de créer un compte Jabber spécifique pour le serveur à surveiller, et de l'ajouter dans votre liste de contacts, celui-ci apparaitra avec pour status la charge du système, pratique ! non ?

En prérequi, il vous faut juste le gem xmpp4r-simple, installez le comme ceci :

sudo gem install xmpp4r-simple

Le code est très facilement étendable selon vos besoins, je vous laisse faire...

require 'rubygems'
require 'xmpp4r-simple'
 
LOGIN='le_compte_du_serveur@im.apinc.org'
PASS='lepass'
DEST='votre_compte_perso@im.apinc.org'
 
begin
  $im = Jabber::Simple.new(LOGIN, PASS)
  $im.deliver(DEST, "Hello !")
  loop do
    $im.status(nil, `hostname`.strip + ' : ' + `cat /proc/loadavg`.split.first(3).join(' '))
    sleep 30
  end
rescue => e
  p e; sleep 10
  retry
end

Lancez maintenant le script :

ruby jabber.rb

Voilà un petit aperçu du résultat dans Pidgin :

Status Jabber Ruby

Vus : 776
Publié par DigitalSpirit : 18