Device Groups Overview
Device Groups allow you to:
- Organize your devices within the Device Tree, improving navigation and load time.
- Manage device performance and properties at a group level.
- Easily create dashboard and report views of all items in a group.
- Customize user view and manage permissions based on groups or subgroups.
There are two types of device groups: manual and dynamic.
Manual Device Groups
Manual device groups have static device membership - you must add devices or subgroups to, or remove them from, such groups yourself (although devices may be automatically added to such groups as a result of a network discovery scan). You can also use LogicMonitor's API to add and remove devices from a manual group.
Dynamic Device Groups
Dynamic groups have a dynamic device membership - you specify criteria for auto-assigning devices to the group using AppliesTo Scripting Language and devices will be automatically added or removed from the group accordingly.
Devices cannot be manually added to dynamic groups, and are automatically removed when they no longer meet the auto-assign criteria. You could create a group for your San Francisco office, with a custom query: location =~ "San Francisco". If a device is shipped to your Los Angeles office and the location property is updated, it will no longer appear in the San Francisco office group.
Properties and thresholds can be managed for a dynamic group the same way they are managed for a manual device group, and will be inherited by group members.
Note about excluded properties in device group evaluation: To avoid circular references, the criteria that dynamically determines which devices are auto-assigned to a dynamic group (i.e. the AppliesTo script) can only evaluate properties of the host itself, not any inherited properties from those groups of which it is a member. For similar reasons, the systems.group property is also excluded from use in a dynamic group's AppliesTo script as the query itself could change the results of the query, potentially creating an endless loop. If you wish to create a dynamic group that is dependent on group membership, use the property system.staticgroups in your AppliesTo script. e.g. join(system.staticgroups,",") =~ "production"
Dynamic Group Examples
You may want to use dynamic groups:
- When a subset of devices use a custom port - For example, if all your SQL servers whose names start with 'ALT' have a custom port configured for MySQL, you could create a dynamic group set to include all devices whose names start with ALT. You could then clone the MySQL datasource, edit it to use the custom port and apply it to only the cloned group. All existing and new MySQL servers added to the account that have a name that starts with ALT will automatically get the cloned datasource with the custom port instead of the original MySQL datasource.
- For a dashboard widget or report - For example, if you have a widget or a report that you'd like to display data for a certain type of device, you could create a dynamic group set to include only devices of that certain type and configure the widget or report to reference the dynamic group. New devices added to the account that match the dynamic group criteria will automatically be added to the widget or report.
- To identify devices that aren't being monitored comprehensively - LogicMonitor applies datasources to devices based partly on the system.sysinfo. Typically this property is automatically set when the device is added. However, if the system.sysinfo isn't set for a device (likely because a LogicMonitor collector wasn't able to identify the device), LogicMonitor might only apply generic metrics that aren't device-specific, like ping, http, etc. You can create a dynamic group with the query “system.sysinfo =~ ‘’ “ to include all the devices in an account that the collector wasn’t able to identify during discovery. This would allow you to identify if there are any devices in your account that aren't being monitored as comprehensively as they could be.
Common examples of dynamic group queries include:
- system.sysinfo =~ "Linux" : create a dynamic group of all Linux hosts
- system.hostname =~ "lax" : create a dynamic group of all hosts in the LAX datacenter
- hasCategory("Netscaler") : create a dynamic group of all Citrix Netscalers.
- system.hostname =~ "nyc" && system.hostname =~ "prod" : create a dynamic group of all production hosts in NYC.
The Root (Account) Level Group
By default, your LogicMonitor account has a root group (with the name of your account) which serves as a parent to all top-level device groups. You cannot delete this group. You can, however, set properties at the root group level.