Skip navigation
Currently Being Moderated

How to install distributed collectors

VERSION 12  Click to view document history
Created on: Sep 14, 2009 11:21 AM by Noel Brockett - Last Modified:  Feb 28, 2012 6:43 PM by dpetzel

** Be Sure You've Looked At http://community.zenoss.org/docs/DOC-5861 before going to crazy with these steps. The linked ZenPack takes care of many of these steps automatically **

 

It is possible quite easily to install distributed collectors with zenoss core. This document is mostly based on an old forum thread.http://forums.zenoss.com/viewtopic.php?t=7907

 

This example will use the main server as zenoss.paris.fr and a distributed collector as zenoss.noida.in.

1. On the main server zenoss.paris.fr, activate zenrender

 

1.1 Edit file /usr/local/zenoss/zenoss/bin/zenoss


     if [ ! -f $ZENHOME/etc/DAEMONS_TXT_ONLY ] ; then
        C="$C zeoctl"
        C="$C zopectl"
        C="$C zenhub"
        C="$C zenping"
        C="$C zensyslog"
        C="$C zenstatus"
        C="$C zenactions"
        C="$C zentrap"
        C="$C zenmodeler"

        C="$C zenrender"

        C="$C zenperfsnmp"
        C="$C zencommand"
        C="$C zenprocess"
        #C="$C zenmail"

1.2 Launch "zenrender start" as zenoss user 'su - zenoss'

 

2. Install zenoss core on the remote server zenoss.noid.in, but do not launch it.

 

2.1 Get rid of mysql, because we're going to use the central mysql server


If you are using the stack edition, modify /usr/local/zenoss/ctlscript.sh
elif [ "x$1" = "xstart" ]; then

 

    if [ "x$2" = "xmysql" ]; then
        if test -x $MYSQL_SCRIPT; then
###            $MYSQL_SCRIPT start
            MYSQL_ERROR=$?
        fi 
elif [ "x$1" = "xstop" ]; then

 

    if [ "x$2" = "xmysql" ]; then
        if test -x $MYSQL_SCRIPT; then
###            $MYSQL_SCRIPT stop
            MYSQL_ERROR=$?
            sleep 2

2.2 Change zenoss start to remove zenhub and add zenrender

Create an empty file $ZENHOME/etc/DAEMONS_TXT_ONLY

, and then list all needed modules in a file $ZENHOME/etc/daemons.txt

 

zenping
zensyslog
zenstatus
zentrap
zenmodeler
zenrender
zenperfsnmp
zencommand
zenprocess
zenwin
zeneventlog

 

 

2.3 allow the main server to snmp in file /etc/snmpd.conf

 

rocommunity public zenoss.paris.fr

 

2.4 Edit the conf files to use the main server zenhub but the local monitors


/usr/local/zenoss/zenoss/etc/zencommand.conf, zendisc.conf, zeneventlog.conf, zenmodeler.conf, zenperfsnmp.conf, zenping.conf, zenprocess.conf, zenrender.conf, zenstatus.conf, zensyslog.conf, zentrap.conf, zenwin.conf, zenwinmodeler.conf

 

monitor         zenoss.noida.in
hubhost         zenoss.paris.fr

 

Note that "monitor" can not be set to localhost or 127.0.0.1.  
It needs to be set to an IP or hostname that corresponds to a network interface on the server.

 

2.5 Use the remote zope engine to use the main server engine


/usr/local/zenoss/zenoss/etc/zope.conf
<zodb_db main>
  mount-point /
  # ZODB cache, in number of objects
  cache-size 5000
  <zeoclient>
    server zenoss.paris.fr:8100
    ...
  </zeoclient>
</zodb_db_main>

 

2.7 Install all needed zenpacks and plugins

 

This is most important if you are using nagios plugins or winexe template. Don't forget to copy all this binaries to the remote server, as it is this server that will run them against the devices.

 

2.8 fire up zenoss

3. On the main server zenoss.paris.fr, Add the remote zenoss as a new device


3.1 Management / Add Device : zenoss.noida.in, use the main server as collector

4. Configure the remote collector on the main server


4.1 Management / Collector / Add Collector : use the DNS name zenoss.noida.in as ID

 

4.2 Edit the newly created collector and change the "render URL" to use the zenders XML-RPC

 

Render URL : http://zenoss.paris.fr:8090/zenoss.noida.in

5. Transfer existing devices to the remote distributor

 

5.1 RRD performance data are to be copied to the remote server

 

zenoss.paris.fr# scp -Cr /usr/local/zenoss/zenoss/perf/Devices/mydevice zenoss.noida.in:/usr/local/zenoss/zenoss/perf/Devices

 

5.2 don't forget to add the remote collector in devices /etc/snmpd.conf

rocommunity public zenoss.noida.in

 

5.3 Move the devices to the remote collector

 

Management / Collectors / zenoss.paris.fr
Select the devices and use "Set collector"

Comments (38)