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