Zenoss

From Funtoo
Jump to navigation Jump to search

Zenoss is an Open Source IT monitoring and management application. Zenoss Core is the name of the Open Source release, and the commercial version is called Zenoss Service Dynamics, and includes additional functionality including impact management. Daniel Robbins is part of the Zenoss team, so you are encouraged to give Zenoss a try if you enjoy Funtoo Linux :)

ZenPacks

There are large numbers of ZenPacks available for Zenoss, which are basically extensions to the core product that can be installed like plug-ins. The home for Zenoss ZenPacks is Zenoss' GitHub page.

One notable ZenPack is the OpenVZ ZenPack, written by Daniel Robbins :)

Requirements

Zenoss Core and Service Dynamics are currently built to install on top of Red Hat Enterprise Linux 5.x. The best way to run Zenoss on Funtoo Linux is to set up a container or virtual machine on a Funtoo Linux system using OpenVZ, LXC or KVM.

Releases

The current release of Zenoss Core is 3.2.1. Version 4.1 alpha is available.

The commercial version is 4.1.1 and contains a significantly improved, more scalable architecture, but functionality-wise is very similar to version 3.x.

Zenoss Service Dynamics 4.x Tuning

Zenoss Service Dynamics uses several new technologies including RabbitMQ and some Java-based applications, which can consume quite a bit of memory. The minimum recommended amount of RAM for a Zenoss 4.x install is 8GB.

This section will document some steps you can use to make Zenoss more memory-efficient.

MySQL/zends

Zenoss Core 4 uses MySQL.

The commercial version of Zenoss uses zends. Zends is a commercially-licensed version of MySQL that is included with Zenoss Service Dynamics. By default, it is tuned to handle up to 2000 devices. For smaller installations, the pool and cache sizes may be a bit high.

To change settings for MySQL, edit /opt/zenoss/etc/my.cnf (or /opt/zends/etc/zends.conf if you are using the commercial version.) Change innodb_buffer_pool_size to a smaller value, such as 256M. You can also lower the other sizes accordingly. Suggested minimal configuration:

innodb_buffer_pool_size = 256M
# log file size should be 25% of of buffer pool size
innodb_log_file_size = 64M
innodb_additional_mem_pool_size = 16M
innodb_log_buffer_size = 4M

You will need to edit this file as root. After making changes, perform the following steps:

root # /etc/init.d/mysql restart

For the commercial version, you will want to use the zends initscript:

root # /etc/init.d/zends stop
root # rm /etc/zends/data/ib_logfile*
root # /etc/init.d/zends start

zeneventserver

Zeneventserver is a new Java-based event server for Zenoss. By default, it will allow the Java heap to get quite large. This can be modified by editing the /opt/zenoss/bin/zeneventserver script and appending an -Xmx512m option to the DEFAULT_ZEP_JVM_ARGS file, as follows:

DEFAULT_ZEP_JVM_ARGS=${DEFAULT_ZEP_JVM_ARGS:-"-server -Xmx512m"}

Type zeneventserver restart as the zenoss user to apply these new settings.

Stopping Daemons

Zenoss uses ZenPacks to extend functionality of the core product, and also includes some additional daemons that you may not need. To turn extra daemons off, perform the following steps:

# touch /opt/zenoss/etc/DAEMONS_TXT_ONLY

Then create a file called /opt/zenoss/etc/daemons.txt that contains something like this:

zeneventserver
zeneventd
zenwebserver 
zenhub
zenjobs
zenping 
zensyslog
zenstatus
zenactiond 
zentrap 
zenmodeler
zenperfsnmp
zencommand
zenprocess
zenrrdcached
zenwin
zeneventlog 
#zenjmx 
zenjserver 
zenwinperf 
zenmailtx 
zenwebtx
#zenvmwareevents
#zenvmwareperf
#zenvmwaremodeler
#zenucsevents
#zenvcloud
zenimpactserver
zenimpactstate
zenimpactgraph 
zenperfetl 
zenetl 

The list above is a list of all daemons that start when you run zenoss restart as the zenoss user. I've commented out the ones I don't want by appending a #.

Now modify /opt/zenoss/bin/zenoss and change this part of the file:

if [ -f "$ZENHOME/etc/daemons.txt" ]
then
    D=`cat $ZENHOME/etc/daemons.txt`
    C="$C $D"
fi

...so that it looks like this...

if [ -f "$ZENHOME/etc/daemons.txt" ]
then
    D=`cat $ZENHOME/etc/daemons.txt | grep -v "^#"`
    C="$C $D"
fi

This will cause zenoss to skip the commented-out daemons and only start the daemons you need. You can always come back to the daemons.txt file and modify it as necessary as you utilize more Zenoss functionality in the future. In the mean-time, your memory footprint will be a bit smaller :)

An issue has been created to have comments be valid in daemons.txt without requiring the above patch. See ZEN-2648.