Let's say you have a single Manager of Manager (MoM) server and two Collector servers, like this:
- mom.example.com
- collector1.example.com
- collector2.example.com
On the MoM, the loadbalancer.xml file is used to balance requests across the collector servers. By default, the loadbalancer.xml file is located at:
/opt/wily/Introscope/config/loadbalancer.xml
To load balance requests across each collector, you will do something like this in loadbalancer.xml.
<agent-collector name="collector1.example.com">
<agent-specifier>agent1.example.com\|.*\|.*</agent-specifier>
<agent-specifier>agent1.example.com\|.*\|.*</agent-specifier>
<agent-specifier>agent1.example.com\|.*\|.*</agent-specifier>
<include>
<collector host="collector1.example.com" port="5001"/>
</include>
</agent-collector>
<agent-collector name="collector2.example.com">
<agent-specifier>agent1.example.com\|.*\|.*</agent-specifier>
<agent-specifier>agent1.example.com\|.*\|.*</agent-specifier>
<agent-specifier>agent1.example.com\|.*\|.*</agent-specifier>
<include>
<collector host="collector2.example.com" port="5001"/>
</include>
</agent-collector>
If the MoM is able to communicate with each collector, something like this should be in the IntroscopeEnterpriseManager.log on the MoM.
mm/dd/yy hh:mm:ss [VERBOSE] [Manager.PostOfficeHub] Connected To: Node=Agent_1104, Address=agent1.example.com/10.15.231.81:45656, Type=socket
mm/dd/yy hh:mm:ss [VERBOSE] [Manager.LoadBalancer] Assign SuperDomain/Tomcat|agent1.example.com|Tomcat|myJVM to collector1.example.com@5001 (22337 metrics)
On the other hand, if the MoM is not able to determine the collector that an agent is being monitored by, something like this should be in the IntroscopeEnterpriseManager.log on the MoM.
mm/dd/yy hh:mm:ss [VERBOSE] [Manager.LoadBalancer] No eligible collector for: SuperDomain/Tomcat|agent1.example.com|Tomcat|myJVM
mm/dd/yy hh:mm:ss [VERBOSE] [Manager.EventHandler] Error reading incoming bytes in Server Hub Receive 1115 event handler for Socket Transport connected with Socket[addr=agent1.example.com/10.15.231.81,port=45656,localport=5001] because java.io.IOException: An existing connection was forcibly closed by the remote host
mm/dd/yy hh:mm:ss [VERBOSE] [Manager.PostOfficeHub] Disconnected From: Node=Agent_1104, Address=agent1.example.com/10.15.231.81:45656, Type=socket
When the MoM is able to determine the collector that an agent is being monitored by, IntroscopeEnterpriseManager.log on the collector should have the following.
mm/dd/yy hh:mm:ss [INFO] [PO:WatchedAgentPO Mailman 1] [Manager.Agent] Connected to Agent "SuperDomain/Tomcat|agent1.example.com|Tomcat|myJVM" at "Node=Agent_31, Address=agent1.example.com/10.15.231.81:50858, Type=socket" using Agent protocol revision 1.0
When the MoM is unable to determine the collector that an agent is being monitored by, IntroscopeEnterpriseManager.log on the collector should have the following. This is expected when an Agent is stopped.
mm/dd/yy hh:mm:ss [INFO] [Manager] Lost connection at: Node=Agent_31, Address=agent1.example.com/10.15.231.81:50858, Type=socket
mm/dd/yy hh:mm:ss [INFO] [Manager.Agent] Disconnected from Agent "SuperDomain/Tomcat|agent1.example.com|Tomcat|myJVM"
Note that the unmounting an agent does not cause "Lost connection" and "Disconnected from Agent". Instead, IntroscopeEnterpriseManager.log on the collector should have the following for an unmount.
mm/dd/yy hh:mm:ss [INFO] [PO:main Mailman 5] [Manager.Agent] Unmount completed of Agent "server2|Tomcat|JVM2"
Did you find this article helpful?
If so, consider buying me a coffee over at