Monitorizando sistemas con Twitter
Cada administrador de sistemas utiliza un método para tener monitorizados todos los sistemas que gestiona o controla, pero nunca está de más conocer nuevos métodos de monitorización.
El 6 de diciembre aparecÃa un mensaje en el blog de SUN sobre twittear desde la lÃnea de comandos con Python, poniéndonos como ejemplo:
#!/usr/bin/python import sys from os import popen def tweet(user,password,message): print 'Hold on there %s....Your message %s is getting posted....' % (message, user) url = 'http://twitter.com/statuses/update.xml' curl = 'curl -s -u %s:%s -d status="%s" %s' % (user,password,message,url) pipe = popen(curl, 'r') print 'Done...awesome' if __name__ == '__main__': if len(sys.argv) != 2: print "Usage: tweet.py " sys.exit() message = sys.argv[1] if len(message) > 140: print "Message too long" sys.exit() user = "barneystinson" #put your username inside these quotes password = "awesomeness" #put your password inside these quotes tweet(user,password,message)
Hoy mientras leÃa mis feeds, me encuentro con el siguiente script:
#!/bin/ksh export PATH=/usr/sbin:/usr/bin function tweet { echo tweeting $1 /usr/local/bin/tweet.py "$1" } function tweet_services { typeset zone="$1 " if [[ "$1" != "global" ]] then typeset zl="pfexec zlogin $1 " else typeset zl="" fi ${zl}svcs -x | nawk '/^svc:/ { s=$0 } /^Reason:/ { print s,$0 }' | while read line do tweet "$zone$line" done } function tweet_zfs { zpool list -H -o name,health | while read zfs state do [[ "$state" != "ONLINE" ]] && tweet "$zfs $state" done } function tweet_disks { export IFS=" " kstat -p -m sderr -s "Predictive Failure Analysis" | while read err value do (( $value != 0 )) && tweet "$err $value" done } function tweet_net { typeset speed=$(dladm show-linkprop -co VALUE -p speed nge0) if (( $speed != 1000 )) then tweet "network running in degraded state $speed" fi } function tweet_phone { if ! ping phone 1 > /dev/null 2>&1 then tweet "Phone is not responding" fi } for zone in $(zoneadm list) do tweet_services $zone done tweet_zfs tweet_disks tweet_net tweet_phone
Como el dÃa de hoy aparenta ser algo largo voy a crear mi propio script e integrarlo en los dos servidores de monitorización que tengo a dÃa de hoy corriendo Nagios.


















