Configurations are important since they let you customize your installations. The Enterprise Console enables you to configure these settings via GUI and CLI. However, note that there is limited support for updating service configurations through the CLI. Therefore, it is recommended that you use the GUI for updating configurations, especially for multi-line values.

Configuration settings on the Enterprise Console are separated into three categories: Platform, Controller, and Events Service Settings.

Platform Properties

The Platform configuration allows you to update platform description in the UI. Updating the Platform path is only allowed in the CLI.

Controller Settings

The Controller Settings pages allow you to tune your controller. You can configure settings such as database configurations, JVM options, listeners, and thread pools, for both single or high availability controllers.

Appserver Configurations

The AppServer Configurations page under Controller Settings allows you to edit most of the domain.xml configurations. You can also change the ports and update the controller from a smaller to a higher profile. The configurations are categorized under Basic, JVM Options, and SSL Certificate Management:

Basic

  • Profile: Demo, small, medium, or large

    You can change the Controller profile from a smaller profile to a larger one. Before doing so, ensure that the host machine meets the requirements for the profile size you want to use.

    The Enterprise Console checks the disk size for the transaction log dir and db data dir for medium and large profiles only. If the transaction log is in a separate mount, then it will check for half of the minimum recommended disk size.

    This process is not reversible, and you cannot move from a larger to a smaller profile size. If you tune the Controller heap settings or database configuration settings, even to be greater than the recommended settings for the new profile, those settings will be preserved. Otherwise, the AppDynamics recommended settings are applied.
    To increase the Controller profile size, navigate to AppServer Configurations by choosing the platform, ConfigurationsController Settings, and Appserver Configurations. At the top of the page, select a new profile, then click Save
    Alternatively, you can also use the CLI to increase the Controller profile size to meet increased demand:

    bin/platform-admin.sh update-controller-profile --profile <profile size>

    For more information, see Controller System Requirements

  • Tenancy Mode
  • External Load Balancer URL (HA only): This is the deep link URL.
  • Internal Virtual IP Address (HA only)
  • Ports: Server Port: 8090; Admin Port: 4848; SSL Port: 8181; IIOP Port: 3700; JMS Port: 7676
    To change the Controller ports, navigate to AppServer Configurations by choosing the platform, Configurations, Controller Settings, and Appserver Configurations. Near the top of the page, specify new ports and scroll down to click Save. This will restart the Controller. Note that the new ports should be available.
  • Glassfish Admin Password
  • Database User Password
    If you do not specify this password, then it will use the default. For detailed steps, see
    Change the Controller root User Password.

    After a fresh installation or upgrade, the database user password will be hidden in domain.xml in the Appserver directory as an alias.

    Alternatively, you can also use the CLI to change your database user password:

    For MySQL DB:

    bin/platform-admin.sh submit-job --platform-name <platform_name> --service controller --job update-passwords --args newDatabaseUserPassword=<password>
  • Advanced configurations
    • NUMA Controller Configuration: This setting is preserved upon upgrades.
    • NUMA Database Configuration: This setting is preserved upon upgrades.

JVM Options

  • JVM Options: You can update the JVM options via this page without having to use the modifyJvmOptions utility or any other external scripts.
  • Domain Http Services
  • Domain Protocols
  • Domain Network Listeners

    Disabling the HTTPS listener is not allowed.

  • Domain Transports
  • Domain Thread Pools

You can also update the domain config settings using the CLI by following the steps below:

  1. Download all four configurations to individual files. See Deploy the Controller on AWS for more information on the config file.
  2. Create and load four variables:
    • new_network=`cat domain-network-listeners.txt`
    • new_protocol=`cat domain-protocols.txt`
    • new_thread=`cat domain-thread-pools.txt`
    • new_transports=`cat domain-transports.txt`
  3. Go to platform-admin/bin and log in. 

    cd platform-admin/bin
    BASH
    ./platform-admin.sh login --user-name=admin --password=password
    BASH
  4. Run the following command on the Enterprise Console host:

    ./platform-admin.sh update-service-configurations --service controller --job update-configs --args domainProtocols="$new_protocol" domainTransports="$new_transports" domainNetworkListeners="$new_network" domainThreadpools="$new_thread"
    BASH

SSL Certificate Management

  • You can view and edit the SSL Certificate here.

Controller Database Configurations

You can make database configuration changes using:

  • Database Configuration UI Page
  • Enterprise Console CLI

Database Configuration UI Page

Use the Database Configuration UI page to edit your MySQL settings. This is helpful since you do not have to tweak the configuration file on the database host. 

If your RAM memory is greater than 200 GB and you are using a NUMA based architecture, you can specify the Linux nodes (typically CPU socket numbers) from which both processes and memory will be allocated for each AppDynamics component. For example on a two-socket motherboard, AppDynamics recommends the following node configuration settings:

  • Glassfish should should allocate its threads/processes and memory on the first node: 0
  • MySQL should allocate its threads/processes and memory on the second node: 1
For the node configuration settings, you can enter an integer or comma separated list of integers. For example, for Glassfish, you can enter 0 or 0,1; for MySQL, you can enter 1 or 2,3.

The configurations include:

  • DB Configuration Settings
    Data Directory: You can change the datadir path and database port via this page. 

    You cannot change certain configurations, such as the MySQL root directory, through the Enterprise Console.

  • DB Root Password
    The Enterprise Console allows you to reset the Controller MySQL root user password. See Change the Controller Database Root User Password.

