I need some Perl modules which can server the following purpose.
To monitor up/down status of a given process.
Problem definition:
- What platform? Winbloze, *nix, VMS, or ????
- Assuming for a moment this is *nix is there a PID file I can use to determine the alleged PID of the runing process or are we going to have to search the process table?
To get the properties and values defined in some custom file (e.g an XML)
So... parse it... Check out
cpan:XML::Simple for instance.
To monitor port status and health
What is your criteria for health? What kind of port is it TCP or UDP? What's on the other side of that port? Is there authentication involved?
To write a log file and consolidate a log file and monitor errors.
Eh? Which is it, consolidate or write a log? Writing a log is pretty basic stuff and you don't need to find a module for that.
OPEN LOG," /var/log/mylogfile.log" or die "logging: $!";
printf LOG "Some pithy log message\n";
close LOG;
To get general health of the server – Disk, Memory, CPU, Partition etc
Again: define the platform. There are many ways to skin a cat here... of course the cat may not be too happy about being skinned.
To send traps to a server.
Seems to me you don't need a Perl module for this. There are a wealth of SNMP trap "senders" out there. On *nix snmptrap being the first to come to mind.
If you are trying to do system and/or network monitoring you might want to investigate Nagios or M/Monit. Where Nagios provides a means of centralized monitoring M/Monit runs on each host being monitored. M/Monit is largely Perl based and you can also mine it for "how do you do this" since you'd have the source code.
I've used both of those products (as well as other off the shelf products) in my professional world with a lot of success. I don't believe in rw-inventing the wheel when there are so many nice wheels to choose from.
Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg