Download PDF
Download page Prepare Linux for the Controller.
Prepare Linux for the Controller
This page describes the configuration requirements and considerations for using a Linux system as a Controller host machine.
User Account Requirements
The user account you use to perform the installation must have the following permissions:
- read, write and execute permissions on the directory where you install the Controller
- write permission on the
/
etc/.java/.systemprefs
directory
If you are installing other AppDynamics Platform server components, such as the EUM Server or Application Analytics Processor, on the same machine, it is recommended that you perform the installation as the same user or a user with the same permissions on the target machine.
Virus Scanners
Configure virus scanners on the target machine to ignore the AppDynamics Enterprise Console directory and database directory (or simply the entire Controller directory). Code is never executed from the data directory, so it is generally safe to exclude this directory from virus scanning. The default location of the data directory is <controller_home>/db/data
.
Also configure virus scanners to trust the Controller launcher, database executable, reporting service launcher, and events service (analytics processor) launchers. The launcher names are:
- Controller launcher:
AppDynamicsDomain1Service.sh
- MySQL executable:
mysqld.sh
- Events service launcher:
analytics-processor.sh
- Reporting service launcher:
appdynamicsreportingservice.sh
Anti-virus Exclusions
If you are running an antivirus program on your Linux system, it must meet one of the following conditions:
- The anti-virus program is read-only; it only detects and reports issues but never modifies files
- The anti-virus program excludes the MySQL data directory (
datadir
), which is often set to the pathdb/data
.
If the program does not meet either of those conditions, it can randomly corrupt the MySQL database and hence the controller.
netstat Network Utility
Verify that your distribution of Linux includes the netstat
network utility. If it does not, install the utility. The Controller installation uses netstat
to determine whether MySQL processes are running.
For example, you can install the package that includes netstat
with the following command on CentOS:
yum install net-tools
libaio Requirement
The Controller requires the libaio
library to be on the system. This library facilitates asynchronous I/O operations on the system. Note if you have a NUMA based architecture, then you are required to install the numactl
package.
Install libaio
on the host machine if it does not already have it installed. The following table provides instructions on how to install libaio
for some common flavors of Linux operating system.
Linux Flavor | Command |
---|---|
| Use
For RHEL8, CentOS8, and Amazon2, you install the
Note: The Example of a trusted source for http://mirror.centos.org/centos/7/os/x86_64/Packages/ncurses-base-5.9-14.20130511.el7_4.noarch.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/ncurses-libs-5.9-14.20130511.el7_4.x86_64.rpm
You must either create symlinks for RHEL8 symlink: CentOS8 symlink: Amazon2 symlink: RHEL8 compat-libs:
Amazon2 compat-libs: |
Fedora | Install the library RPM from the Fedora website:
|
Ubuntu | Use
For Ubuntu20 you can install
|
Debian | Use a package manager such as APT to install the library (as described for the Ubuntu instructions above). |
SLES12 and SLES15 | Use
|
tzdata Requirement
Ubuntu version 16 and higher requires the tzdata
package in order to install the Enterprise Console and Controller.
tzdata
package is also required by the MySQL connector.
To install tzdata
, use apt-get
, such as:
sudo apt-get install tzdata
Headless Chrome Requirement for the Reports Service
The Reports Service is a NodeJS-based service that uses a headless renderer to open, snapshot, and email PDFs of AppDynamics UI pages and data, including custom dashboards and audit logs. The Controller sends jobs to the Reports Service at scheduled times or when requested by the user. The Reports Service is bundled with the Controller as part of the Enterprise Console installation. The Enterprise Console installation user interface allows the user to set Reports Service values like ports during setup. At the end of the on-premises Controller installation, the Reports Service is installed and started on the same machine as the controller.
The default renderer for the Reports Service is Headless Chrome, which runs the Google Chrome browser in a headless environment. Before you run Headless Chrome as the Reports Service renderer on Linux report server machines, you must perform a one-time setup as the root user. Setup is required on machines that have not been configured to include the prerequisite libraries as part of their image.
Prerequisites for Headless Chrome on Linux Operating Systems
If the prerequisite libraries are not already installed, run the yum
or apt-get
commands shown in the following sections. To check if the prerequisite libraries are installed, run the yum
or apt-get
commands and the output will specify if they are installed.
If you are already running Headless Chrome as the root user or running Headless Chrome on Docker, run the following commands without the sudo
prefix.
CentOS 7 and Other YUM Systems
sudo yum update -y && \
sudo yum install -y \
pango.x86_64 \
libXcomposite.x86_64 \
libXcursor.x86_64 \
libXdamage.x86_64 \
libXext.x86_64 \
libXi.x86_64 \
libXtst.x86_64 \
cups-libs.x86_64 \
libXScrnSaver.x86_64 \
libXrandr.x86_64 \
GConf2.x86_64 \
alsa-lib.x86_64 \
atk.x86_64 \
gtk3.x86_64 \
ipa-gothic-fonts \
xorg-x11-fonts-100dpi \
xorg-x11-fonts-75dpi \
xorg-x11-utils \
xorg-x11-fonts-cyrillic \
xorg-x11-fonts-Type1 \
xorg-x11-fonts-misc
Ubuntu and Other APT-GET Systems
sudo apt-get update -y && \
sudo apt-get install -y \
gconf-service \
libasound2 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libc6 \
libcairo2 \
libcups2 \
libdbus-1-3 \
libexpat1 \
libfontconfig1 \
libgcc1 \
libgconf-2-4 \
libgdk-pixbuf2.0-0 \
libglib2.0-0 \
libgtk-3-0 \
libnspr4 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libstdc++6 \
libx11-6 \
libx11-xcb1 \
libxcb1 \
libxcomposite1 \
libxcursor1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxi6 \
libxrandr2 \
libxrender1 \
libxss1 \
libxtst6 \
ca-certificates \
fonts-liberation \
libappindicator1 \
libnss3 \
lsb-release \
xdg-utils \
wget
Configure User Limits in Linux
AppDynamics requires the following hard and soft per-user limits in Linux:
- Open file descriptor limit (
nofile
): 65535 - Process limit (
nproc
): 8192
The following log warnings may indicate insufficient limits:
- Warning in database log: "Could not increase number of max_open_files to more than xxxx".
- Warning in server log: "Cannot allocate more connections".
To check your existing settings, as the root user, enter the following commands:
ulimit -S -n ulimit -S -u
The output indicates the soft limits for the open file descriptor and soft limits for processes, respectively. If the values are lower than recommended, you need to modify them.
Where you configure the settings depends upon your Linux distribution:
- If your system has a
/etc/security/limits.d
directory, add the settings as the content of a new, appropriately named file under the directory. - If it does not have a
/etc/security/limits.d
directory, add the settings to/etc/security/limits.conf
. - If your system does not have a
/etc/security/limits.conf
file, it is possible to put theulimit
command in/etc/profile
. However, check the documentation for your Linux distribution for the recommendations specific for your system.
To configure the limits:
- Determine whether you have a
/etc/security/limits.d
directory on your system, and take one of the following steps depending on the result:- If you do not have a
/etc/security/limits.d
directory:As the root user, open the
limits.conf
file for editing:/etc/security/limits.conf
Set the open file descriptor limit by adding the following lines, replacing
<login_user>
with the operating system username under which the Controller runs:<login_user> hard nofile 65535 <login_user> soft nofile 65535 <login_user> hard nproc 8192 <login_user> soft nproc 8192
- If you do have a
/etc/security/limits.d
directory:As the root user, create a new file in the
limits.d
directory. Give the file a descriptive name, such as the following:/etc/security/limits.d/appdynamics.conf
In the file, add the configuration setting for the limits, replacing
<login_user>
with the operating system username under which the Controller runs:<login_user> hard nofile 65535 <login_user> soft nofile 65535 <login_user> hard nproc 8192 <login_user> soft nproc 8192
- If you do not have a
Enable the file descriptor and process limits as follows:
This step is not required for RHEL/CentOS version 5 and later. The below file has been combined into
/etc/pam.d/system-auth
, and already contains the required line.Open the following file for editing:
/etc/pam.d/common-session
Add the line:
session required pam_limits.so
- Save your changes to the file.
When you log in again as the user identified by login_user
, the limits will take effect.
Fonts Needed for the Reporting Service
The Reporting Service depends upon certain system libraries and resources that are usually included in standard Linux distributions. However, certain lightweight flavors of Linux may be lacking the requirements, primarily font libraries. The Reporting Service requires Fontconfig and FreeType installed as well as at least one sans-serif font. Errors in the reporting server log will indicate missing components, such as a missing libfontconfig.so
file.
The following table lists one operating systems and the commands to install the required libraries:
Operating System | Command |
---|---|
CentOS 6.1, 6.2; CentOS 6.3, 6.4, and 6.5, Fedora 14 |
|
CentOS 8.x, Redhat 8.x |
|
Ubuntu 8, 12, 14 |
|
Ubuntu 13 |
|
See Administer the Reporting Service for information on configuring the service.
GNU C Libraries
The Reporting Service requires GLIBCXX_3.4.9 or later and GLIBC_2.7 or later to run.
For more information and download instructions, see https://www.gnu.org/software/libc/.