Build Zenoss 2.1.2 on Redhat Enterprise Linux 5

Reading time ~5 minutes

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
appliance_update.sh conf install-functions.sh shared-functions.sh
autoinstall COPYRIGHT.txt install.sh zen2dump.py
build-functions.sh docs INSTALL.txt ZEN2UPGRADE.txt
build-noprompt.sh externallibs libzenoss zensocket
build.sh fs LICENSE.txt zenwipe.sh
CHANGES.txt genpatchdeps.py MacOS
checkall.sh GNUmakefile rpm
-bash-3.1$ ./install.sh

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

Building...

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 genpatchdeps.py >.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/zope.conf.in //usr/local/zenoss/skel/etc/zenoss.conf.in
installing zope
unpacking TwistedSNMP-0.3.13 in build/
patching file snmpprotocol.py
patching file v3/agentproxy.py
patching file v3/agentproxy.py
patching file tableretriever.py
patching file snmpprotocol.py
unpacking pysnmp-3.4.3 in build/
patching file pysnmp/proto/rfc1155.py
patching file pysnmp/proto/rfc1155.py
patching file pysnmp/proto/rfc1155.py
patching file pysnmp/proto/rfc1155.py
installing pysnmp
unpacking Twisted-2.5.0 in build/
patching file TwistedCore-2.5.0/twisted/internet/process.py
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 setup.py
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/apidoc.py
patching file epydoc/docbuilder.py
patching file epydoc/docintrospecter.py
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 icmp.py
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/zope.conf.in
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.

image

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
net-snmp-libs-5.3.1-19.el5
net-snmp-5.3.1-19.el5
net-snmp-utils-5.3.1-19.el5
net-snmp-perl-5.3.1-19.el5


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: 192.168.6.0 --> for 192.168.6.0/24 subnet



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

[root@localhost snmp]# snmpwalk -v 1 -c public 192.168.6.131 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.1 = OID: IF-MIB::ifMIB
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.6 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.9 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
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 192.168.6.130
trap-community SNMP-trap
#
#kernel-file /vmunix
#
#managers lvs golden
managers 192.168.6.130

192.168.6.130 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.

image

image

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.

互联网规模的超融合平台

什么是互联网规模?什么是web scale风格?看下Nutanix的亮点。 阅读全文

2017DevOps采用和趋势现状-信息图

Published on February 11, 2017