It is possible quite easily to install distributed collectors with zenoss core. This document is mostly based on the following 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.
- 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"
- 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 : /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"
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 usethe main server engne
/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
- 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
- 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
- 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"
#