Wednesday, April 08, 2009

Configuring multiple Zenoss collectors

This post discusses how to configure multiple Zenoss collectors for centralized monitoring and alerting. These instructions are inspired by http://www.zenoss.com/Members/fdeckert/how-to-install-distributed-collectors/. Many of the tasks below reference $ZENHOME, which can be found by logging in as the zenoss user, but the tasks may need to be run as root.

Install zenoss on ServerB, but do not start it

Ensure DNS is setup with FQDN for both servers

Task

ServerA

ServerB

Install snmpd on both systems

apt-get install snmp snmpd

Configure snmpd

Snmpconf

Select none

Select to create snmpd.conf

Select Access Control Setup

Choose SNMPv1/SNMPv2c read-only access community name

Enter the read-only community name, enter, enter

Finished, Finished, Quit

mv snmpd.conf /etc/snmp/snmpd.conf

Enable remote snmp access

Edit /etc/default/snmpd

Change the line: SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'

To: SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid'

Restart snmpd

Verify snmp is working

snmpwalk -v 2c -c public ServerB .1.3

snmpwalk -v 2c -c public ServerA .1.3

Configure Zenoss services

Create two files in $ZENHOME/etc named DAEMONS_TXT_ONLY and daemons.txt

Enter the below into daemons.txt and save:

zeoctl

zopectl

zenhub

zenping

zensyslog

zenstatus

zenactions

zentrap

zenmodeler

zenrender

zenperfsnmp

zencommand

zenprocess

zenwin

zeneventlog

Create two files in $ZENHOME/etc named DAEMONS_TXT_ONLY and daemons.txt

Enter the below into daemons.txt and save:

zenping

zensyslog

zenstatus

zenactions

zentrap

zenmodeler

zenrender

zenperfsnmp

zencommand

zenprocess

zenwin

zeneventlog

Configure ServerB to use local monitors, but use the hub on ServerA

In $ZENHOME/etc, edit the following files: 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

Enter the following 2 lines in all files:

monitor ServerB

hubhost ServerA

Configure ServerB to use the zope engine on ServerA

In $ZENHOME/etc, edit zope.conf

Find the zeoclient section

Change the line: server localhost:8100

To: server ServerA:8100

Add the remote collector

In the Web Interface, browse to Management | Collectors | Add Monitor

Enter the name ServerB

Change Render URL from: /zport/RenderServer

To: http://ServerA:8090/ServerB

Copy ZenPacks and Plugins

Scp -r $ZENHOME/ZenPacks ServerB:$ZENHOME/ZenPacks

Make sure any other alterations (symlinks, packages, etc…) are duplicated

Ensure files are owned by zenoss

chown –R zenoss.zenoss $ZENHOME/ZenPacks

chown –R zenoss.zenoss $ZENHOME/ZenPacks

Start Zenoss

/etc/init.d/zenoss-stack restart

/etc/init.d/zenoss-stack start

Begin moving devices

In the Web Interface, browse to Management | Collectors | localhost

Select several devices and click Devices | Set Perf Monitor

3 comments:

David Riepl said...

Hi!
I have some troubles implementing distributed collectors in zennos core.
What is the Point "Create two files in $ZENHOME/etc named DAEMONS_TXT_ONLY and daemons.txt" exactly for?

My Problem is i cant render the rrd file collected from the B Server. Can u explain a bit more about the render URL?
greets David

Anonymous said...
This comment has been removed by a blog administrator.
Hemraj said...

The performance Graphs doesn't seem to work in the distributed collector model. Zenoss is not able to render the rrd files collected from the B server. Can u pls help to resolve this.