Omonitor - simple system and network monitor for Unix and Windows
Updated 2009-05-03 by Oles Hnatkevych
Why?
Being not content with big brother and
hobbit monitors I decided to write my own, simple, small, easy
to configure and easy to setup monitor for my own needs.
Time to underline its features.
- free as gpl3
- nothing to compile
- php is the language of the choice for dirty work
- may use regular expressions in configuration files when appropriate to simplify configuration
- unix clients are just simple shell scripts run by cron, most checks are performed server-side
- server is pure php either as a xinetd/inetd service or a daemon
(using phpsocketdaemon)
- windows client is just php script run as service that gets information via dcom/wmi;
this makes one agent installation on windows be able to monitor the whole windows domain for information
available through wmi
- server side uses mysql (or sqlite3) to keep data and, of course, has web-interface
- anents can be tested manually
- web-interface bbtray compatible! ;)
Abilities
- agents report free disk space and running processes on unix/windows
- unix agents report load average and 'dmesg'
- unix agents search and report patterns in log files
(through fetchlog)
- server pings hosts, monitors urls for availability
- server may forward data to other servers, creating a tree-like network of servers
(each server performs its own checks using its own config)
- server sends email and/or jabber alerts
- admin can 'disable' test using web-interface until it goes OK again
Requirements
Unix agent:
- regular unix stuff like sh, cat, ps, uptime, grep, sort...
- nc (netcat)
- cron
- fetchlog (if you are going to monitor log files for patterns)
- + whatever else you might need for your own extensions
Windows agent:
- php cli (with modules pcre, win32services, sockets, having com and date builtin)
- running wmi service on monitored stations, and permissions to do so
Server (on unix):
- xinetd (inetd) (if not using a daemon server)
- apache web server for interface
- mysql or sqlite3 not too old (centos5 users must rebuild sqlite from fedora 10 src rpm);
mysql is preferable and innodb engine recommended
- fping (if you ping hosts)
- php (both cli and mod_php with pcre, pdo_sqlite, sockets, posix, pcntl, date)
- cron
Installation
Installation instructions are here
Configuration
Configuration instructions are here
To Do
- proper documentation
- monitor events on windows
- monitor cpu load on windows
- (possibly) check message source so servers can forward to one another without creating loops
- make web-interface to keep an eye on the server itself working properly ;)
- make freebsd port, centos/fedora rpm
- make graphical history of event using gd extension.