Overview
Note: The CLM Server Monitoring (CSM) Agent was deprecated in 6.0.3.
Designed to monitor Collaborative Lifecycle Management deployments, the CLM Server Monitoring (CSM) Agent provides reports and visualizations to identify key problem areas related to product user activity and resource bottlenecks identified by the
CLM Server Monitoring plug-in
Prerequisites
- CLM Server to be monitored
- Jazz Team Server, Rational Team Concert, Rational Quality Management from CLM 4.0.6 or higher Installation
- WebSphere Application Server or Apache Tomcat
-
- NOTE: Support for application server information during monitoring is not supported for Tomcat at this time. Tomcat must use the IBM JDK; the Oracle JDK is not currently supported for Tomcat.
- Follow instructions for JMX for WAS: To enable JMX on WebSphere
- Follow instructions for unsecured JMX for Apache Tomcat: To enable JMX on Tomcat
- For Rational DOORS Next Generation support, CLM must be at least version 5.0.1
- See the CLM version specific documentation for other CLM and application-related requirements
- The CLM Server to be monitored must be started, setup, and running with the plugin enabled to connect CLM Server Monitoring Agent to the CLM server. * CLM Server Monitoring Agent
- x86-64 hardware
- Windows or Linux, 64-bit operating system
- LAN connection to CLM 4.0.6 or higher Installation
- Sizing requirements similar to the appropriate Jazz Team Server CLM version
Installation instructions
- CLM Server Monitoring Agent is installed through the Installation Manager using the launch pad under custom installation for CLM 5.0.1 and above.
- If you tried prior versions such as CLM Server Monitoring Agent Tech Preview versions 4.0.6 and 5.0.0, download the CLM 5.0.2 agent from jazz.net.
- CLM Server Monitoring Agent embedded Apache Tomcat versions, the listening port is pre-configured to https 10443 by default and does not have conflict with the CLM embedded Tomcat nor default external application server listening ports.
- WARNING: The CLM Server Monitoring Agent should never be installed in the same Java Virtual Machine as any CLM application(s). This means that it should not be installed in the same application server instance.
- Do NOT install the CLM Server Monitoring Agent into the CLM embedded Tomcat instance.
- Do NOT install CLM Server Monitoring Agent into the same WebSphere application server cell as the CLM instance.
- CLM and CSM Agent can run on the same machine but not the same application server JVM instance, but should be considered carefully production deployments, as they will use the same memory, disk storage, and processing power and the CLM Server Monitoring Agent would then affect CLM performance as reflected in the CSM Agent.
- CSM Agent does JVM monitoring and would itself affect the results, affecting performance like memory and processing usage conflicts, causing javacores to have additional impacts, disk space contention, and other possible side effects.
Installation setup for CSM Agent using embedded Apache Tomcat to monitor a CLM installation running on Apache Tomcat
- Application server is already installed.
- Please proceed or make customizations as needed for any other of your application servers in your environment.
- Continue to CLM Server Monitoring Agent setup.
Installation setup for CSM Agent using embedded Apache Tomcat to monitor a CLM installation running on WebSphere,
WARNING: this configuration is NOT SUPPORTED. Please use CSM Agent on WebSphere to communicate with a CLM on WebSphere.
- Linux: Change the CSM Agent {CSMInstall}/server/server.startup.sh to include the following lines Example:
/opt/CSM/server/server.startup.sh
After the JAVA_OPTS="$JAVA_OPTS -Xmn512M" line:
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.SSL.ConfigURL=file://"`pwd`"/tomcat/conf/ssl.client.props"
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.CORBA.ConfigURL=file://"`pwd`"/tomcat/conf/sas.client.props"
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.SOAP.ConfigURL=file://"`pwd`"/tomcat/conf/soap.client.props"
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.IPC.ConfigURL=file://"`pwd`"/tomcat/conf/ipc.client.props"
JAVA_OPTS="$JAVA_OPTS -Djava.security.auth.login.config=file://"`pwd`"/tomcat/conf/wsjaas.conf"
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStore="`pwd`"/tomcat/etc/key.p12 -Djavax.net.ssl.keyStorePassword=WebAS"
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStore="`pwd`"/tomcat/etc/trust.p12 -Djavax.net.ssl.trustStorePassword=WebAS"
- Windows: Change the CSM Agent {CSMInstall}\server\server.startup.bat to include the following lines Example:
C:\CSM\server\server.startup.bat
After the set JAVA_OPTS=%JAVA_OPTS% -Xmn512M line:
set JAVA_OPTS=%JAVA_OPTS% -Dcom.ibm.SSL.ConfigURL=file:///%PATH_URL%tomcat/conf/ssl.client.props
set JAVA_OPTS=%JAVA_OPTS% -Dcom.ibm.CORBA.ConfigURL=file:///%PATH_URL%tomcat/conf/sas.client.props
set JAVA_OPTS=%JAVA_OPTS% -Dcom.ibm.SOAP.ConfigURL=file:///%PATH_URL%tomcat/conf/soap.client.props
set JAVA_OPTS=%JAVA_OPTS% -Dcom.ibm.IPC.ConfigURL=file:///%PATH_URL%tomcat/conf/ipc.client.props
set JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config=file:///%PATH_URL%tomcat/conf/wsjaas.conf
set JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStore="%PATH_URL%tomcat/etc/key.p12 -Djavax.net.ssl.keyStorePassword=WebAS
set JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStore="%PATH_URL%tomcat/etc/trust.p12 -Djavax.net.ssl.trustStorePassword=WebAS
- Copy Files from WebSphere Application Server Some files need to be copied from the CLM WebSphere application server installation into the CSM Agent embedded tomcat directory. If you use CSM_HOME the appropriate files should be copied from the WebSphere Application Server that hosts the CLM application, so the file system on the CLM Server Monitoring host might look as follows. WAS_HOME below refers to the installation directory and WAS_PROFILE_HOME to the profile directory of WebSphere where these files can be found: (Copy the following using the appropriate operating system separators and semantics, and in binary if using file transfer protocols allow.)
- {WAS_HOME}/runtimes/ to {CSM_HOME}/server/tomcat/lib/
- com.ibm.ws.admin.client_{x.y.z}.jar
- com.ibm.ws.ejb.thinclient_{x.y.z.}jar
- com.ibm.ws.orb_{x.y.z}.jar
- Note: Make sure to change the version of the x.y.z format to match that of the origin WebSphere application server. Example: com.ibm.ws.admin.client_8.0.0.jar, com.ibm.ws.ejb.thinclient_8.0.0.jar. and com.ibm.ws.orb_8.0.0.jar for WebSphere Application Server 8.
- {WAS_HOME}/plugins/ to {CSM_HOME}/server/tomcat/lib/
- javax.j2ee.management.jar
- com.ibm.ws.security.crypto.jar
- {WAS_HOME}/etc/ to {CSM_HOME}/server/tomcat/etc/
JConsole Setup *required
WebSphere JMX connections require certain JAR files and configuration files to be available in order to connect. It is recommended to try to connect to WebSphere Application Server from the host where the agent is installed by using JConsole. If JConsole is unable to connect, the agent will not be able to either, because the same connection mechanism is used. Furthermore, running JConsole successfully will seed the trust store with the certificate avoiding having to use the keytool. In the scripts, you should configure the following values (note of these values for future reference and configuration):
-
JAVA_HOME
: Should point to an JDK as this is where JConsole executable is found. This is not included in the JRE
-
CSM_HOME
: Should point to CSM Installation Directory. eg. /opt/CSM or C:\CSM
-
HOST
: The CLM Application host to connect to (where WebSphere Application Server is installed)
-
PORT
: Check the value of "BOOTSTRAP_ADDRESS" (usually either 9809 or 2809 by default), at Servers > Server Types > App Servers > > Ports in the WebSphere Application Server Admin console where the CLM application is installed on
- Make sure to change the x.y.z version of the com.ibm.ws.admin.client_8.0.0.jar, com.ibm.ws.ejb.thinclient_8.0.0.jar. and com.ibm.ws.orb_8.0.0.jar files to match that of the WebSphere Application Server installation where the files originate in the instructions
- These scripts must be executed from $CSM_HOME/server/tomcat. It's best to copy the jconsole script into that directory and execute it from there.
- Windows CMD:
@echo off
set JAVA_HOME=C:\Java
set CSM_HOME=C:\CSM
set HOST=clmjts.jazz.net
set PORT=2809
set CLASSPATH="%JAVA_HOME%\lib\jconsole.jar"
set CLASSPATH=%CLASSPATH%;"%JAVA_HOME%\jre\lib\ibmpkcs.jar"
set CLASSPATH=%CLASSPATH%;"%JAVA_HOME%\jre\lib\ext\ibmkeycert.jar"
set CLASSPATH=%CLASSPATH%;"%JAVA_HOME%\jre\lib\ext\ibmjceprovider.jar"
set CLASSPATH=%CLASSPATH%;"%CSM_HOME%\server\tomcat\lib\com.ibm.ws.admin.client_8.0.0.jar"
set CLASSPATH=%CLASSPATH%;"%CSM_HOME%\server\tomcat\lib\com.ibm.ws.ejb.thinclient_8.0.0.jar"
set CLASSPATH=%CLASSPATH%;"%CSM_HOME%\server\tomcat\lib\com.ibm.ws.orb_8.0.0.jar"
set CLASSPATH=%CLASSPATH%;"%CSM_HOME%\server\tomcat\lib\javax.j2ee.management.jar"
"%JAVA_HOME%\bin\java" -classpath %CLASSPATH% -Dcom.ibm.IPC.ConfigURL=file:"%CSM_HOME%/server/tomcat/conf/ipc.client.props" -Dcom.ibm.CORBA.ConfigURL=file:"%CSM_HOME%/server/tomcat/conf/sas.client.props" -Dcom.ibm.SOAP.ConfigURL=file:"%CSM_HOME%/server/tomcat/conf/soap.client.props" -Dcom.ibm.SSL.ConfigURL=file:"%CSM_HOME%/server/tomcat/conf/ssl.client.props" sun.tools.jconsole.JConsole service:jmx:rmi://%HOST%:%PORT%/jndi/JMXConnector
- UNIX BASH:
#!/bin/bash
JAVA_HOME=/opt/java
CSM_HOME=/opt/CSM
HOST=clmjts.jazz.net
PORT=2809
CLASSPATH=$JAVA_HOME/lib/jconsole.jar
CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib/ibmpkcs.jar
CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib/ext/ibmkeycert.jar
CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib/ext/ibmjceprovider.jar
CLASSPATH=$CLASSPATH:$CSM_HOME/server/tomcat/lib/com.ibm.ws.admin.client_8.0.0.jar
CLASSPATH=$CLASSPATH:$CSM_HOME/server/tomcat/lib/com.ibm.ws.ejb.thinclient_8.0.0.jar
CLASSPATH=$CLASSPATH:$CSM_HOME/server/tomcat/lib/com.ibm.ws.orb_8.0.0.jar
CLASSPATH=$CLASSPATH:$CSM_HOME/server/tomcat/lib/javax.j2ee.management.jar
$JAVA_HOME/bin/java \
-classpath $CLASSPATH \
-Dcom.ibm.IPC.ConfigURL=file:$CSM_HOME/server/tomcat/conf/ipc.client.props \
-Dcom.ibm.CORBA.ConfigURL=file:$CSM_HOME/server/tomcat/conf/sas.client.props \
-Dcom.ibm.SOAP.ConfigURL=file:$CSM_HOME/server/tomcat/conf/soap.client.props \
-Dcom.ibm.SSL.ConfigURL=file:$CSM_HOME/server/tomcat/conf/ssl.client.props \
sun.tools.jconsole.JConsole \
service:jmx:rmi://$HOST:$PORT/jndi/JMXConnector
Installation setup for CSM Agent on WebSphere to a CLM
Follow the instructions for Install a CLM application on WebSphere (JTS for example) found
here .
The war for CSM is csm.war and context is /csm
If connecting CSM Agent to a CLM application hosted on a different WebSphere Application Server
In addition this further step are required if the WebSphere Application server hosting CSM is not in the same realm as the CLM applications they are monitoring (default for stand alone, non-ND WAS)
- In the WebSphere Integrated Solutions console to Global Security-> Java Authentication and Authorization Service ->Application logins

