Martin Liu

Martin Liu

Developer Advocate, DevOps China Community Organizer


7 分钟

Well, it is the first time to running a RHEL 5 for me, at same time got zenoss built successfully on it. zenoss-2.1.2 was build from source, the whole process went a while since RHEL is in one of my VMware session; CPU %sy was pretty high during building source code.

Build zenoss-2.1.2

The INSTALL.txt file is good enough, my installation how-to can be really sample:

  • Read INSTALL.txt
  • add zenoss user
  • start mysql
  • upload zenoss tarball to zenoss home directory
  • login as zenoss
  • untar zenoss tarball then run the following, good luck!

-bash-3.1$ ls conf
autoinstall COPYRIGHT.txt docs INSTALL.txt ZEN2UPGRADE.txt externallibs libzenoss zensocket fs LICENSE.txt
CHANGES.txt MacOS GNUmakefile rpm
-bash-3.1$ ./

This installer actually builds Zenoss.
For a simpler installation try the VMPlayer Appliance image,
or use RPMs for Redhat based systems.


Password for the Zenoss "admin" user [zenoss]:
Enter the password again:
MySQL server hostname [localhost]:
MySQL server root username [root]:
MySQL server root password []:
MySQL event database name [events]:
MySQL username for Zenoss events database [zenoss]:
MySQL password for zenoss [zenoss]:
/usr/bin/python2.4 >.patchdeps
installing into //usr/local/zenoss
build log is in zenbuild.log
unpacking Zope-2.8.8-final in build/
configuring build/Zope-2.8.8-final/makefile
installing libzenos/Products.tar.gz
installing libzenos/bin.tar.gz
installing libzenos/extras.tar.gz
mkdir -p //usr/local/zenoss/skel/etc
cp conf/ //usr/local/zenoss/skel/etc/
installing zope
unpacking TwistedSNMP-0.3.13 in build/
patching file
patching file v3/
patching file v3/
patching file
patching file
unpacking pysnmp-3.4.3 in build/
patching file pysnmp/proto/
patching file pysnmp/proto/
patching file pysnmp/proto/
patching file pysnmp/proto/
installing pysnmp
unpacking Twisted-2.5.0 in build/
patching file TwistedCore-2.5.0/twisted/internet/
Hunk #1 succeeded at 315 (offset -20 lines).
unpacking pycrypto-1.9a6 in build/
installing pycrypto
installing twisted
installing twistedsnmp
making zensocket
gmake[1]: Entering directory `/usr/local/zenoss/zenoss-2.1.2/zensocket'
gcc -o zensocket -Wall -pedantic -D__GNU_LIBRARY__ -g zensocket.c
rm -f //usr/local/zenoss/bin/zensocket
cp zensocket //usr/local/zenoss/bin/zensocket
gmake[1]: Leaving directory `/usr/local/zenoss/zenoss-2.1.2/zensocket'
unpacking pynetsnmp-0.27.0 in build/
unpacking ctypes-1.0.1 in build/
installing ctypes
installing pynetsnmp
unpacking MySQL-python-1.2.0 in build/
patching file
patching file _mysql.c
Hunk #1 succeeded at 440 (offset -37 lines).
Hunk #3 succeeded at 460 (offset -37 lines).
Hunk #5 succeeded at 526 (offset -37 lines).
installing mysql-python
unpacking rrdtool-1.2.23 in build/
unpacking libart_lgpl-2.3.17 in build/
configuring build/libart_lgpl-2.3.17/Makefile
installing libart
unpacking freetype-2.1.9 in build/
configuring build/freetype-2.1.9/Makefile
installing freetype
unpacking libpng-1.2.8-config in build/
configuring build/libpng-1.2.8-config/Makefile
installing libpng
configuring build/rrdtool-1.2.23/Makefile
installing rrdtool
rm -rf //usr/local/zenoss/share/rrdtool/examples
rm -rf //usr/local/zenoss/lib/perl
unpacking epydoc-3.0beta1 in build/
patching file epydoc/
patching file epydoc/
patching file epydoc/
installing epydoc
unpacking python-snpp-1.1.1 in build/
installing snpp
unpacking Yapps-2.1.1 in build/
installing yapps
unpacking nagios-plugins-1.4.5 in build/
configuring build/nagios-plugins-1.4.5/Makefile
installing nagios
unpacking libsmi-0.4.5 in build/
configuring build/libsmi-0.4.5/Makefile
installing libsmi
unpacking wmi-0.1.5 in build/
unpacking pyip-0.7 in build/
patching file
installing pyip
unpacking simplejson-1.4 in build/
cp externallibs/setuptools*.egg build/simplejson-1.4
installing simplejson
installing conf/snmpd.conf
installing conf/zenactions.conf
installing conf/zenbackup.conf
installing conf/zencommand.conf
installing conf/zendisc.conf
installing conf/zeneventlog.conf
installing conf/zenhub.conf
installing conf/zenmib.conf
installing conf/zenmigrate.conf
installing conf/zenmodeler.conf
installing conf/zenpack.conf
installing conf/zenperfsnmp.conf
installing conf/zenping.conf
installing conf/zenprocess.conf
installing conf/zenrender.conf
installing conf/zenstatus.conf
installing conf/zensyslog.conf
installing conf/zentrap.conf
installing conf/zenwin.conf
installing conf/zenwinmodeler.conf
installing conf/zenxevent.conf
installing conf/
installing conf/hubpasswd
Wrote file /usr/local/zenoss/etc/zeo.conf
Wrote file /usr/local/zenoss/bin/zeoctl
Changed mode for /usr/local/zenoss/bin/zeoctl to 755
Wrote file /usr/local/zenoss/bin/runzeo
Changed mode for /usr/local/zenoss/bin/runzeo to 755
Starting Zope Object Database
. daemon process started, pid=15476
Loading initial Zenoss objects into the Zeo database
(this can take a few minutes)
ZentinelPortal loaded at zport
Starting Zope Server
. daemon process started, pid=15499

