The system stores performance configuration data in templates. Templates contain other objects that define where and how to obtain performance data, thresholds for that data, and data graphs.
You can define a template anywhere in the device class hierarchy, or on an individual device.
Templates are divided among three types:
The determination of which templates apply to what objects is called binding. Templates are bound in different ways, depending on the objects to which they are bound.
Device templates are applied to devices, one to each device. The system employs a single rule to bind device templates to devices: the value of the zDeviceTemplates property. For most device classes, this is "Device."
Common device templates are:
For the Server/Linux/MySQL device class, the zDeviceTemplates property might contain, for example, "Device" and "MySQL." The system would collect CPU and memory information by using the Device template, and MySQL-specific metrics by using the MySQL template.
To bind a device template to a device class or device:
Resetting template bindings removes all locally bound templates and uses the default template values. To reset bindings for a selected device or device class:
Component templates are named exactly according to the name of the underlying class that represents a component. For example, the FileSystem template is applied to file systems. Component templates can be applied multiple times to each device, depending on how many of the device's components match the template. Configuration properties do not control the application of component templates.
Component templates should not be manually bound.
Common component templates are:
FileSystem, HardDisk, IPService, OSProcess, WinService
Fan, PowerSupply, TemperatureSensor
Interface templates are applied to network interfaces by using a special type of binding. Instead of using the name of the underlying class, the system looks for a template with the same name as the interface type. You can find this type in the details information for any network interface.
You add a new device at /Devices/Server/Linux named Example1Server. You have not edited the value of its zDeviceTemplates property, so it inherits the value of "Device" from the root device class (/Devices). Zenoss looks to see if there is a template named Device defined on Example1Server itself. There is not, so it checks /Devices/Server/Linux. There is a template named Device defined for that device class, so that template is used for Example1Server. (There also is a template named Device defined at the root level (/Devices), but the system does not use this one because the template at /Devices/Server/Linux overrides it.)
You want to perform specific monitoring of servers running a certain Web application, but those servers are spread across several different device classes. You create a template at /Devices called WebApplication with the appropriate data sources, thresholds and graphs. You then append the name "WebApplication" to the zDeviceTemplates configuration property for the devices classes, the individual devices running this Web application, or both.