Enterprise Console CLI

You can update the Controller database configuration programmatically using the Enterprise Console CLI. This enables you to preserve configuration settings during an upgrade. 

  • If you are using High Availability Toolkit (HATK), you must manually apply these settings on the secondary Controller and restart the secondary server.
  • These instructions are specific to the UNIX operating system.

To update the database configuration using CLI:

  1. Copy the db.cnf file from your primary Controller host onto the Enterprise Console host, for example db.cnf.new file.
  2. Edit the db.cnf.new file to add new settings or update existing values.
  3. Load the db.cnf.new file into an environment variable:

    new_db_cnf=`cat db.cnf.new`
    CODE
  4. Go to the platform-admin/bin directory and log in:

    ./platform-admin.sh login --user-name=admin --password=password
    CODE
  5. Run the following command on the Enterprise Console host: 

    bin/platform-admin.sh submit-job --service controller --job db-update-config --args mysqlCnfContent="$new_db_cnf"
    CODE

Reports Service Configurations

The Reports Service Configurations page allows you to update the reports service ports:

  • Reporting Service HTTP Port: 8020
  • Reporting Service HTTPS Port: 8021

You can also view and edit the SSL Certificate here.

Events Service Settings

The Events Service configurations are read-only. See Administer the Events Service to learn how you can manage your Events Service. You can see the following configurations:

  • Profile: This value is either Dev or Prod.
  • Installation Directory
  • Data Directory
  • Ports
    • Elastic Search Port: 9200
    • REST API Port: 9080
    • REST API Admin Port: 9081
    • Unicast Port: 9300

Update Controller Configurations

You can update Controller configurations such as the deep link URL, JVM options, and network listeners.

Update the Deep Link URL

To update the deep link URL:

  1. Go to platform-admin/bin and log in. 

    cd platform-admin/bin
    BASH
    ./platform-admin.sh login --user-name=admin --password=password
    BASH
  2. Run the following command on the Enterprise Console host:

    ./platform-admin.sh update-service-configurations --service controller --job update-configs --args controllerExternalUrl=<server-protocol>://<controller-host>:<controller-port>

    where server-protocol is http or https.

Update JVM Options

To update JVM options and network listeners:

  1. Go to platform-admin/bin and log in. 

    cd platform-admin/bin
    BASH
    ./platform-admin.sh login --user-name=admin --password=password
    BASH
  2. List all of the Controller configurations from the Enterprise Console:

    ./platform-admin.sh list-service-configurations --service controller > controller-configs.conf
  3. Open controller-configs.conf, and copy all JVM options. Then paste them into a separate file, and edit the desired parameters.

  4. Run the following command on the Enterprise Console host:

    ./platform-admin.sh update-service-configurations --service controller --job update-configs --args controllerNonHostJvmOptions='All JVM options from the previous step including the updated fields'

    For example:

    ./platform-admin.sh update-service-configurations --service controller --job update_configs --args controllerNonHostJvmOptions='-Djava.awt.headless=true, -Djdk.corba.allowOutputStreamSubclass=true, ...'

Retaining Configuration Changes

The Enterprise Console recognizes and retains many common customizations to the domain.xml, db.cnf, and other configuration files, but is not guaranteed to retain them all. If you have made manual configuration changes to the files, verify the configuration after updating.

You can also remove the Controller from the Enterprise Console and rediscover it to preserve the configuration changes:

  1. Go to platform-admin/bin and log in. 

    cd platform-admin/bin
    BASH
    ./platform-admin.sh login --user-name=admin --password=password
    BASH
  2. On the Controller page, click on Remove Controller, or run the following commands on the Enterprise Console host:


    ./platform-admin.sh submit-job --job remove --service controller --platform-name=PLATFORM-NAME --args removeBinaries=false
    BASH
    ./platform-admin.exe cli submit-job --job remove --service controller --args removeBinaries=false
    BASH
    ./platform-admin.sh submit-job --job remove --service controller --platform-name=PLATFORM-NAME --args removeBinaries=false entireCluster=true
    BASH

    If removeBinaries=false then the Enterprise Console forgets the Controller without impacting or uninstalling the Controller.

  3. Discover the Controller by using the Discover & Upgrade feature as if you were upgrading the Controller using the Enterprise Console, or run the following command on the Enterprise Console host:

    ./platform-admin.sh submit-job --service controller --job discover-upgrade --platform-name <name_of_the_platform> --args destinationDirectory=<path_to_controller> controllerRootUserPassword=<controller_root_password> controllerPrimaryHost=<hostname>
    BASH
    bin/platform-admin.exe cli submit-job --service controller --job discover-upgrade --platform-name <name_of_the_platform> --args destinationDirectory=<path_to_controller> controllerRootUserPassword=<controller_root_password> controllerPrimaryHost=<hostname>
    
    BASH
    ./platform-admin.sh submit-job --service controller --job discover-upgrade --platform-name <name_of_the_platform> --args destinationDirectory=<path_to_controller> controllerRootUserPassword=<controller_root_password> controllerPrimaryHost=<hostname> controllerSecondaryHost=<hostname>
    CODE

    You must specify and provide the full path to the existing Controller directory.