- Click on WSLogin

- Click on com.ibm.ws.security.common.auth.module.WSLoginModuleImpl
- Ensure that "Use login module proxy" is set and that use_realm_callback and use_appcontext_callback are set to true

- You will also need to import the CLM Application Server's certificate into the node default trust store. To do this :
- Go to the WebSphere Integrated Solutions Console
- Navigate to Security->SSL certificate and key management->Key stores and certificates->NodeDefaultTrustStore
- Click on the Signer Certificate Link and click the "Retrieve from port" button.
- In the dialog that follows specify the https port of the CLM application we will be monitoring to retrieve the certificate (ex. 9443).
- Enter something recognizable for the name, such as "alias".
- The fully qualified host name for the CLM Server should be entered in the "Host" field
- After entering the Host, Port, and Alias fields, click on the "Retrieve signer information"
JConsole Setup
In the scripts, you should configure the following values (note of these values for future reference and configuration):
-
WAS_HOME
: Should point to an WebSphere Home Directory eg. /opt/IBM/WebSphere/AppServer or C:\Progra~1\WebSphere\AppServer
-
WAS_PROFILE_HOME
: Should point to WAS profile being used. eg. /opt/IBM/WebSphere/AppServer/profiles/AppSrv01 or C:\Progra~1\WebSphere\AppServer\profiles\AppSrv01
-
HOST
: The CLM Application host to connect to (where WebSphere Application Server is installed)
-
PORT
: Check the value of "BOOTSTRAP_ADDRESS" (usually either 9809 or 2809 by default), at Servers > Server Types > App Servers > > Ports in the WebSphere Application Server Admin console where the CLM application is installed on
- Make sure to change the version of the com.ibm.ws.admin.client_8.0.0.jar, com.ibm.ws.ejb.thinclient_8.0.0.jar. and com.ibm.ws.orb_8.0.0.jar files to match that of the WebSphere Application Server installation in the instructions
@echo off
set WAS_HOME=C:\Progra~1\IBM\WebSphere\AppServer
set WAS_PROFILE=AppSrv01
set WAS_PROFILE_HOME=%WAS_HOME%\profiles\%WAS_PROFILE%
set CLM_HOST=clm.jkebanking.net
set CLM_PORT=2809
set CLM_JMX_PROTOCOL=rmi
call "%WAS_PROFILE_HOME%\bin\setupCmdLine.bat"
set CLASSPATH="%JAVA_HOME%\lib\jconsole.jar"
set CLASSPATH=%CLASSPATH%;"%WAS_HOME%\java\lib\tools.jar"
set CLASSPATH=%CLASSPATH%;"%WAS_HOME%\java\jre\lib\ibmpkcs.jar"
set CLASSPATH=%CLASSPATH%;"%WAS_HOME%\java\jre\lib\ext\ibmkeycert.jar"
set CLASSPATH=%CLASSPATH%;"%WAS_HOME%\java\jre\lib\ext\ibmjceprovider.jar"
set CLASSPATH=%CLASSPATH%;"%WAS_HOME%\runtimes\com.ibm.ws.admin.client_8.5.0.jar"
set CLASSPATH=%CLASSPATH%;"%WAS_HOME%\runtimes\com.ibm.ws.ejb.thinclient_8.5.0.jar"
set CLASSPATH=%CLASSPATH%;"%WAS_HOME%\runtimes\com.ibm.ws.orb_8.5.0.jar"
set CLASSPATH=%CLASSPATH%;"%WAS_HOME%\plugins\javax.j2ee.management.jar"
"%JAVA_HOME%\bin\java" -classpath %CLASSPATH% -Dcom.ibm.IPC.ConfigURL=file:"%WAS_PROFILE_HOME%\properties\ipc.client.props" -Dcom.ibm.CORBA.ConfigURL=file:"%WAS_PROFILE_HOME%\properties\sas.client.props" -Dcom.ibm.SOAP.ConfigURL=file:"%WAS_PROFILE_HOME%\properties\soap.client.props" -Dcom.ibm.SSL.ConfigURL=file:"%WAS_PROFILE_HOME%\properties\ssl.client.props" sun.tools.jconsole.JConsole service:jmx:%CLM_JMX_PROTOCOL%://%CLM_HOST%:%CLM_PORT%/jndi/JMXConnector
CLM Server Monitoring Agent instructions
#Setup_instructions
- Start the CSM agent Application Server and application.
- For CSM Agent on the embedded tomcat on Windows, execute the {CSM_HOME}\server\startup.server.bat script as an Administrator.
- For CSM Agent on the embedded tomcat on Linux, execute the {CSM_HOME}/server/startup.server.sh script as an Administrator.
- For CSM Agent on WebSphere Application Server make sure the application server is started and that the CSM application is started using the WebSphere Administration Console.
- Run the setup by using the public URL of CLM Server Monitoring. Example: https://<hostname.domain>:9443/csm/setup
CLM Server Monitoring Agent 5.0 Tech Preview, 5.0.1, and higher first steps
Adding CLM Friends (5.0 and higher)
In order for the CSM agent to be able to collect javacores and other artifacts that are a result of plug-in actions, the CSM agent needs to log into the Application and fetch this information securely. To simplify this operation, a friend relationship needs to be established between the applications being monitored and the CSM agent. To do this we add the applications being monitored as friends, and in the case where no SSO is enabled identify a user in the CLM application who will act on behalf of the CSM agent.
- Go to the CSM Administration page at /admin and click "Friends (Outbound)" in the left hand menu. Then click the "Add..." link on the right.

