I want to include and exclude sensors from an existing device template. How can I do that?
This article applies as of PRTG 21
Include and exclude filters for device templates
You can use filters to define which sensors are added if you apply a device template in PRTG. You can include or exclude specific column names to filter the sensors.
1. Find out what filters you can use
1.1 Create a device template
First, you must create a new device template. For details, see PRTG Manual: Create Device Template.
1.2 Find and open the device template
You can find the device templates in the \devicetemplates subfolder of the PRTG program directory.
Open the device template with a text editor and find the section that looks like this:
Available column names for filtering:
You can filter for one or more of the column names.
2. How to use filters
Enter the column names between the include or exclude tags that you can find below Available column names for filtering.
2.1 Filter rule format
Filter rules are based on the following format:
Here are some examples of what a filter can look like:
Important: The displayed value may differ from the internal value you have to use for the filter. At the moment you have to use a workaround. Follow the steps below to find out which value you have to use:
- Follow steps 1.1 and 1.2
- Enter none between the include tags and any between the exclude tags
- Save and close the device template
- Apply the device template in PRTG
- Navigate to the \Logs\debug subfolder of the PRTG data directory. Find the default path below.
%programdata%\Paessler\PRTG Network Monitor\Logs\debug
- Open CoreAutoDiscovery.log
- Search for the name of the device template you have applied. The line that you are looking for looks like this:
Template Assigned; Device ID: 2661; Name: device_template_name
- Below the corresponding line, you can find the internal values that the sensor provides. The lines you are looking for look like this, for example:
Row 32 ["45:Sonicwall X1","(045) Sonicwall X1 Traffic",1,"1 GBit/s",117,1,"Sonicwall X1"] removed by filter
For comparison, the corresponding meta-scan section of the SNMP Traffic sensor:
Click to enlarge.
You can see that the displayed values differ from the internal values. See the table below to understand the pattern:
|Column name||Displayed value||Internal value|
|ID||45:Sonicwall X1||45:Sonicwall X1|
|Name||(045) Sonicwall X1 Traffic||(045) Sonicwall X1 Traffic|
|Speed||1 GBit/s||1 GBit/s|
|Internal name||Sonicwall X1||Sonicwall X1|
Note: To filter column names that contain Yes, No, True, or False as value, always use the internal values 1 or 0.
2.2 Supported logical operators
You can use the logical operators AND, OR, AND NOT, and NOT.
2.3 Supported operational modes
You can use different optional modes. You can enter modes in the following format: columnname[value,mode]
The following modes are supported:
2.3.1 String modes:
- substring: This mode filters for a specific substring (default)
- exact: This mode enforces an exact match of a value
For example, to filter for any results with a name that contains the sequence SonicWall, use the filter name[SonicWall,substring].
2.3.2 Number modes: These interpret and compare values as numbers. They only support integer values without extra characters and without thousands separators. They also support hex format.
For example, to filter for any result with the priority 1 or higher, use the filter priority[1,greaterorequal].
A filter can look like the following:
name[test] OR name[demo]
Complex expressions can be created using parentheses and AND, OR, AND NOT, or NOT:
NOT (name[/vol/vol_mysql_l0/mysql_l0/mysql_l0.lun] AND volume[mysql_l0])
3.1 Values with brackets or commas
If you use values with brackets or commas, you have to escape them with quotes:
- name[Intel[R] 82574L Gigabit Network Connection] --> Leads to error "unknown token 82574L"
- name["Intel[R] 82574L Gigabit Network Connection"] --> Works as expected
3.2 Values with quotes
If you use values with quotes, you have to escape them and the entire value with quotes:
- Hello "World" Test --> Leads to an error
- "Hello ""World"" Test" --> Works as expected
Important: The behavior of the SNMP Traffic sensor is different. For details, see How does auto-discovery with SNMP Traffic sensors work?
This is a great improvement to the templates...
One question, for generic / Custom advanced sensors, most of them return
<!-- Available column names for filtering: --> <include>any</include> <exclude>none</exclude>
Which indicates that no filtering is available...
Is there a field name for plain sensor name ?
If I create a Custom SNMP Table sensor, and want to apply that to a group of devices.
It may create hundreds of sensors...
I'm only interested in the ones with "fan" or "psu" in the sensor name.
What would the syntax be ?
<include>sensorname[fan] OR sensorname[psu]</include>
Or all except "Power Sensor" and
<exlude>sensorname[Power Sensor] OR sensorname[Voltage Sensor]</exclude>
Also, Is the include/exclude required when you try to include / exclude