No Node Left Behind

Currently Being Moderated

How to install distributed collectors

VERSION 5  Click to view document history

Created on: Sep 14, 2009 11:21 AM by Noel Brockett - Last Modified:  Dec 15, 2009 4:49 PM by wgoodric

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 Launche "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 ride of mysql, because we're going to use the central server mysql


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
zenactions
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/zenactions.conf, 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

 

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. Transfert 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"

Average User Rating
(0 ratings)
jenkinskj jenkinskj  says:

I am creating a new data collector and removed zenhub from $ZENHOME/etc/daemons.txt.

 

Should the following Zenoss daemons run on a data collector? If so, how is they used?

 

zeoctl
zopectl
zenjobs

 

- Ken

jenkinskj jenkinskj  says:

I am sorry if the question sounds trivial but I have not set up a data collector before.

 

I am able to connect to the data collector using a standard URL http://zenoss.noida.in:8080Should the Render URL : http://zenoss.paris.fr:8090/zenoss.noida.in to a data collector render in a browser or is this used internally by Zenoss under the covers to render RRD files from the data collector?

 

When I attempt to connect to a data collector which is up and running using the 8090 path listed above, I get a page with the following error. Please let me know

 

web.Server Traceback (most recent call last):

exceptions.IndexError: list index out of range

wgoodric wgoodric  says in response to jenkinskj:

@jenkinskj  Using the instructions above, accessing the collector at it's IP at 8080 should not work. What did you do to enable that ability? And can you see performance data?

 

I added zeoctl and zopectl to the daemons list above and it is listening at 8080 but not responding.

 

My understanding is that the performance data stays on the collector.

jenkinskj jenkinskj  says in response to wgoodric:

For the collector to work via URL via port 8080, Zope and ZOE was enabled on the collector. I suspect that these two daemons should not have been set up to run on the collector.

 

I made an attempt to remove zeoctl and zopectl from the daemons.txt file, stopped Zenoss and restarted it and ZEO and ZOPE daemons are still running on the collector. I suspect that we need to manally remove the daemons from startring up on the collector.

 

You are correct RRD performance data stays on the collector. What I wanted to find out about is if the collector render URL should display anything via port 8090 or is this URL used internally to pass RRD data from collector to main server. When I try to connect to the URL http://zenoss.paris.fr:8090/zenoss.noida.in via a browser, I get a bunch of errors.

 

- Ken

wgoodric wgoodric  says in response to jenkinskj:

I think when you removed zopectl and zeoctl from daemons.txt, they were skipped on shutdown. If you manually stop those and restart the stack, they will not come back up.

 

Can you see rrd graphs of monitored devices in the collector's interface?

 

I see the same errors when going to that render URL above.

jenkinskj jenkinskj  says in response to wgoodric:

Updating the daemons.txt file as you suggested on the collector worked. Thanks for sharing.

 

As far as the rrd graphs go on the collector's interface, I have not created any devices just yet.So, I am not able to see the graphs until I move a device over to the collector.

 

I need to set customize the RRD create commands before monitoring devices on the collector and on the main server. For this test server, I would like to contain one month of data. Do you have any examples for RRD AVERAGE and MAX that I can replace the settings default with? For our Production environment, I will need 1 year of data.

 

- Ken

jenkinskj jenkinskj  says in response to jenkinskj:

Based on errors in the log file, I do not think that we should be running Zenjobs daemon on a data collector (i.e. if ZEO does not run on the collector).

 

2009-12-14 14:30:16,564 WARNING ZEO.zrpc: (21141) CW: error connecting to ('localhost', 8100): ECONNREFUSED

 

Can someone confirm this?

 

- Ken

jenkinskj jenkinskj  says in response to jenkinskj:

After some research, it looks like ZEO and ZOPE need to be running as daemons. Per the recent edits above zope.conf is updated and pointing back to the main Zenoss server. Should I configure ZEO to reference the main Zenoss server as well or should this be running on the collector?

 

- Ken

wgoodric wgoodric  says in response to jenkinskj:
I have this going with only the services listed above. I don't think zeo and zope need to run on the collector. Plus, I think zope pointing back to the main server is only for remote hubs.
jenkinskj jenkinskj  says in response to wgoodric:

The reason I thought ZEO and ZOPE needed to be started was because zenactions reported the following WARNINGs.

 

2009-12-14 14:28:32,651 WARNING ZEO.zrpc: (21276) CW: error connecting to ('loca
lhost', 8100): ECONNREFUSED

 

Once I started ZEO and ZOPE on the collector, the WARNING went away.

 

Is there anything special that has to be done to set up zenactions on the collector?

 

Also I did not start ...

 

zensyslog
zenactions
zentrap

Should these be running on the collector?

Are they working for you?

 

- Ken