zensocket must be setuid. As root, execute the following:
chown root:zenoss /usr/local/zenoss/bin/zensocket
chmod 04750 /usr/local/zenoss/bin/zensocket

Successfully installed Zenoss

Start Daemons:

bash$ $ZENHOME/bin/zenoss start

bash$ $ZENHOME/bin/zenoss status

  • Then I access to Zenoss portal, got this error.

HTTP Status 404 - /zport/dmd

* * * > > **type** Status report**message** _/zport/dmd_**description** _The requested resource (/zport/dmd) is not available._

> > * * * > >
> > ##### Apache Tomcat/5.5.20 > >

I reboot the RHEL server, then start mysql and zenoss. Finally, everything goes smoothly. Let’s take this nice zenoss portal.


On my RHEL, mysql, snmp and python were installed with OS; other packages might installed from zenoss source tarball. I am not sure about this, you could check above to see my install log.

Install tips:

  • Package dependence should be consider before you build Zenoss source code. A full RHEL install is a lazy idea to solve this problem; but it is still the best practice if you are new to both Linux and Zenoss.
  • Start zenoss daemons might take one minute or more. If you access to zenoss portal immediately, you could get a HTTP Status 404 error. Before you see balance stone, please be patience.

Auto-Discovery of Devices

It’s time to read ZenossAdminGuide211.pdf; BTW that’s a good document. I will go ahead to note down what I did in my testing evn. Please turn to P47, I will go from there. For sure you have something discovered, please read the following tips:

  • The Zenoss machine should have snmp installed, including the following packages:

[root@localhost ~]# rpm -qa|grep snmp

As far as I know net-snmp-utils-5.3.1-19.el5 is a necessary. Without this package, you do not have ability to snmpwalk any device via SNMP protocol; in other word you can not get enough information about that remote device.

  • Add a right network ID, here is a example:

ID: --> for subnet

  • snmpwalk at least one snmp-enable device, here is a example:

[root@localhost snmp]# snmpwalk -v 1 -c public system
SNMPv2-MIB::sysDescr.0 = STRING: SunOS unknown 5.10 Generic_120012-14 i86pc
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.3
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (146417) 0:24:24.17
SNMPv2-MIB::sysContact.0 = STRING: "System administrator"
SNMPv2-MIB::sysName.0 = STRING: unknown
SNMPv2-MIB::sysLocation.0 = STRING: "System administrators office"
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (96) 0:00:00.96
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module to describe generic objects for network interface sub-layers
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.7 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.8 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.9 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (88) 0:00:00.88
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (88) 0:00:00.88
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (88) 0:00:00.88
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (88) 0:00:00.88
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (88) 0:00:00.88
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (90) 0:00:00.90
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (96) 0:00:00.96
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (96) 0:00:00.96
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (96) 0:00:00.96

As you can see here: it is a Solaris 10 system. I just downloaded it last night, get it up and running in another VMWare session on my laptop. You should configure snmp service for Solaris in order to monitoring it via snmp protocol. I will past my /etc/snmp/conf/snmpd.conf below:

# cat snmpd.conf
# Copyright 1988 - 07/17/00 un Microsystems, Inc. All Rights Reserved.
#ident "@(#)snmpd.conf 2.24 00/07/17 SMI"

# See below for file format and supported keywords

sysdescr Sun SNMP Agent,
syscontact System administrator
sysLocation System administrators office
system-group-read-community public
#system-group-write-community private
read-community public
#write-community private
trap-community SNMP-trap
#kernel-file /vmunix
#managers lvs golden
managers is Zenoss ip address; you have to restart snmpd daemon after you change something in this file. Here is another tips for Solaris OS. Be default root can not login via ssh or telnet; you have to add another user. You will login as this new user, then su to root.

Let’s see what I got after done all of above.



Zenoss has a pretty good network map, it is a flash map; you can drag things on this map. Before I end this blog, I’d like to summary my questions blow:

  1. Because my RHEL installation is big enough, I don’t know what are dependence packages for Zenoss; no time to list all of them. Does have this list?
  2. I’ve no idea how to configure snmpd on Solaris. What I did was just modified /etc/snmp/conf/snmpd.conf
  3. How to restart snmp daemon for Solaris?
  4. Do you have any good blog about zenoss?

    I will write a Chinese blog after this one to conclusion zenoss installation. Please give a hint if you have any comment.




This Blog is sharing DevOps and SRE ariticles. I am translator of DevOps Handbook and SRE Workbook.