Monitoring server uptime
Supposing that you've done a great job in deciding which host is right for you, the next thing that you have to do is to sign-up for their services. Obvious, right?
Then come other things like setting the nameservers to point to your new host, getting used to the control panel, setting-up permissions, email accounts, ftp accounts and of course uploading files. Hopefully everything will be working smoothly and this task will be over in a few days.
Most people stop here forgetting about one small but very important detail. If you are really serious about your website, or if your website is serious in nature (it's a business website), you should keep an eye on your host at all times. It's not enough to verify daily if your website is up. To be really certain that your website is up most of the time, you should monitor server uptime in a serious manner. That way you can not only claim compensation if the host does not meet the guaranteed uptime (in case the hosting company had such a guarantee in place) but you'll know when the website is down.
This will give you the opportunity to contact the host soon after the downtime first occurred, thus potentially decreasing the length of the downtime.
The simplest uptime monitoring is Hosted Monitoring. That means a third party will take care to monitor whether your website is online or not. Hosted monitoring has certain advantages over "in house" monitoring, but to understand the advantages we must first understand how monitoring is done.
If you decide to verify if your website is online all you have to do is visit the website. If the page appears as it should, then the website is up. Similarly, a computer program run on a computer owned by the monitoring company, will visit periodically a designated page on your website.
So far it's simple, but as usual, simple things get complicated easily. When you visit a website, 99% of the time you access it using HTTP. HTTP is a communication protocol. I will not go into much detail as it's not really necessary.
To communicate in HTTP, a special kind of server (a program) has to function properly on your host's machine (the computer where your website is hosted). By visiting your website, you verify that the computer is ON and that the http (web) server is running.
The funny thing is that many "servers" (software servers) have to run simultaneously on that same machine: emails are transmitted using special protocols (POP, SMTP and/or IMAP usually) and, although many people are unaware of it, there is a special protocol for file transfer FTP. This doesn't mean that the other protocols do not transmit files, but they're not specialized in the way that FTP is.
There are also other services that have to be tested, such as PHP. If your website is PHP based you need to find a way to determine if PHP is running, 'cause if it's not, the pages will not appear to your visitors as you designed them to.
We can easily observe that server uptime is a complex thing. We have HTTP uptime, POP/IMAP uptime, FTP uptime etc. Based on these we could actually redefine uptime as the sum of moments when all the services promised by the host are available, not as the moments when the website can be visited by people (as it's usually understood).
Getting back to monitoring uptime, we have to conclude that in order to say that a website (or web server) is UP, more tests have to be conducted than one can initially envision.
Different monitoring companies offer different types of services. Most of them let you decide which uptime you want to monitor: http, email etc.
An important feature of an uptime monitoring service is the time between the tests. There is a balance however. The price is the balance! If tests are frequent the monitoring is much more exact, but the price is significantly higher.
Now, if your website is not "mission critical" or if your budget is quite low, you may even go for a free service. A free service is definitely better than nothing. If your website is "mission critical" then you should go for a service that checks uptime every 10 minutes or less.
A main advantage of "hosted monitoring" is that such services monitor uptime using more that a single server and that these servers are located in different parts of the world, through different networks. When you check uptime from a single computer using a single Internet connection it's possible that your network is down, or that you cannot reach your website because of your ISP. You should make sure that the monitoring service uses multiple servers in different locations!
Another important feature is the number of contact methods used by the monitoring company in case your website is down. There are lots of ways in which you might want to be notified: by Phone, SMS, AIM, Yahoo!, MSN, ICQ, Numeric Pager, Alpha Pager, Email etc.
Choosing the right monitoring service can be just as hard as choosing hosts. There is one hosted monitoring service that I've heard good things about from many people on WHT. Its name is Alertra. You can try it freely, as it has a Free Trial. In fact, most hosted monitoring services offer a free trial, some even going as far as offering a free basic service (checking only HTTP usually).
If you'd like to go for a basic free service, here are a couple of such services: siteuptime.com (HTTP, POP, SMTP, FTP) and websitepulse.com (HTTP). Note that Websitepulse also features a free trial where you can try services valued at up to 75$, for two weeks.
I've been using unialert.com, basicstate.com, uppanel.com, logicreach.com, serviceuptime.com, montastic.com and host-tracker.com and I find them quite good. They allow you to check your site quite often, especially considering that they're free. When using free service, my suggestion would be to use a number of them simultaneously, as their quality can fluctuate over time, but together they should be able to let you know of any significant downtime occurrences.
The one service that I've used and has never failed me, was pingdom.com (that's an affiliate link; just type pingdom.com in your browser instead of clicking and I won't get a commission). I've managed to snatch a free account there when they were having a promotion, and for a whole year I've used their service. The accuracy left me quite impressed.
This may be rather obvious, but I'll say it anyway: make sure that the email address where downtime notices will be sent is quite reliable, and, most importantly not hosted on the server that you're monitoring.
If you decide to do your uptime monitoring "in house", there is software that you could use. Free software and paid software.
I can't really tell you which software is good or bad, but, as I've always been a fan of open source, I will invite you to first take a look at this free program: zabbix.sourceforge.net
Other software that you could use are:
Nagios.org - free
Conclusion: whatever you do, monitor your website's uptime. It's good to know if your website is up and verify if the host is providing a good service. Go for a free service if you really can't pay for monitoring, but do it! You need this kind of feedback; you really cannot rely on your own, "manual" monitoring.