Compatibility and the agent management interface

Agent management UI can handle the configuration needs for most agent managements. However, if you have complex requirements, you might still need to edit serverclass.conf.

If you do all your configuration in one tool or the other (agent management UI or direct editing of serverclass.conf), you can skip the rest of this topic. Compatibility issues can arise, however, if you alternate between agent management UI and the configuration file, performing configuration through both interfaces.

For information on directly configuring serverclass.conf, read Use serverclass.conf to define server classes.

Compatibility works in one direction only

The agent management interface provides a key subset of the configuration capabilities available through serverclass.conf. Most configuration needs can be met by working exclusively in agent management UI.

If you have unusually complex requirements, you can start by configuring in agent management UI and then switch to serverclass.conf for advanced configuration. However, once you start editing the configuration file directly, there is a strong likelihood that you will not be able to later return to configuring via the agent management interface. This is because the agent management interface supports only a subset of the capabilities available through the configuration file.

If you do return to agent management UI after editing serverclass.conf, agent management UI will detect any incompatibilities and generate error messages in appropriate locations in the interface. As long as the incompatibilities persist, you will not be able to configure via the agent management interface.

Even if you can no longer use the interface to edit configurations, you can still use it to monitor the deployment. It will correctly show the mappings between apps, clients, and server classes. It will also correctly report the deployment metrics.

List of incompatibilities

Some serverclass.conf attributes are incompatible with the agent management interface. In addition, some attributes can be set at multiple levels (global, server class, and app) in the configuration file but are only allowable at a single level with agent management UI.

If your serverclass.conf file contains incompatible attributes, the agent management interface goes into lock-down mode. You cannot use it for configuration purposes until the incompatibilities are resolved.

This table correlates the serverclass.conf attributes with their support in agent management UI.

AttributeDefaultGlobalServer ClassApp
repositoryLocation$SPLUNK_HOME/etc/deployment-appsSupportedUnsupportedn/a
targetRepositoryLocation$SPLUNK_HOME/etc/appsUnsupportedn/an/a
tmpFolder$SPLUNK_HOME/var/run/tmpUnsupportedn/an/a
continueMatchingTrueUnsupportedUnsupportedn/a
endpoint$deploymentServerUri$/services/streams/deployment?name=$serverClassName$:$appName$UnsupportedUnsupportedn/a
filterTypewhitelist (agent management implicitly uses this default value)UnsupportedUnsupportedUnsupported
whitelistnoneUnsupportedSupportedUnsupported
blacklistnoneUnsupportedSupportedUnsupported
whitelist.from_pathnamenoneUnsupportedSupportedUnsupported
blacklist.from_pathnamenoneUnsupportedSupportedUnsupported
machineTypesFilternoneUnsupportedSupportedUnsupported
stateOnClientenabledUnsupported Single per-app setting across all server classes
restartSplunkdFalseUnsupported Single per-app setting across all server classes
issueReloadFalseUnsupportedUnsupportedUnsupported
restartSplunkWebFalseUnsupportedUnsupportedUnsupported
appFilenonen/an/aUnsupported

Notes regarding entries in the table:

  • n/a: This means that the attribute cannot be set at that level in serverclass.conf.
  • Single per-app setting across all server classes: The stateOnClient and restartSplunkd attributes are configured under the app-level stanzas. App-level stanzas include both an appName and a serverClassName component, like this: [serverClass::app:]. See Use serverclass.conf to define server classes.
    If you are not using agent management UI, you can configure those attributes differently depending on the server class, even for the same app. For example, in [serverClass:X:app:A], you can specify stateOnClient=enabled, while in [serverClass:Y:app:A] (same app, different server class), you can specify stateOnClient=disabled. So, depending on the server class, the same app will be either enabled or disabled when it gets downloaded to the agent.
    However, agent management UI allows only a single definition for each app, across all server classes in which it is used. So, [serverClass:X:app:A] and [serverClass:Y:app:A] must both configure stateOnClient identically. The same condition applies to restartSplunkd.