Project

What it is

STARCAT is a tool which gathers statistical data from various sources, stores them in round-robin databases, and generates nice reports from it in variuos formats (e.g. OpenDocument, HTML, Wiki,...)

What it isn't

STARCAT isn't a monitoring tool, it can't monitor your network or your applications (although it can get its values from other monitoring tools).
If you're searching for a monitoring tool, we suggest for example Hobbit or Nagios.

What it can do for you

You have several servers running a bunch of applications, and nice monitoring tools to ensure everything's working and all services are reachable.
But, your boss (or your customers) want you to prove that everything's okay, they'd like to get monthly or weekly reports showing the availability of their services, preferably with some nice diagrams or spreadsheets, and of course in a human-readable format. That's where STARCAT comes in:
STARCAT can gather values from your monitoring systems, e.g., read the RRD-databases that are written by them, and calculate availability or system load out of them. Afterwards, you define your reports using XML templates, use STARCAT's web frontend to choose a report and let STARCAT generate it for you or even send it directly to your boss. You can even automate this, and tell STARCAT to generate and send a report regularily.

How it works

STARCAT is divided into four main parts:
The Collector gathers data from a bunch of sources, for example RRD or SQL databases, log files, SNMP, etc., does some calculations with them, and sends them to the Listener.
The Listener gets the data collected by the collector, and stores them in RRD databases, which are used by the Reporter to generate nice reports.
The Reporter reads the values from RRD databases written by the Listener, and generates reports from them using XML templates.
The Webfrontend can be used to choose reports out of the pre-defined templates, and specify preferences for them.
Since collector and listener use TCP to communicate with each other, it's possible to run them on different machines, or even have a farm of collectors reporting to one or more listeners.

A look under the hood

STARCAT is written in PERL and PHP (collector, listener and reporter are written in PERL, and the web-frontend is written in PHP). The collector uses POE (Perl Object Environment) to implement non-preemptive multitasking.

Known bugs, missing features

- The collector does not reconnect to the listener when the listener crashes
- The reporter is under construction, and not really available yet
- The web frontend is missing