A few weeks back, we were having trouble with dogma, our shared server where
taint.org is hosted, which would occasionally be unavailable for unknown
reasons. We needed to monitor its availability so that it could be fixed when
it crashed again, and we’d be able to investigate quickly. Since it was
happening mostly out of working hours, SMS notification was essential.
Normally, that kind of monitoring is pretty basic stuff, and there’s plenty of
services out there, from Host-Tracker.com to the
more complex self-hosted apps like monit
and Nagios which can do that. But looking around, I
found that none of them offered SMS notification for free, and since this
was our personal-use server, I wasn’t willing to sign up for a $10-per-month
paid account to support it, or buy any hardware to act as a private SMS
gateway.
Instead, I thought of Jaiku — the Finnish company which
offers a microblogging/presence platform similar to
Twitter. Jaiku had a couple of cool features:
- SMS notifications
- it’s possible to broadcast messages to a “channel”, which others could subscribe to, IRC-style
- it has an open API
This would allow me to notify any interested party of dogma’s downtime,
allowing subscribers to subscribe and unsubscribe using whatever notification
systems Jaiku support.
With a little perl and LWP, I rigged up a quick monitoring script to check http://taint.org/ via HTTP, and report if it was unavailable over the course of 5 retries in 50 seconds. If it was broken, the script sends a JSON-formatted POST request to Jaiku’s “presence.send” method, informing the target channel of the issue. (Perl source here.)
You can see the ‘#dogmastatus’ channel here — as you can see, we fixed the problem with dogma just over 2 weeks ago ;)
It’s worth noting that I had to set up an additional user, “downtimebot”, on
Jaiku to send the messages — otherwise I’d never see them on my configured
mobile phone! Jaiku uses the optimisation that, if I sent the message, there’s
no need to cc me with a copy of what I just sent; logical enough.
Anyway, if you’re interested in dogma’s availability (there might be one or two taint.org readers who are), feel free to add yourself to the #dogmastatus channel and receive any updates.
Update: Fergal noted that it’s pretty simple to use Cape Clear’s assembly framework to perform a HTTP ping test with output to Jabber/XMPP. nifty!
Tags: dogma, hacks, jaiku, microblogging, notification, scripts, sms, software