Agent-based and Agent-less approaches
An "agent" is a lightweight software program that runs on a computer with the primary purpose of collecting information from an application infrastructure component over the network to a central location.
With an "agentless" approach, the data is collected without installing agents. This is accomplished by obtaining data from the application infrastructure component using an available interface. That is, an agent that is already present on the server is used, such as a command server or JMX agent.
The primary benefit of an agentless approach is that it is not necessary to install or maintain an additional software program on each computer from which information is needed. In some instances, an "agentless" approach may be the only available option for data collection, as is the case when the application infrastructure component to be monitored is an appliance (e.g., IBM MQ Appliance).
Where applicable, the "agent-based" approach to data collection offers some specific advantages. For example, agents can store some data on the machine where they are installed, allowing monitoring to continue even if contact is temporarily lost with the management server. Without an agent, the management server collects data from the agentless managed system using remote calls to that system. If the two systems cannot communicate, information is not collected. Security and performance are other areas where an agent may have an advantage compared to using a remote interface.
Our management tools offer both agent-based and agent-less technology for data collection, middleware monitoring and middleware management. Typically used for IBM MQ, but agent mode can be used for other technologies such as EMS and Kafka. In the rest of this article, the focus will be on IBM MQ since that is the most common environment where agents are used.
Agent-based & Agent-less
The Workgroup Server oversees a group of nodes (servers). The Workgroup Server collects information from these messaging server nodes and stores it in its configuration database. The Workgroup Server is used to issue management commands to messaging servers remotely and is capable of carrying out instructions at any level (e.g., Workgroup Server, Node, Queue Manager, Queue, Channel, Listener, Cluster, Authentication Information, Service, etc.).
For agent-based deployment, one agent instance is installed on each IBM MQ node. Server to agent registration is automatic: when started the agent sends a registration request to the AutoPilot Workgroup Server; the Workgroup server responds, discovers all queue managers on that server, and starts management for each. If a network connection is broken, the Workgroup server sends a request at a specified interval (configurable for every node) to re-establish the connection. Deployment to new servers is easy and automated with no manual changes required. Upgrades of new versions of deployed agents, although not typically required can be rapidly accomplished via a simple automated software delivery procedure (stop agent; deploy new version of agent; start agent).
If agent-less deployment is preferred or required, the Workgroup Server uses a Connection Manager to communicate with messaging servers without installing agents on the nodes. The Connection Manager sends remote requests via MQ server-conn channels to connect and issue management commands and receive replies and events. The requirement to configure the connection details, including management of certificates, adds administration requirements. This requires regular maintenance when the certificates change or expire.
An agent-less deployment has very few restrictions. All monitoring functions and most management functions can be accomplished with an agent-less setup. There are a few noteworthy functions that cannot be done using a server connection channel include create/delete/stop/start of queue managers as well as viewing queue manager log files. Any data that is not available over channels, such as results of commands such as dspmq is not available. Actual host name of the MQ server is not published in this mode.
Advantages of agent-based and agent-less approaches
Connection Manager version 11 adds the ability configure a secure shell connection for the MQ servers, which expands the set of capabilities available since it allows commands to be executed independently.
Summary of Advantages of Agent-based vs. AGENT-LESS
- Can use the same software distribution mechanism as for MQ installation and upgrades
- Less administration compared to setting up MQ Channels and implementing security on the channel level including SSL and key management
- Agent-less is less efficient than agent-based for some requests, such as searching for messages
- New MQ Nodes and MQ Servers are automatically discovered rather than relying on manual channel definitions
- Create, start & stop Queue Managers
- Access and view local MQ log files
- Ability to run local commands to gather additional data or take actions
- Automatic actions can be executed regardless of the connection to the management server