- In the Add Friend dialog add the information as it applies the friend server you are adding:
- Name: Any recognizable name
- Root Services URI: /rootservices
- OAuth secret: A secret/password used for this trust relationship (any value)
- Re-type secret: Retype above entry
- Trusted: Set to true
- Click "Create Friend"

On successful completion the following message will appear then click next.

- Authorize the provisional key. Click "Grant access for the provisional key". You may be asked to log into the CLM application at this point in order to grant access.

- Approve the request when asked. The "Consumer Name" is what the CSM server will be recognized as in the consumer list.

- Once finished the friend will be added to Friends List:

If SSO is not enabled between CSM and the CLM applications (most likely true)
- Login into the application friend we just added through and navigate to the administration interface at /admin. Go to "Consumers (Inbound)". The CSM server consumer we just added should be listed there. We want to add the user that the consumer (CSM) will use locally to fetch the javacores. This user must be a Jazz Admin. Click the pencil beside the CSM consumer.

- Edit Consumer Key Properties and add the Jazz Admin user be selecting "Select User..."
The functional user should now be set:

and the consumer user added to the consumer list entry on the consumer page.

Configuring the WAIT reporting tool (5.0 and higher)
When javacores are fetched several properties need to be specified in order for the javacores to be uploaded to WAIT once the activity is complete. These properties can be specified in the
/admin advanced properties page.
- WAIT Server: The WAIT server to use for uploading the reports
- WAIT Server Email: The email address used by the WAIT Server for generating the reports
- WAIT Server User: Specified if the WAIT server is protected by a username
- WAIT Server Password: Specified if the WAIT server is protected by a username

