-
New Feature Request
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
None
Host user macro creation from discovery results.
When a template containing a discovery is applied to a device, any items and triggers are locked and can't be changed (with the exception of informative / display fields like URL or Description). This is important as to ensure that the linked items/triggers stay true to the original template.
In my large scale deployment, there will be several thousand hosts. Due to this size, configuration is managed by the auto registration process and discovery process. With this number of hosts there is always a few that will need some level of customization. However with this customization (Lets use disk usage triggers for an example) I need to change the trigger threshold to a custom value. In order to do this with a trigger that was generated via a template, I would have to either Disable the template based trigger and then make a clone of it with the custom value or unlink the template and then modify the trigger to the new thresholds.Neither of these are desirable as I would have to maintain a list of hosts/triggers that I would have to manually update if something (other than the threshold) was changed like name or url in the trigger.
I have confirmed that you can use a host level user defined macro as the threshold value in a trigger. (See attached image: Trigger.with.Host.User.Macro.png)
You can see that I have configured this triggers threshold to use the macro values "{$TEST.ITEM.1.LOW}" and "{$TEST.ITEM.1.HIGH}".
The user defined host level macro is defined at the host level. To ensure that you know where that macro is defined, I have attached the following image "Host.User.Macro.png"
By configuring this trigger in this way, I can make changes to this specific hosts (202719lpadaptec.mhsl.test.local) trigger (named "Trigger Test 1 with Host level macro") thresholds at the host level without having to specifically modify the trigger directly.
Now if we change the scenario and create the exact same trigger as a template, you can now see how the threshold values could be adjusted for this host while leaving every other host with the same template/trigger combination unchanged and preserving the benefits of a template based trigger. This eliminates the need to unlink the template, or disabling/cloning the trigger to achieve the same results.
From a simple (base) item / trigger configuration, we can see this currently works without issue. However when you try and implement this solution with a discovery process, you start running into issues. Currently there is no option to use the discovery process to create a host level macro like the one in image "Host.User.Macro.png" from a discovery result. (See image "Template.Discovery.no.host.macro.option.png") The only option is to manually create the host level macros ("Host.User.Macro.png") in advance. For things like a filesystem discovery, that is not practical. Using the filesystem discovery as an example, you need the ability to use the discovery result macros ("
{#FSNAME}" for example) to create the host level user definable macros ("Host.User.Macro.png") the same way you create Items ("vfs.fs.size[{#FSNAME},pfree]") and triggers ("Free inodes is low on volume
{#FSNAME} {202719lpadaptec.mhsl.test.local:vfs.fs.size[{#FSNAME},pfree].last(0)}<20")
We need a host level user macro creation option for discovery. An example might be "{${#FSNAME}.LOW},20".
And if it is not obvious, this host level user macro would need to remain editable in the UI when created by a discovery.
Please let me know if you have any questions.
Carl Slaughter