Title: Dimke WebMon Unum
Picture: WebMon Unum
Explanation: Dimke WebMon Unum for webserver monitoring allows to monitor any number of distant webservers.
Depending on how it is configured, Dimke WebMon Unum will send you email notifications and write the results into one and the same, or different webserver logfiles, depending on your preferences.
How it works: Dimke WebMon Unum contacts to a distant webserver of your choice and checks if a certain document is accessible, and if it has changed since the last check using either the HTTP HEAD or the HTTP GET command, for each one of the servers / documents defined in your webmonu config file. Using HTTP HEAD instead of HTTP GET is sufficient to provide the necessary information about the so called reference file and keeps the network traffic very low.
This works as long as you are monitoring static pages, but if the pages are created "dynamically", i.e., they're created during runtime, rather being stored on disk and loaded by the http deamon, HTTP HEAD will fail and so you need to switch to HTTP GET.
Dimke WebMon Unum provides both methods of getting a file.

Dimke WebMon Unum is completely written in Perl for Unix and is based on the legendary LWP library which allows to communicate with any kind of webservers. If the desired information about the reference file cannot be retrieved, Dimke WebMon Unum assumes, that the server is down or at least there are severe network problems like misconfigured firewalls and sends a notification about this malfunction.
As soon as the server is up again, or, technically spoken, Dimke WebMon Unum gets a sensful response to its HTTP GET / HEAD request, Dimke WebMon Unum will inform you about the server is running again.
Moreover, if the timestamp within the HTTP HEAD information differs from the value stored in Dimke WebMon Unum's header information file, in other words, if someone had updated the reference file in the meantime, Dimke WebMon Unum will inform you about it and will, for your convenience, provide you with a clickable link to the document.
Same, when using HTTP GET instead, except, that the document will be loaded and, to not be forced to spend disk space for the content itself, an MD5 checksum is calculated and stored as a replacement for the header info when chosing HTTP HEAD. These MD5 checksums are compared to each other and so any change within dynamic documents can be recognized, too.

To see how this works, just have a look into the sample files provided with the package.

For privacy purposes you have the choice to write the email addresses into the to.txt file, or into the bcc.txt file, or into both files. So, if you do not want people to see who gets these email notifications, just put the email addresses into the bcc field. In this case you can even leave the to.txt file empty whithout getting an annoying entry in the to- field reading "undisclosed recipient" or similar trash.
How to use: First, get the zipped tar package, unpack it and transmit it to your server. It is recommended to mkdir a new directory, which is not accessible from any webserver process which eventually runs on the same machine to prevent hacking attacks. Do a chmod u+x webmonu.pl on the command line to make it executable, if the FTP deamon has not done this yet. Be sure that the LWP library is installed because Dimke WebMon Unum makes heavily use of the classes defined within this object oriented library. If it is not present then contact your system administrator or install it yourself.
Then edit the to.txt and / or bcc.txt file as well as the main program file webmonu.pl where you should define where the configuration file webmonu.cfg is located, which has to be also edited according to your needs. Here you can define the server / document combinations desired.
After that, create a *.pag page information file in which you can define the URL, the method, i.e., HTTP GET or HTTP HEAD, whether or not the result should be written to a logfile, and if yes, to which file, also you can determine to which list of recipients the status information messages should be sent. In this file you can also decide to which *.hdi header info file the timestamp and status you want to be written to.
Then verify that everything is set up correctly and start Dimke WebMon Unum by hand typing ./webmonu.pl on the command line in the directory where you had put the files contained in the package.

For your convenience Dimke WebMon Unum will create a new logfile and automatically write the appropriate information like reference file name and which column means what, any time Dimke WebMon Unum does not find the logfile when started.

If all works satisfyingly, you are encouraged from now on to invoke Dimke WebMon Unum from out of the UNIX crontab, so that Dimke WebMon Unum will be started automatically within sensful intervals.
Just type "crontab -e" on the command line and add the following or a similar line - the following example shows how to define a cron job which will start Dimke WebMon Unum once per hour beginning at 5:59 in the morning and ending at 9:59 in the evening from Monday to Friday:
59 5-21 * * 1-5 /full/path/to/webmonu.pl 2>&1 >/dev/null
Download package: webmonu.tgz
[Developer Root] [Main Page]