JWSmythe

Following are some examples of sites I've worked on, created, or projects I've done over the years. Please read the full description to understand what was involved in each.


Free Internet Press

Prima Dogs

CryptMsg

Drain Doctors, Inc

Geographic map of ping or traceroute

TrackCamping.com

BoT - Network Monitoring Tool

Massive Site Replication






     
bot Data Exists

BoT

BoT is a network/server monitoring tool, written entirely in Perl.

I started writing BoT as a proof of concept that I could monitor the networks as well as the commercial packages that were available at the time. It was monitoring some essential services, until one day I got a page from BoT saying a service was down, but the commercial product failed to notify us. Upon checking the GUI of the commercial product, we found that it considered the service still working and available, although BoT had detected it correctly and immediately.

Over the years, BoT grew to include any service that we needed watched and notified upon.

BoT was named because it needed a name that was easier to say than "That Perl script that checks the servers and pages us. The capitalization has no real significance, other than it identifies it from anything else which may be called "Bot".

BoT consists of only 3 scripts required by the main script, and a couple helper scripts to keep things running smoothly. He is intended to run once a minute, which has been very successful, even with monitoring several hundred services from a low end monitoring server.

BoT keeps it's configuration in flat files, and it's statistical information in DBM files, using AnyDBM_File. It is written to handle being called multiple times, once for each monitoring list, and will do collision avoidance, to keep the same test from running more than once.

As much code as possible was written into BoT's scripts, rather than depending on 3rd party Perl modules to be installed, for ease of migration to other servers. He has been migrated a lot over the years, which is generally a matter of copying his directory to another Linux machine, running him to ensure the Perl modules are all in place, and then removing him from the old server's cron.

Notification is sent via email to a list configured for each monitored service. Of course, the list may be shared among multiple services.

Besides the typical monitoring task, BoT will verbalize problems as they're detected if Festival is installed on the server, sound is configured correctly, and it is enabled in the main configuration file.

In the 7 years BoT has been in service, he has run completely fool proof, and has been an excellent tool for network monitoring. He has proven to be very easy to configure and reconfigure, as each service is a single line in a monitoring list, and he uses a standard format.

BoT is usually refered to as "he", as he is usually configured with a male voice with Festival, and he is one of the most annoying employees in any company. He doesn't sleep, and he'll complain if you don't do your job.

As typically configured, he will

  • verbalize a problem every minute that it exists
  • email notification to email and pagers at 5 minutes of downtime
  • email notifications every 30 minutes thereafter to ensure the problem is being worked on.