AwakE is a system monitoring package that proactively monitors computers, and the services running on them, over a network.

The system runs on Linux or BSD kernels. Although we used our usual Red Hat 9 machine, the documentation cites support for SlackWare, Debian and Mandrake Linuxes and for FreeBSD 4.x and NetBSD. Aside from FreeBSD, no specific versions are mentioned, though we get the impression that there's nothing scary happening in the back-end code, so the chances are it'll be happy on anything fairly recent. The only precondition is that the system should also be running the PostgreSQL database system (or, if you're feeling rich, Oracle) as it uses this to store its data.

Installation is simple, although it does need some manual configuration to ensure that the PostgreSQL database is accessible to the software. Once this is done, you run a simple installer script, provide some basic information (such as the password for the Admin account) and let it spend half a minute copying files. After installation, management is done entirely via a Web GUI.

The devices you manage with AwakE are split into "companies" - so each device belongs within a company. Along with the omnipotent admin user, you can define company-specific user IDs, each with either full admin rights or limited (monitoring and reporting only) access; users' rights extend only within their company, so they can't see or touch another company's devices.

Each device you tell the system about has any number of services, each of which can be probed individually. So you may, for example, set up a ping service for each box, but add an SMTP service for the mail server and a Web service for the HTTP server.

Basic service types such as ping simply decide whether a device is up or not: if the ping works then the machine is up and if it doesn't work then it's not. The clever bit comes with the more complex service tests, such as SMTP: not only will it make sure that the server is accepting connections on SMTP port 25, it will also check that the server's greeting message is what you expect. It can send a command to the server in order to elicit a response. So as well as ensuring that the service is listening for calls, it makes a good stab at ensuring that it responds to requests and gives the right answers as well. Rather helpfully, there is a little wizard that assists you in building the service monitors, this goes away and retrieves the response from the remote server so you don't have to type it in yourself.

Alongside the IP service-based checking engine is an SNMP-capable client. As with the service verification tool, you tell it what machine to connect to and which part of the MIB to look in, along with the string to expect back. Like the IP-based service monitor, this allows you to both detect problems (e.g. with interface states in routers) and check other information to ensure that someone has not altered something they shouldn't have.

When a problem does occur, the system will let you know via a pop-up box, an audible warning or an email. There is also a pretty little graphical screen that shows you the current status of each monitored device (the icons are coloured with the usual red/yellow/green convention) and a simple reporting engine that lets you look at historical data.

AwakE is a useful package, and the wizard tool in particular is fab, but it could do with some refinements. The main issue is that you need to know too much about SNMP to be able to use the SNMP facilities - we had to get out the SNMP textbook as we couldn't remember enough about the MIB hierarchy to make the thing fly.

The other issues relate to the documentation (which is useful but which could do with being edited by a native English speaker) and a couple of oddities in the GUI (notably the fact that an admin user whose rights are confined to a company still sees the "Add a company" button, even though clicking it doesn't do much). For 375 quid, though (based on exchange rates at the time of writing) it's not a bad addition to the network monitoring armoury.


A useful and clever tool as long as you know your SNMP, it needs only a spare Linux or BSD system.