My company has a website with mostly static contents running on an old Linux machine. We hardly need to update the contents over a long period of time and everyone forgot about it. Then we got complaints from users as the site went down for a while. We fixed the problem and got back the site up in no time but it was quite embarrassing.
So I decided to implement a simple monitoring and alert system for future breakdown since the box is like really really old. I wrote a Python script to make requests to web pages and give out alert via sms if failed. For sms alert I used Twilio API.
import urllib
from twilio.rest import TwilioRestClient
def send_sms(urlstr, msg_string):
account_sid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
auth_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
client = TwilioRestClient(account_sid, auth_token)
message = client.sms.messages.create(body="Server Status (%s) : %s" % (urlstr, msg_string) , to="RECEIVER NUMBER", from_="YOUR TWILIO NUMBER" )
print message.sid
def main():
urlstr = "http://ourwebsite.com/"
result = ""
try:
result = str(urllib.urlopen(urlstr).getcode())
except Exception,e:
result = "SERVER DOWN"
if result != "200":
send_sms(urlstr, result)
#print "NOT OK"
print result
if __name__ == '__main__':
main()
Above simple script will check and send out sms if the web site is down. Go check out Twilio for awesome phone and sms system.