Why is there a second page of FAQ?

Simple. The first one is now uneditable with the new forum software. It will just eat later changes. So I've started a "Part 2" for new FAQs. Sadly, I cannot point to this page from the original FAQ, but I can link back from here to that FAQ. Always start with the Original FAQ

.Of course, I also cannot update the original FAQ as things change, so this page will be a sort of Errata... Hopefully I'll either have the time to merge the two here, or eventually be able to edit the original again.

New Users

I have a question about Zenoss Enterprise. Where should I ask it?

Most forum users use Zenoss Core. The Zenoss forums are support for Zenoss Core. If you've got tips / pointers about Zenoss that are the same in Core as Enterprise, feel free to share in the forums, contribute Zenpacks etc. However, if you want official support for Enterprise, you should contact Zenoss Support rather than the forums. The forum members often will be at best guessing about Enterprise Zenpacks, and you might as well get value from your support contract.

Zenoss Configuration

How do I completely disable the Performance Monitoring of Network interfaces?

If you want to save server resources and don't actually care about the network traffic etc from the OOTB perf monitoring, you can simply disable/remove/unbind the ethernetCsmacd template(s). Note that any class that has this removed is going to affect all devices in it.

How do I make Zenoss stop monitoring a Windows service for all devices that are currently monitoring it?

In a shell on your zenoss server, as user zenoss create a text file called "script" with these contents:

for s in dmd.Services.WinService.serviceclasses():
if s.id == 'YOUR SERVICE NAME HERE':
for i in s.instances():
print i.getDeviceName()
i.monitor = False
commit()

Notes:

Change "YOUR SERVICE NAME HERE" to whatever service you don't want to monitor anymore

Make sure you have a blank line before the "commit()" line like I show

Run this script.

In Zenoss 3.x, how do I assign a device to a location?

This is part of the new design, you drag and drop it. However, it's not as obvious as it could be. In MattRKs eloquent words:

You actually drag the devices onto the location you want to associate them with. Also, you can't drag by clicking on the name text. You have to click in the blank space next to the text to drag the device.

How to configure LDAP authentication for Zenoss Core 3.0.x

Transforms

How do I access count in an event Transform?

You can easily mod the last few lines to do what you want dependant on the count number.You cannot directly access the count part of an event in an event transform, but you can work around it per Nick Yeats in this thread.

# Create the dedup id; This is what zenoss normally does to the event to ascertain if # it is a duplicate (another occurance) of an existing event. We are doing it in this# transform to be able to reference the count variable, which does not come with an# incoming event.dedupfields = [ evt.device, evt.component, evt.eventClass, evt.eventKey, evt.severity]if not evt.eventKey: dedupfields += [evt.summary]mydedupid = '|'.join(map(str, dedupfields))

Modelers

How do I create my own custom modeler?

You want to make your own custom modeler, thankfully it's not that difficult. Just go to /usr/local/zenoss/zenoss/Products/DataCollector/plugins/zenoss/snmp and make a copy of DeviceMap.py and rename it to MyDevice.py (or whatever name you want). Then edit the code, the syntax is fairly simple, your version should look like this:

############################################################################# This program is part of Zenoss Core, an open source monitoring platform.# Copyright (C) 2007, Zenoss Inc.## This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 as published by # the Free Software Foundation.## For complete information please visit: http://www.zenoss.com/oss/

Now you don't have to populate all the entries there, if all you need is the serial number, just have the line with setHWSerialNumber and remove the others.

You will then restart zenoss, go to the device class you want these devices in, go to the modeler plugin list for that device class and add "MyDeviceMap" at the BOTTOM of the list. Your custom modeler will then overwrite anything another modeler might have put in the HWSerialNumber field with the value from the OID you specified. You can also fill the comments field from the modeler if there is an OID that contains miscellaneous info you find useful for the device, the syntax for that is '1.3.6.x.x.x.x' : 'comments'

Templates

How do I copy templates in Zenoss 3.0?

Go to Advanced->Monitoring Templates->find the template you want (ie. 'Device') and then find the version of that template you want to copy/override. Select the template, then go to the gear menu at the bottom left and select "Override Template" and select where you want to copy/override it to. I'll agree that "Override" is much more confusing than "Copy".