CLM Server Monitoring steps, all versions
CLM Server Monitoring project creation
- Users can be created and assigned "CLM Server Monitoring - User (Early Access)" CALs. Ten licenses are included in the preview.
- Go to https://<hostname.domain>:9443/csm/admin#action=com.ibm.team.process.manageProjectAreas and click "Create a Project Area" called "CLM Server Monitoring."
- You will need to deploy the process templates to get the CLM Server Monitoring template.
- At a minimum, you will need to add a Jazz Admin user to the project (for JMX Connection User) along with any other users who you want to have access.

- Click "Save."
- Assign the "Team Member" role to any users assigned to the project.

- Click "Save."
CLM Server Monitoring JMX connection setup
Depending on the application server you want to monitor, follow the instructions in the !WebSphere Application Server or the Tomcat section. (Where the CLM applications are installed).
- Go to https://<hostname.domain>:9443/csm/web/projects/CLM%20Server%20Monitoring#action=com.ibm.team.dashboard.viewDashboard to access the project you created.
- Select JMX Connections -> Create-> Create Connection.

Connecting to WebSphere (JVM)
- Complete the connection information:
- The connection ID: This must be a unique string or number. You cannot have two connections with the same ID.
- The connection Name: This is optional but can help you find your connection in a list.
- The connection Type: Choose !WebSphere because the application you are trying to monitor is deployed to WebSphere Application Server.
- Select the Jazz user that will be used to create problem records. The user must be assigned a CSM User CAL and be a Jazz Admin user
- Select the Secure Connection check box if the JMX server on your application only accepts secure connections. If you select this check box, you also need to complete the User Name and Password fields. This is the WebSphere Application Server admin user name and password. The Realm field is the authentication realm of the CLM application's application server. This can be found on the CLM application server WebSphere Integrated Solutions console in Global Security->Realm name. You can also find this value from JConsole login window (the first field).
- Enter the Host Name and Port: This is the host name of the server to monitor and the port used by the JMX server. Use the value used for HOST and PORT from the JConsole script.
- Use JSR160RMI (, RMI or SOAP) as the protocol. Ensure that whatever protocol is used, that the connector is enabled on the CLM application server's connector configuration as specified in To enable JMX on WebSphere

