AppDynamics On-Premises >= 23.4.0 includes Events Service that uses Elasticsearch 8.x version. Events Service Cluster 23.x uses Elasticsearch 8.x whereas, Events Service Cluster 4.5.x uses Elasticsearch 2.4.1 version. When you upgrade the Events Service from versions < 23.4.0 to the latest version, you must migrate data from Elasticsearch 2.4.1 to 8.x version. AppDynamics provides a migration utility that helps you migrate the data.

Component Versions

To migrate data from Events Service 4.5.x to Events Service 23.x, ensure that you are running the following versions of AppDynamics components:

Enterprise ConsoleEvents ServiceController EUM Server

>= 23.1.3-32

4.5.2.x>=23.1.3-66>=21.4.6.34822

See Compatibility with AppDynamics Components.

Considerations for Migration on Windows OS

To install Events Service on Windows OS, we recommend the following:

  • Use Windows Server 2016 or 2019. See Install the Events Service on Windows.
  • Elasticsearch compatibility differs for each Windows Server editions. Ensure that you select the compatible Windows Server edition.

Migration Process

The following table outlines the tasks to migrate data from Elasticsearch 2.4.1 to 8.4.3 version.

Before you begin:

  • Ensure that you have an extra load balancer to manage data during migration.
  • Back Up the Events Service Data.
  • We recommend that you complete the migration activities in a pre-production environment before moving to the production environment.

Prepare the Events Service for Migration

To ensure that you retain the Controller configuration during migration, we recommend that you create a new Events Service 23.x cluster with the same configuration as that of the Events Service 4.5.x cluster. This ensures that all data is migrated seamlessly to Events Service 23.x and the new load balancer points to the nodes configured in Events Service 23.x as shown in the following diagram. 


Step 1: Create and Configure Events Service 23.x Cluster  

  1. Create an Events Service 23.x cluster that has the same number of nodes and hardware resources as your Events Service 4.5.x cluster. For more information, see Multi-node Cluster.
  2. Copy the keys and configuration from the Events Service 4.5.x to the newly created Events Service 23.x cluster.
  3. Configure a Load Balancer in the Events Service 23.x to distribute traffic among the nodes. Alternatively, you can use round-robin DNS.

    If your Events Service 4.5.x nodes use DNS, the data migration may delay and result in data loss. The delay period varies depending on the number of agents you have configured.

Step 2 Enable SSL in Events Service (Optional)

Use Enterprise Console CLI to enable SSL in Events Service. Use the same wildcard certificate, KeyStore file, and the password as your Events Service 4.5.x cluster. See Enable the Events Service to Use SSL.

Verify the SSL connection using the following CURL commands:

curl --cacert /path/to/ca.pem https://localhost:9080/_ping
curl --cacert /path/to/ca.pem https://<<IP_ADDRESS_Events_Service_23.x>>:9080/_ping>>
curl --cacert /path/to/ca.pem https://<<Events_Service_23.x_LOAD_BALANCER>>:9080/_ping>>
CODE

Step 3 Update the Events Service Properties

You can update the properties in Events Service without stopping the Events Service cluster. However, some changes may take effect after the rolling restart of the cluster.

Update the following properties in the events-service-api-store.properties file: 

Description Properties
Enable the business journey (Optional)
ad.bizoutcome.enabled=false to true
CODE
Avoid agent restarts or modify properties in the Controller configurations.
ad.accountmanager.key.eum=<<COPY_SAME_KEY_VALUE_FROM_Events_Service_4.5.x>>

ad.accountmanager.key.controller=<<COPY_SAME_KEY_VALUE_FROM_Events_Service_4.5.x>>

ad.accountmanager.key.mds=<<COPY_SAME_KEY_VALUE_FROM_Events_Service_4.5.x>>

ad.accountmanager.key.ops=<<COPY_SAME_KEY_VALUE_FROM_Events_Service_4.5.x>>

ad.accountmanager.key.slm=<<COPY_SAME_KEY_VALUE_FROM_Events_Service_4.5.x>>

ad.accountmanager.key.jf=<<COPY_SAME_KEY_VALUE_FROM_Events_Service_4.5.x>>

ad.accountmanager.key.account_service=<<COPY_VALUE_FROM(ad.accountmanager.key.service)>>

ad.accountmanager.key.admin_service=<<COPY_VALUE_FROM(ad.accountmanager.key.service)>>

ad.accountmanager.key.service=<<COPY_SAME_KEY_VALUE_FROM_Events_Service_4.5.x>>
CODE
Set the Keystore path.
ad.dw.https.keyStorePath=<<Absolute path of JKS file>>
CODE
Set the truststore path.
ad.dw.https.trustStorePath=<<Trust store path of cacerts>>
CODE

Configure the Load Balancer

Introduce a new load balancer for the newly configured cluster. A load balancer is required to copy metadata and data indices from Events Service 4.5.x to Events Service 23.x. 

Configure SSL Certificates

If you have generated the SSL certificates using DNS host names, you must configure the SSL certificates and restart the AppDynamics components. 

You can skip this procedure if you have generated the SSL certificates using wildcards, for example, *.example.com.

Verify SSL Certificates

Ensure that the SSL certificate installed on your Events Service nodes matches the domain or hostname. This certificate can be a standard SSL certificate or a Subject Alternative Name (SAN) certificate that has multiple domains and host names. If your SSL certificate cannot access the load balancer for a specific domain or host name, you may face the SSL/TLS handshake failures. 

Do not migrate your data If you see exceptions such as, javax.net.ssl.SSLHandshakeException.

Use a New SSL Certificate on the following components.

Component

Procedure
Agent
  1. Acquire a new CA signed SSL certificate.
    Alternatively, you can generate a certificate with all the host names of Events Service 23.x nodes.
  2. Update the agent configuration to use the new certificate. This configuration requires you to specify the following:
    • Path of the new certificate file.
    • Private key files in the configuration file.
  3. Restart the agent to apply the new SSL certificate and configuration changes.
Controller
  1. Import the new SSL certificate to your Java trust store. It enables your Java applications to use the trust store for secure communication.
  2. Restart the Controller.

EUM Server

  1. Import the new SSL certificate to the Java trust store where you are running the EUM server.
  2. Import certs to the keystore and restart the JVM.
  3. Restart the EUM Server.

Test the connectivity on all nodes where services or agents are running with configured SSL certificate.

Identify a Cut-off Point

This migration uses the cutover method where the data flow switches from Events Service 4.5.x to 23.x. You may observe partial data loss for the active sessions or business transactions. Therefore, you must identify the non-peak hours to perform the cutover. Repeat the delta migration until the delta becomes small then end the cutover. This ensures that minimal business transactions data remains for migration after the cutover.

Migration Utility

After you prepare the Events Service and configure SSL certificates, proceed to use the AppDynamics migration utility. See Migrate Events Service from Version 4.5.x to 23.x.