I've created an SNMP datapoint but get OID is bad instead of graphs.

This is often caused because you haven't specificed the exact OID and are testing with snmpwalk. Test with snmpget, and you'll often see that snmpwalk is actually "walking" the tree and adding a .0 or such to the end of the OID you've specified. snmpget shows nothing exists at the specific OID. Zenoss does snmpget for monitoring, so won't "walk" the tree. So make sure to test with snmpget to find the actual OID you want to monitor.

Another method for Per Device Filesystem thresholds (Property driven thresholds):

You could do something called 'Variable Templating' or 'Variable Thresholds'. Basically you set a Custom Property (ussually it begins with a "c", like "cBlockThreshold") on all devices, then reference that Custom Prop in the filesystem threshold formula.To do this, you go to Infrastructure, click on Devices, click on Details (the little arrow thing next to Infrastructure in the left hand pane) then select Custom Schema. There you can add a property.

Be sure to make the Custom Property first, at /Devices and set it to what you want most servers to abide by (.9?). Then, go into Advanced > Monitoring Templates > FileSystem > Server to set its Max Value to:

> here.getTotalBlocks() * here.cBlockThreshold

Afterward, you can go set that Custom Property to a different number on a per device basis.

How do I autoload a template from a MIB file?

Mr Chippy gives us a great script that Zenoss inc uses for making a template out of a MIB in this thread. Or just download here. Usage instructions from the source code seem to be:

bulkLoadSnmpCounters {/Device/Class,TemplateName} {FileListingOIDs}

Use SSH seems to be broken when I test it.

When you're testing the command of the template in the zenoss web gui, it ignores if you have selected "use ssh". It will run the test on the zenoss server.

When the template command runs from zencommand, it connects with SSH to the device before running the command.

To test with zencommand, use:

zencommand run -d <HOSTNAME>

This should be run as the zenoss user on the zenoss server.

Technical Troubleshooting

Why doesn't Zenoss see my IP Service (like SMTP)?

Zenoss by default does a SNMP query to enumerate what IP services (open ports) are there to be monitored on the target devices. SNMP isn't always accurate on computers other than Linux, and even on Linux, it sometimes isn't correct with an IPv6 stack running. Fortunately, if the default doesn't work, you have several other options.

One is nmap based. You have to symlink nmap into your $ZENHOME/libexec directory:

which nmap
/usr/bin/nmap
ln -s /usr/bin/nmap $ZENHOME/libexec/nmap

which nmap will tell you where nmap is on your system. Use that in the ln command (replace /usr/bin/nmap with whatever your which nmap gave you)

Go into your device or device class. Go to Modeler Plugins. Remove the zenoss.snmp.IpServiceMap - this is the IP service mapper that isn't working. Then click on add fields. Browse down and select zenoss.nmap.IpServiceMap. Drag and drop it over to the Plugins.

Now, go to Configuration Properties of the device or device class. Look for zNmapPortscanOptions and enter the command line configuration you want for your nmap models. Note the default settings may fail because of the --open on RHEL5.5 and derivatives - you can just remove it. The default options also only scan up to port 1024, so you may want to just remove that, or edit it. Note again that more ports, the longer it takes to finish, and this can increase load on your monitored server as well as on the Zenoss server.

Remember I said there were 2 options? The other is zenoss.portscan.IpServiceMap. You could try that if the nmap one doesn't work for you.

I've changed my graph definition and now get a page load error!

If you use Zenoss 3.0 and change your graph definitions to invalid entries (by mistake or in error), you may get this error when you try and load the page:

The server reported the following error:
ValueError invalid literal for int() with base 10: ''
The system has encountered an error. Please reload the page.

To fix this problem, try removing the RPN from the graph point in Zope.

Someone gave me a zendmd script - what do I do with it?

The easiest method to use a zendmd scrip from the forums is to copy it exactly into a text file (indents are IMPORTANT) and get it to the zenoss server. You can paste into nano for instance via ssh, or however you get stuff to your zenoss server.

Then, you can tell zendmd to run it via:

zendmd <scriptname

Make sure to do this as the zenoss user.

I have a phantom device, what do I do?

Try running

zenchkrels -r -x1

I'm getting a Network Attribute Error - an object seems stuck. What do I do?