- Click "Save".
Connecting to Apache Tomcat (JVM)
- Complete the connection information:
- The connection ID: This must be a unique string or number. You cannot have two connections with the same ID.
- The connection Name: This is optional but can help you find your connection in a list.
- The connection Type: Choose JSR160 because the application you are trying to monitor is deployed to Apache Tomcat.
- Select the Jazz user that will be used to create problem records. The user must be assigned a CSM User CAL and be a Jazz Admin user
- Select the Secure Connection check box if the JMX server on your application only accepts secure connections. If you select the check box, you also need to complete the User Name and Password fields.
- Enter the Host Name and Port: This is the host name of the server to monitor and the port used by the JMX server (the default is 1099).

- Click "Save".
CLM Server Monitoring connection activation
To successfully activate a connection, you must first ensure that CLM Server Monitoring is enabled on the server that you want to monitor. See Jazz monitoring through JMX for details on how to enable JMX monitoring.
To activate a connection, perform the following steps.
- Go to https://<hostname.domain>:9443/csm/web/projects/CLM%20Server%20Monitoring#action=com.ibm.team.server.monitoring.agent.jmx.viewConnections.
- Select JMX Connections -> Browse-> Connections.

- Click the connection to activate.
- Select the Activate check box and save your changes.

- If the connection is successfully activated, you see the list of available domains displayed in the Provided Domains section.

CLM Server Monitoring configuration
- Click the domain of the activated connection. Example: team.server./jazz@9443
- Ensure that the AllMonitorsEnabled and DiagnosticsEnabled check boxes are selected.
- Add rules, based on the example rules at CLMServerMonitoringRules.
- *Note
- image below from CSM Agent 4.0.6. CSM Agent 5.0 and higher use a different format for rules. see CLMServerMonitoringRules.

- Click "Save".
CLM Server Monitoring threshold modification
- Navigate to one of the domains of the activated connection and click one of the monitors. Example: Request

- Enter a new value in the Threshold field and save your changes.

Usage scenario
Related topics:
Using WAIT in the CLM Server Monitoring Agent
External links:
Additional contributors: None