No Node Left Behind
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.
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"
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
zenping
zensyslog
zenstatus
zenactions
zentrap
zenmodeler
zenrender
zenperfsnmp
zencommand
zenprocess
zenwin
zeneventlog
rocommunity public zenoss.paris.fr
/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
/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.1 Management / Add Device : zenoss.noida.in, use the main server as collector
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
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"
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:8080. Should 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
@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.
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
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.
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
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
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
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
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