On this page:

Related pages:


This topic describes how to install the AppDynamics Controller with the package installer.

About Controller Installation

The AppDynamics Controller installer works in the following modes:

All software required for Controller operation is included with the installer, so you do not normally need to install additional software.

Before starting, get the installer version appropriate for your target system. You can get the installer from the AppDynamics download site

Install the Controller on Linux 

  1. At a command line, navigate to the directory to which you downloaded the installer. 
  2. Assign execute permissions to the downloaded installer script. For example:

    chmod 775 controller_64bit_linux.sh


  3. Run the installer script. For example:



    <style type="text/css">.vidyard_player{width: 600px; }.vidyard_player > span{max-width: 600px !important; max-height: 360px!important;margin-left:0!important;}.innerContainer{position: relative; display: block; width: 100% !important; height: 0; }</style><script type="text/javascript" id="vidyard_embed_code_XPDrSos5bv1e3aqu9gQVph" src="//play.vidyard.com/XPDrSos5bv1e3aqu9gQVph.js?v=3.1.1&type=inline&second=90"></script>

    For full-screen viewing, click Installing the Controller on Linux.

Install the Controller on Windows 

  1. Open an elevated command prompt (run as administrator).

  2. Run the downloaded installer binary you downloaded. For example:


    You must add C:\Windows\System32 to the PATH environment variable in Windows so the installer can locate "FINDSTR" and "TIMEOUT".

Follow the instructions in the wizard to complete the installation. See installation options for additional information on the various screens and fields in the installer. 

Install in Console Mode

In console mode, the installer presents the installation configuration options in its command line interface. Functionally, this installation mode is equivalent to using the GUI installer or the silent mode installer.  

To start the installer in console, use the -c switch when starting the installer. For example, on Linux, enter: 

./controller_64bit_linux.sh -c

Follow the on-screen prompts to complete the installation. See installation options for more information on the various screens and fields in the installer.

After the installation has completed, you may be presented with Java system preferences warnings. These warnings are benign and occur only during non-root installations.

Install in Silent Mode (Response File)

To start the installer silent mode, use the -q option and pass a response file as the value of the varfile argument. The response file should contain the installation options for your instance.

Before starting, create and configure the response file. The following provide example response files for each operating system.

When ready, start the installer with the -q switch and passing the response file as the -varfile argument.

See the following section, for more information on the options you can configure in the response file. 

Installation Settings

Whether running the installer in GUI mode, console mode, or by passing a response file, the options you have while performing the installation are the same.

The installer does some basic system checking of your environment as it performs the installation. It notifies you if it encounters conditions that need to be addressed. 

The installer configures listening ports for Controller. In GUI and Console mode, the installer checks to make sure that each port it suggests is available on the system before suggesting it. If a default port number is already in use, it chooses the next highest available number for the port. For example, if the usual default port of 8090 for the Controller application server is taken, the installer suggests 8091. You only need to edit a default port number if you know it will cause a future conflict or if you have some other specific reason for choosing another port.

Due to browser incompatibilities, AppDynamics recommends using only ASCII characters for usernames, passwords, and account names.

Configure your installation using these response file settings:

GUI Mode Screen or Option LabelResponse File variableDescription
License Agreement


Scroll to the end of the license agreement and accept the agreement to continue the installation or do not accept to discontinue. Set to true in the response file to enable installation.

Consent to collect usage information


True to permit data statistics collection from your Controller. The data collected helps AppDynamics improve its products and services.

Destination directory


Directory in which to install the Controller. If not specified, it is installed into the default directory of the target environment, such as AppDynamics/Controller under the user's home on Linux systems.

Database Root User's Password


