we use zabbix. we run the agent on our linux boxes and also start zapcat using the class that follows. essentially you go into the zabbix console and setup "hosts" for the zapcat port, and "hosts" for the zabbix agent. then setup items for the "zapcat host" that are JMX metrics. info on zapcat can be found here, http://www.kjkoster.org/zapcat/Zapcat_JMX_Zabbix_Bridge.html.

we are also working on a "push" model because as someone else mentioned, zabbix will open a connection to the cassandra node for *every* JMX metric. with push we can send a blob of data in one connection.


public class CassandraDaemonWithZapcat extends CassandraDaemon {
    private static Agent zcAgent;

    private static void startZapcat() {
        zcAgent = new ZabbixAgent();
    }

    private static void stopZapcat() {
        if (null != zcAgent) {
            zcAgent.stop();
        }
    }

    /**
     * Main entry point. starts Zapcat then calls
     * {...@link CassandraDaemon#main(String[])}.
     *
     * @param args
     *            command line args
     */
    public static void main(String[] args) {
        startZapcat();
        try {
            CassandraDaemon.main(args);
        }
        finally {
            stopZapcat();
        }
    }
}


On 01/10/2011 08:40 AM, Jedd Rashbrooke wrote:
  Hi Daniel,

  A recent web search found your earlier message, but I
  had a few (potentially dumb) questions - so this is very
  good timing! :)

  When you say start with Cassandra - my first dumb
  question is how you actually do this.  Are you using
  packaged versions or tarball installs of Cassandra?

  With the output - I've only ever used zabbix_agent.conf
  entries that deal with one line of output at a time - do
  you parse that output that same way, making ten
  separate calls to the web server, or is there some
  fancy way of pulling all that information into Zabbix
  in one go?

  jedd.

Reply via email to