This page applies to an earlier version of the AppDynamics App IQ Platform.
See the latest version of the documentation.
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:
- GUI: The installer presents a graphical interface for performing the installation. By default, the installer run in GUI mode. If the operating system is not set up to display the GUI, it will start in console mode. In order to launch the installer in GUI mode on Linux, it must have X Terminal support.
- Console: The installer runs interactively in the console window.
- Silent: The installer runs non-interactively, taking installation options from a response file.
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
- At a command line, navigate to the directory to which you downloaded the installer.
Assign execute permissions to the downloaded installer script. For example:
chmod 775 controller_64bit_linux.sh
Run the installer script. For example:
./controller_64bit_linux.sh
For full-screen viewing, click Installing the Controller on Linux.
Install the Controller on Windows
Open an elevated command prompt (run as administrator).
Run the downloaded installer binary you downloaded. For example:
controller_32bit_windows.exe
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.
Linux response file:
Be sure to set the values for the properties in the file, such as the controllerConfig, hostname, passwords, for your environment.
Windows response file:
Be sure to set the values for the properties in the file, such as the controllerConfig, hostname, passwords, for your environment.
When ready, start the installer with the -q switch and passing the response file as the -varfile argument.
On Linux, for example, the command would be similar to:
./controller_64bit_linux.sh -q -varfile /home/user/response.varfile
On Windows, similarly pass the path to the varfile. Run the command from an elevated command prompt. For example:
controller_64bit_windows.exe -q -varfile C:\temp\response.varfile
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 Label | Response File variable | Description |
---|---|---|
License Agreement | disableEULA | Scroll to the end of the license agreement and accept the agreement to continue the installation or do not accept to discontinue. Set to |
Consent to collect usage information | enableUDC | True to permit data statistics collection from your Controller. The data collected helps AppDynamics improve its products and services. |
Destination directory | sys.installationDir | 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 | mysqlRootUserPassword | 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 | serverHostName | Server host name or IP address that AppDynamics agents and the AppDynamics UI use to connect to the Controller. Note that "localhost" and "127.0.0.1" 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 | serverPort | 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 | databasePort | The port for the Controller database. If not specified, the installer uses the default, 3388. |
Application Server Admin Port | adminPort | The application server's administration port. If not specified, the installer uses the default, 4848. |
Application Server JMS Port | jmsPort | 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 | iiopPort | 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 | sslPort | 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 Port | restAPIPort | The Events Service REST API port. This port is used for internal system communication. 9080 by default. |
Events Service REST API Admin Port | restAPIAdminPort | The Events Service REST API admin port. This port is used for internal system communication. 9081 by default. |
Reporting Service HTTP Port | reportingServiceHTTPPort | The reporting service HTTP port. This port is used for internal system communication. 8020 by default. |
Reporting Service HTTPS Port | reportingServiceHTTPSPort | The reporting service HTTPS port. This port is used for internal system communication. 8021 by default. |
AppDynamics Controller Tenancy Mode Configuration | controllerTenancyMode | 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 | rootUserPassword | 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 | rootUserRePassword | The root user password repeated for validation purposes. |
User Name (Admin User Setup) | userName | 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) | rePassword | The admin user password repeated. |
Account Name | accountName | For multi-tenancy mode, the name for the initial account in the system. In the response file, ignored if controllerTenancyMode=single. |
Account Access Key | accountAccessKey | Your AppDynamics account access key. |
AppDynamics Controller Performance Profile | controllerConfig | 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 | realDataDir | The path to the Controller's data directory. |
(New in 4.3.2) MySQL transaction log directory | transactionLogDir | The 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 directory | elasticSearchDataDir | 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 | haControllerType | 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. |
n/a | sys.languageId | (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:
http://<application_server_host_name>:<http-listener-port>/controller
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.