You run the Synthetic Server installer from the command line. The installer relies on the inputs.groovy file to configure the network connections to the on-premises EUM Server, and if you are using Synthetic Hosted Agents, to the SaaS EUM Server and SaaS Synthetic Server as well.

To install the Synthetic Server, follow the steps below:

Prepare for the Installation

Before starting the installation, verify that you have:

  • Successfully deployed the Controller, EUM Server, and the Events Service.
  • Downloaded the Synthetic Server installer package from the AppDynamics Download Center. The installer package will be listed on the Downloads site as "Synthetic Server (zip)".

Grant Access to the EUM Server MySQL Database 

The Synthetic Server installer modifies the EUM MySQL database schema and the Synthetic Server stores data in the EUM MySQL database. Thus, you will need to grant MySQL users from the machine hosting the Synthetic Server privilege to the EUM Server's MySQL database.

  1. Log on to the machine where the EUM MySQL database is located.
  2. Connect to the MySQL Server with the EUM Server database. For example, if you are using the default EUM MySQL database, do the following:
    1. Change to <installDir>/AppDynamics/EUM.
    2. Connect to the EUM MySQL database:

      mysql/bin/mysql -u root -p --socket <installDir>/AppDynamics/EUM/mysql/mysql.sock
      BASH
  3. From the MySQL monitor, grant privileges to the MySQL user root of the Synthetic Server machine. The installer will use the MySQL user root to update the EUM database schema. Be sure to replace <on-prem-synthetic_server_hostname> with the URL to your Synthetic Server.

    mysql> GRANT ALL PRIVILEGES ON eum_db.* TO 'root'@'<on-prem-synthetic_server_hostname>';
    SQL

    The MySQL root user from the Synthetic Server is not related to the Linux user account that is installing the Synthetic Server. For example, the Linux user account ubuntu can run the installer, but the installer will use the MySQL user root when connecting to the EUM Server MySQL database to update the database schema.

  4. You will also need to grant access to the MySQL user eum_user to write data to the EUM database (eum_db). Be sure to replace <on-prem-synthetic_server_hostname> with the URL to your Synthetic Server.

    mysql> GRANT ALL PRIVILEGES ON eum_db.* TO 'eum_user'@'<on-prem-synthetic_server_hostname>';
    SQL
  5. Set the password for the MySQL user root. The password should be the same as the one specified by the db_root_pwd in the inputs.groovy file.

    mysql> SET PASSWORD FOR 'root'@'<on-prem-synthetic_server_hostname>' = PASSWORD('<root_password>');
    SQL
  6. Confirm that you have granted permission for eum_user and root:

    show grants for eum_user@<on-prem-synthetic_server_hostname>;
    show grants for root@<on-prem-synthetic_server_hostname>;
    SQL

Unzip the Synthetic Server Installer Package

  1. Copy the Synthetic Server installer package (appdynamics-synthetic-server-<version>.zip) to the machine that will be hosting the Synthetic Server.
  2. Create a directory for storing the Synthetic Server installer, such as synthetic-server.
  3. Move the Synthetic Server installer package to the directory you created.
  4. Change to the directory you created for storing the Synthetic Server installer.
  5. Unzip the Synthetic Server installer package.

Configure the Installation

  1. From a command prompt, navigate to the directory where you unzipped the Synthetic Server installer package.

  2. Copy the sample configuration file: cp inputs.groovy.sample inputs.groovy
  3. Edit the file inputs.groovy and make changes to the properties listed below:

    PropertyChange to MakeDescription
    db_hostAssign the URL to the machine hosting your on-premises EUM Server to the db_host property. The public DNS to the machine hosting the EUM Server.
    db_portChange the value to "3388". This is the default port for the EUM Server's MySQL database.The port that the EUM Server's MySQL database is listening on.
    db_usernameChange the value to "eum_user". This is the default user for the EUM Server.The MySQL user that accesses the EUM Server's MySQL database.
    db_passwordAssign the password for the MySQL user eum_user to remotely access the EUM Server's MySQL database. The password that you set for the user that is specified by db_username. The value of db_username should be eum_user.
    collector_hostAssign the public DNS to the machine hosting your on-premises EUM Server to the collector_host property.The public DNS to the machine hosting the EUM Server.
    collector_portConfirm that the value is "7001". This is the default port of the EUM Server.The port that the EUM API Server and EUM Collector are listening on. The default is '7001'.
    key_store_passwordAssign the key store password you set when installing your on-premises EUM Server to the key_store_password property.The key store password you set during the installation of the EUM Server.

    localFileStoreRootPath

    Assign a file path where you want the Synthetic Server to store data to the localFileStoreRootPath property. The Synthetic Server must be able to read and write to the path and the files in the path.The path where the Synthetic Server stores data such as the measurement results and the screenshots.

Run the Installer

From the root directory of the installer, run the following command as the root user.

 unix/deploy.sh install
BASH

In the output from the install command, you should see the log of completed tasks similar to the following:

Task [facts for localhost] completed executing in [274] ms.
Task [Create the encryption directory] completed executing in [78] ms.
Task [Create keystore for encryption] completed executing in [796] ms.
Task [Create the encrypted password] completed executing in [566] ms.
Task [Obfuscate the key store password] completed executing in [397] ms.
Task [Read created password] completed executing in [46] ms.
Task [Read the obfuscated key store password] completed executing in [43] ms.
Task [Change configurations for the shepherd and scheduler conf] completed executing in [81] ms.
Task [Read created password] completed executing in [24] ms.
Task [Read the obfuscated key store password] completed executing in [26] ms.
Task [Change configurations for the shepherd and scheduler conf] completed executing in [76] ms.
Task [Read created password] completed executing in [29] ms.
Task [Read the obfuscated key store password] completed executing in [20] ms.
Task [Change configurations for the shepherd and scheduler conf] completed executing in [31] ms.
Task [Delete the encryption directory] completed executing in [47] ms.
Task [Change configurations for the liquibase properties file] completed executing in [26] ms.
Task [Update schema of SQL DB to include synthetic schema] completed executing in [2412] ms.
Task [Install flake8 for script linting] completed executing in [1671] ms.
Task [Start the synthetic services] completed executing in [67] ms.
BASH

Verify the Installation Was Successful

  1. Confirm that the Synthetic Server is running:

    ps aux | grep synthetic-processor
    BASH

    If you have jps installed, you can also just run it to verify the Synthetic Server are running.

  2. Verify that the Synthetic Scheduler and Synthetic Shepherd are listening on the default ports:

     netstat -lan | grep "1[0,2,6]10[1,2]"
    BASH
  3. With mysql installed on the Synthetic Server machine, you can verify that the Synthetic Server machine can connect to the EUM Server MySQL eum_db database:

    mysql -h <eum_server_instance> -P 3338 -D eum_db -u eum_user -p
    BASH
  4. If you cannot connect to the EUM Server MySQL database, return to Grant Privileges to the EUM Server MySQL Database and complete the steps again. 

Perform Post-installation Tasks

After installing the Synthetic Server, perform the following additional post-installation tasks:

  1. Configure the Controller for the Synthetic Server
  2. Install Synthetic Private Agents (Optional)
  3. Make configurations to use one or both of the Synthetic Agents:
    1. Synthetic Private Agent
    2. Synthetic Hosted Agent
  4. Secure the Synthetic Server (Recommended)
  5. Monitor the Synthetic Server (Recommended)