The password of the user account that the Controller uses to access its MySQL database. Do not use the single quotation mark ('), double quotation mark ("), or at sign (@) characters in this password.

Application Server Host Name


Server host name or IP address that AppDynamics agents and the AppDynamics UI use to connect to the Controller. Note that "localhost" and "" are not valid settings.

This will be the host name (or IP address) that AppDynamics app agents and Controller UI browser clients use to connect to the Controller.

Application Server Primary Port


The primary HTTP port for the application server. If not specified, the installer uses the default, 8090, if it is available on the current machine. If is not available, the installer suggests the next available port number.

This will be the port that AppDynamics app agents and Controller UI browser clients use to connect to the Controller.

Database Server Port


The port for the Controller database. If not specified, the installer uses the default, 3388.

Application Server Admin Port


The application server's administration port. If not specified, the installer uses the default, 4848.

Application Server JMS Port


The application server's JMS port. This port is used for internal system communication. If not specified, the installer uses the default, 7676.

Application Server IIOP Port


The application server's IIOP port. This port is used for internal system communication. If not specified, the installer uses the default, 3700.

Application Server SSL Port


The secure HTTP port for the application server. If not specified, the installer uses the default, 8181. This is the secure alternative to the application server primary port. By default, it uses a built-in, self-signed certificate. For a production deployment, you should install a CA-signed certificate.

Events Service REST API PortrestAPIPortThe Events Service REST API port. This port is used for internal system communication. 9080 by default.
Events Service REST API Admin PortrestAPIAdminPortThe Events Service REST API admin port. This port is used for internal system communication. 9081 by default.
Reporting Service HTTP PortreportingServiceHTTPPortThe reporting service HTTP port. This port is used for internal system communication. 8020 by default.
Reporting Service HTTPS PortreportingServiceHTTPSPortThe reporting service HTTPS port. This port is used for internal system communication. 8021 by default.
AppDynamics Controller Tenancy Mode Configuration


The tenancy mode: single tenant or multi-tenant. Multi-tenancy is used to create separate Controller UI environments in a single Controller.

If you are not sure which one to choose, select single tenancy. It is suitable for most installations, and you can always change it to a multi-tenant controller later.

Controller root User's Password


The Controller root user password. The root user is a Controller user account with privileges for accessing the system Administration Console.

This password is used for the admin user of the built-in Glassfish application server as well. The Glassfish admin user lets you access the Glassfish console and the asadmin utility. See Access the Administration Console for more information about the console.

Allowed characters in the password are: a-z, A-Z, 0-9, ., +, =, @, _, -, $, :, #, ,, (, ), !, {, }

Note that the pipe character ( | ) is not allowed.

Verify Controller root User's Password


The root user password repeated for validation purposes.

User Name (Admin User Setup)


The username of the administrator account in the Controller UI. This is the administrator for the built-in account if single-tenant systems, or for the initial account for multi-tenant. See User Management.

Usernames and password cannot include the @ or ! character.

Also note that if this account will be used to access the REST API, additional limitations on the use of special characters in usernames apply. See Manage Users and Groups for more information.

Password (Admin User Setup)password

The admin user password.

Verify Password (Admin User Setup)


The admin user password repeated.

Account Name


For multi-tenancy mode, the name for the initial account in the system.

In the response file, ignored if controllerTenancyMode=single.

Account Access Key


Your AppDynamics account access key.

AppDynamics Controller Performance Profile


The performance profile type for the instance. See Controller Hardware Requirements for information about how the types correspond to sizes.

The installer limits the choice of profiles to Demo and Small profile on 32-bit systems. When you submit your choice in GUI or console mode, the installer checks your system for minimum requirements and warns you if any are not met.

In the response file, use demo, small, medium, large, or extra-large for the profile types.

MySQL data directory


The path to the Controller's data directory.

(New in 4.3.2) MySQL transaction log directorytransactionLogDirThe path to the transaction log directory. You can enable the Controller to scale to higher metric loads by configuring MySQL to put innodb_log_group_home_dir on a separate filesystem or SSD with low latency. This setting is preserved across upgrades.
Elastic Search data directoryelasticSearchDataDir

The path to the Elastic Search file store. Elastic Search is used by Database Visibility features. By default, the directory is located in the Controller home. However, if you are putting the MySQL data directory in an alternate location, such as on a separate partition, the Elastic Search data directory would likely need to be put there as well.

If you are not sure whether you will use database monitoring, you can keep the default location for now and change the data directory location later, if needed, in the events_service/analytics-processor/conf/analytics-all.properties file.

AppDynamics Controller High Availability Configuration


The high availability mode for this instance. For more information see Controller High Availability.

In the response file, use primary, secondary, or notapplicable. If not specified, defaults to notapplicable, which means that HA is not enabled.



(Response file only). The language identifier for the system. en by default.

Verifying Controller Installation

When the installation is finished, a status screen in the installer indicates that the installation is complete and the Controller is started. 

Verify by navigating in a browser to the URL of the Controller UI:


Log in using the credentials of the initial Controller administrator. 

Licensing the Controller

Upon first login, the Controller UI may prompt you that you need a valid license. For a trial installation, the license file (license.lic) is bundled in your download. Otherwise, you may have acquired the license file from AppDynamics.

To apply a license file manually, copy the license file to the Controller home directory. After moving the license file, allow up to 5 minutes for the license change to take effect.

Troubleshooting Installation

Installation Stuck at License Agreement

If your installation becomes stuck at displaying the license agreement on the console, then the EULA may be having issues with special characters. To fix this issue, add the -VdisableEULA=true flag to your installation command or response.varfile. For example:

./controller_64bit_linux.sh -c -VdisableEULA=true

Installation Timeout

During installation and setup, the installer tries to start the Controller. This procedure can take some time. If startup exceeds the 30 minute default timeout, the installer exits but leaves changes on disk, allowing you to troubleshoot the issue. When finished troubleshooting, you will need to replace the installation directory with the backup directory, apply the troubleshooting remediation, and restart the installation. Optionally, you can extend the timeout by passing the ad-timeout-in-min command line parameter with the new value in minutes to the installer. 

Installation Log File

A log for the installation process is automatically created in the <controller_home>/.install4j/installation.log. This file contains information for troubleshooting installation issues. 

While installation is in progress, you can find the log file in the <user_temp_directory>/i4j_log_<timestamp>.log.