Are you looking for a 3rd party to monitor your servers/sevices or an in-house system?
If you don't mind doing all the config, Nagios is extremely flexible/expandable but I'm not 100% sure about bandwidth info... I've always used MRTG for that sort of thing.
I run my own monitoring scripts to just check service availability, etc. that emails/pages on failure and restore. I have been looking into a 3rd party such as Hyperspin for SLA details but haven't spent much time researching it yet.
You said you've seen Nagios but haven't set it up. There's a great tutorial on this here. I personally was a little overwhelmed by the installation provided by their user guide but the aforementioned link was much more helpful.
It can do a bit of the other things but it depends on how you tweak it. I also use HostTracker.com to monitor downtime of my websites. Best thing is that it's free.
We use several monitoring companies such as Hyperspin, HostTracker, SiteUptime, ServiceUptime but we do have SMS notifications, as well as obviously email alerts, with HostTracker and it seems very reliable
I was trying HostTracker.com and getting a spam page
so, yeah... http://host-tracker.com/ is returning an internal error - so technically it's not down as it's responding, LOL
I use a semi-in-house system built upon a perl script and wget to verify responses and report failures (i.e. port 80 responds with "200 OK" then host is up, if it responds with anything else, trigger an alert with the details - if no response, trigger an alert with "no response" as reason)