Learn how to perform the essential administration tasks for your on-premise AppDynamics controller. Administrators, System Admins and Admin Support can explore the essentials, including group and password management, Glassfish server JVM settings configuration, implementing backup strategies, importing/exporting settings between controllers, log maintenance and more.
3. List and describe Controller installation and
sizing requirements and recommendations
List and describe tasks performed in the
AppDynamics Controller via RDP and
Command Line
List and describe tasks performed in the
GlassFish Admin Portal
List and describe tasks performed in the
AppDynamics Controller Root Admin Portal
and User Interface (UI)
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 3
View demos and perform labs to gain first-
hand experience of howAppDynamics can be
used to:
Lab 1: Change Controller JVM options
Lab 2: Backup the Controller data
Lab 3: Change the location of the Controller
data directory
Lab 4: Change the location of log files and
change log level settings
Lab 5: Login to the Controller admin portal
and backup the Controller configuration
Lab 6: Create user groups and permissions
Lab 7: Export and import the Controller
configuration
Course Labs
Objectives
6. Installation and Sizing Considerations
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 6
Validate hardware requirements
Check sizing requirements
• Metrics per minute
• Number of nodes in the installation
Install the Controller on a dedicated machine
for adequate stability and performance
(Strongly recommended by AppDynamics)
Pre-installation
Usually initial sizing is fine but
remember applications will be
added over time!
Monitoring asynchronous
threads, End User Monitoring,
etc., increase the number
of metrics per minute to
the Controller
Work with the AppDynamics
architecture team to ensure
an optimal setup and
configuration
7. Installation and Sizing Considerations
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 7
Sizing – Choose a Controller Performance Profile During Installation
Controller
Performance Profile
Supported OS
platforms
Supported
on VMs?
CPU RAM
Disk
storage
Disk I/O
Small
Linux (32 & 64 bit)
Windows (32 & 64 bit)
Yes
4 CPU Cores 1.5
GHz minimum
4 GB 200 GB
Write: 50 MB/sec
Read: 50 MB/sec
Random read: 1.5 MB/sec
Medium
Linux (64 bit)
Windows (64 bit)
Yes
8 CPU Cores 2.5
GHz minimum
16 GB 2 TB
Write: 60 MB/sec
Read: 60 MB/sec
Random read: 1.6 MB/sec
Large
Linux (64 bit)
Windows (64 bit)
No
24 CPU Cores 2.5
GHz minimum
32 GB 4 TB
Write: 100 MB/sec
Read: 100 MB/sec
Random read: 3 MB/sec
Extra Large Linux (64 bit) No
24 CPU Cores 2.5
GHz minimum
64 GB 8 TB
Write: 125 MB/sec
Read: 125 MB/sec
Random read: 5 MB/sec
Demo
Linux (32 & 64 bit)
Windows (32 & 64 bit)
No
2 CPU Cores 1.5
GHz minimum
3 GB 50 GB
Write: 50 MB/sec
Read: 50 MB/sec
Random read: 1.5 MB/sec
8. Installation and Sizing Considerations
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 8
Scalability
10 or 1000’s ofagents
per controller
Agents aggregate metrics,
pace collection and throughput
Agent limits number
of Call Graphs
Sizing
Performance profiles
(previous slide)
Supportfor different
deploymentscenarios
Focus on footprint(Database
Size,AppServer Heap)
Will overload ifundersized
Agent Footprint
10 MB steady state
Up to 100 MB
for short periods of time
Lots of Call Graphs
SQL strings prominent
9. Installation and Sizing Considerations
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 9
For an Enterprise Environment,
AppDynamics can be configured
for High Availability (HA)
AppDynamics provides
an HA Toolkitto help you set
up and administer a high
availability deployment
HighAvailability (HA)
10. Installation & Sizing Considerations
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 10
Events Service Cluster
An Events Service Cluster is used with
the Analytics Agent, DB Agent and EUM Server
The additional data will increase
your sizing requirement
The defaultports used by the Events Service are:
• Events Service API Store Port: 9080
• Events Service API Store Admin Port: 9081
Events Service configuration file:
conf/events-service-api-store.properties
11. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 11
Topic 2 AppDynamics Controller RDP & Command Line
A.Locating and Changing JVM Controller Options
B. Resetting the Root Password
C.Backing up the Controller
D.Changing the Controller Data Directory Location
E. Performing Controller Log Administration
AppDynamicsAdministration
Agenda
12. Locating and Changing JVM Controller Options
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 12
Locating the Controller Options
Many importantJVM Controller
setting options,like heap size
settings, are stored in the file:
appserver/glassfish/
domains/domain1/config/
domain.xml
13. Locating and Changing JVM Controller Options
Changing the Controller Options
Manually
Change manually by editing the
domain.xml file
Script Benefits
Changes are stored in the Controller
database and can be more easily backed up
and transferred during an upgrade
The script implements some validation
and sanity checks that help preventerrors –
like making the maximum heap size smaller
than the starting heap size
Using a Script
Change using the modifyJvmOptions.sh
(or .bat on windows) scriptin the Controller’s
bin directory
14. Locating and Changing JVM Controller Options
Syntax for the modifyJvmOptions Script
The syntax for using the script is
modifyJvmOptions.sh [add|delete]
option=value[@option=value]*
A second useful form, which
will list all current JVM options
is modifyJvmOptions.sh list
Syntax Guidelines
If you wantto change an existing option,
delete it first, then re-add it
For changing multiple options atonce,
be careful to use the @ character as
the only separator between the options
Some validation logic is provided by the script
On Microsoft Windows, the string after
the add/delete option needs to be in double quotes
16. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 16
Topic 2 AppDynamics Controller RDP & Command Line
A. Locating and Changing JVM Controller Options
B.Resetting the Root Password
C.Backing up the Controller
D.Changing the Controller Data Directory Location
E. Performing Controller Log Administration
AppDynamicsAdministration
Agenda
17. Resetting the Root Password
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 17
From the Controller bin directory: ./controller.sh login-db
Once logged into the Controller database as root, you can
use the following to overwrite the root password for the Controller
with the ‘user-specific-value’:
update user u set encrypted_password=sha1(‘user-
specific-value’) where u.name = ‘root’ and u.account_id
= (select id from account where name = ’system’);
18. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 18
Topic 2 AppDynamics Controller RDP & Command Line
A. Locating and Changing JVM Controller Options
B. Resetting the Root Password
C.Backing up the Controller
D.Changing the Controller Data Directory Location
E. Performing Controller Log Administration
AppDynamicsAdministration
Agenda
19. Backing Up the Controller
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 19
Level 2
Short-running database
backup task
Back up the Controller
database tables that include
application configuration,but
not the large tables that
include runtime accumulated
data like metrics and events
Level 1
Easiest backup task – but
may require you to stop
the Controller
Back up the Controller
configuration files like
db.cnf and domain.xml
Level 3
Long-running database
backup task
Back up the large database
tables that are not backed
up in a level 2 backup
Most Efficient Strategy: Three Levels of Controller Backup
20. Backing Up the Controller
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 20
Level 1 Backups
What it does
This type of backup attempts to protect Controller
files like db.cnf and domain.xml files
How to accomplish this backup
The easiestway is to back up the entire
Controller home directory EXCEPT
the data directory to a safe location
** This may require you to stop the Controller**
To accomplish this backup withoutstopping
the Controller,create a script to copy just the
necessary configuration files to a safe location
What it does NOT do
It does not back up the Controller database
21. Backing Up the Controller
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 21
Level 2 Backups
What it does
This type of backup attempts to protect the relatively
small tables in the Controller database thatcontain
managed application settings,like business
transaction naming rules,information points,etc.
How to accomplish this backup
The easiestway is to use the mysql-dump
tool from the Controller’s db/bin directory
To exclude the large tables,you need to pass
the –-ignore-table=<table-name> option
for each of the large tables
What it does NOT do
It does not back up the (larger) tables that contain
accumulated metric, transaction snapshot,and event
data for the managed applications
22. Backing Up the Controller
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 22
Level 3 Backups
What it does
This type of backup attempts to protect the entire
set of database tables. It is a much longer task
than a level 2 backup,and it attempts to move tables
that are being changed while the backup is in progress.
How to accomplish this backup
Challenge How do you move a changing database table?
Option 1 Stop the Controller before performing the backup
Issue This is often not feasible due to the lengthy time
needed to perform the level 3 backup
Option 2 Use a third-party tool like Percona XtraBackup
(recommended – see AppDynamics documentation to learn more)
23. Level 1 & Level 2 Backups
These backups are short. They can and should be performed
as often as possible – generally nightly.
Level 3
These backups are
often too time-consuming
to be performed each
nightso weekly is best.
Backing Up the Controller
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 23
Backup Strategy and Frequency
24. Backing Up the Controller
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 24
Sample SQL Server Maintenance Plan
1. Backup – All Tables,Full Backup (daily)
2. Backup – Selected Tables,Full Backup (hourly)
3. Backup – Transaction Logs (every 15 minutes)
4. Check database integrity (daily)
5. Reorganize index (daily)
6. Update statistics (weekly)
7. Shrink database (weekly)
8. Rebuild index (weekly)
9. Maintenance cleanup (daily)
Level 2 & 3 backups are part
of a proper maintenance plan
26. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 26
Topic 2 AppDynamics Controller RDP & Command Line
A. Locating and Changing JVM Controller Options
B. Resetting the Root Password
C.Backing up the Controller
D.Changing the Controller Data Directory Location
E. Performing Controller Log Administration
AppDynamicsAdministration
Agenda
27. Changing the Controller Data Directory Location
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 27
Steps to change the location
1. Stop the Controller database and application server
2. Modify relevantproperties in the Controller’s
db/db.cnf file to pointto the new location of
the data directory datadir/tmpdir/log/
slow_query_log_file
3. Physically move the entire data directory content to
the new location
4. Restart the Controller and check the logs for errors
Motivations for Changing
the Data Directory Location
(where the MySQL database data lives)
Size – running out of disk space
Speed – I/O performance cannotkeep up
29. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 29
Lab 1
Change Controller JVM Options
Lab 2
Backup Controller Data
Lab 3
Change the Location of the Controller Data Directory
30. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 30
Topic 2 AppDynamics Controller RDP & Command Line
A. Locating and Changing JVM Controller Options
B. Resetting the Root Password
C.Backing up the Controller
D.Changing the Controller Data Directory Location
E. Performing Controller Log Administration
AppDynamicsAdministration
Agenda
31. Performing Controller Log Administration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 31
Basic Tasks Performed in the AppDynamics Controller
Identify the main
Controller logs
Rotate the
logs
Change log
locations
Log locations are changed
also in GlassFish (next section)
32. Performing Controller Log Administration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
By default, the most important Controller logs
are all located in the <controller-home>/logs
directory
server.log is the main log of the Controller activity
database.log logs database activity
startAS.log logs GlassFish AppServer
startup activity
In addition,mySQL has logs
in the <controller-home>/db/data directory
Identify the main
Controller logs
33. Performing Controller Log Administration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
The server.log file is automatically rotated
by the GlassFish Application Server
Other logs need to be managed manually by
the administrator
• On Unix-like operating systems,the mysql-log-
rotate.sh script that comes with MySQL can
be used to rotate the logs
• On Windows, a similar script must be written
by the administrator
Rotate the
logs
34. Performing Controller Log Administration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
Each of the Controller logs has its own
configuration point
server.log — Configured in GlassFish Admin portal
(next section)
database.log — Configured in db.cnf
in the property log-error
startAS.log — Configured in <controller-
home>/bin/controller.sh/
edit the line — nohup ./asadmin start-domain
domain1> <new log location>
Change log
locations
35. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 35
Topic 3 GlassFish (RDP, GlassFish GUI)
A.Performing Controller Log Administration
B. Resetting the GlassFish Password
AppDynamicsAdministration
Agenda
36. GlassFish
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 36
The GlassFish Admin Portal
For certain administrative tasks, you’ll need to access
the standard GlassFish Application Server Admin
Portal. By default,this is located at port 4848,but it
can be changed during the Controller installation.
What is GlassFish?
• The AppDynamics Controller is written in JAVA with
GlassFish as its base
• GlassFish is an open-source application server project
started by Sun Microsystems
• It uses a derivative ofApache Tomcat as the servlet
container for serving Web content
37. Performing Controller Log Administration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 37
Change Log Locations – GlassFish Configurations
1
2
1. To change the log location,
click on Configurations
2. Click on server-config
3. Select Logger Settings
4. Then change the
Log File path
server.log — Configured in
GlassFish Admin portal (port 4848)
3
4
39. Performing Controller Log Administration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 39
Change Log Levels
1
2
1. To change the log location,
click on Configurations
2. Click on server-config
3. Select Logger Settings
4. Then click the Log Levels tab
3
4
Logging level for the Controller is set
by default at INFO
It can be changed (for less verbose
output) for each Controller component:
Agents, Business Transactions (BTs),
Events, Incidents,Information Points,
Metrics, Orchestration, Rules, Snapshots
41. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 41
Topic 3 GlassFish (RDP, GlassFish GUI)
A. Performing Controller Log Administration
B.Resetting the GlassFish Password
AppDynamicsAdministration
Agenda
42. Resetting the GlassFish Password
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 42
The GlassFish password can
be changed by accessing the
Common Tasks screen
The user will be admin and the
password will be in the file:
<controller-
home>/.passwordfile
44. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 44
Topic 4 AppDynamics Controller Root and UI
A.Changing and Retrieving the Controller Settings (Root)
B. Managing Users and Permissions (UI)
C.Exporting and Importing the Configuration (UI)
AppDynamicsAdministration
Agenda
45. Changing and Retrieving the Controller Settings
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 45
The Controller Admin Portal (Root Login)
is a Separate User Interface for Administration
http://Your-IP-
Address/controller/admin.jsp
When you use this admin
portal, you log in as the
Controller rootuser
You can perform tasks such
as changing Controller settings
46. Changing & Retrieving the Controller Settings
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 46
Change Controller Settings
Once logged in,select the
Controller Settings link to
access/editController settings
46
Work with the AppDynamics
team to ensure your settings are
optimal for your configuration
47. Changing and Retrieving the Controller Settings
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 47
Retrieve Controller Settings Information via the RESTAPI
Once logged in to the Controller,
add rest/configuration after
/controller in the URL to retrieve
the configuration settings via
REST in XML format
47
48. Instructor Demo 6 & 7
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 48
Login to the Controller Root
Admin Portal
Backup the Controller
Configuration
49. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 49
Topic 4 AppDynamics Controller Root and UI
A. Changing and Retrieving the Controller Settings (Root)
B.Managing Users and Permissions (UI)
C.Exporting and Importing the Configuration (UI)
AppDynamicsAdministration
Agenda
50. Working in the Controller UI Administration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 50
http://Your-IP-
Address/controller
The Controller UIAdministration
includes these importanttasks:
• Managing Users
and Permissions
• Exporting and Importing
the Configuration
51. Managing Users and Permissions
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 51
1. Access the dropdown menu
under the gear icon in the
upper-rightcorner and click on
Administration
2. The Users, Groups and Roles
appear under the
Administration heading
1
2
52. Managing Users and Permissions
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 52
Roles can contain any number
of granular permissions for the
Controller,and they can be
assigned to any number of
groups or individual users.
Users, Roles and Groups
53. Managing Users & Permissions
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 53
Account Owner /
Administrator
Manages security
settings (user group,
roles) and can
view/modify
applications and
dashboards
Administrator
Views/modifies
components
that change state:
applications, Business
Transactions,
dashboards, etc
Views/edits all
applications and
custom dashboards
Custom
Dashboard Viewer
Only views custom
dashboards
Read Only
User
Can view but not edit
all applications
Workflow
Executor
Executes
workflows
AppDynamics Predefined Roles
Recommended to create new
roles and use these pre-defined
roles for ideas
55. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 55
Topic 4 AppDynamics Controller Root and UI
A. Changing and Retrieving the Controller Settings (Root)
B. Managing Users and Permissions (UI)
C.Exporting and Importing the Configuration (UI)
AppDynamicsAdministration
Agenda
56. Exporting & Importing Supported Levels Of Configuration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 56
Partial application
via the REST API
export / import / update
individual pieces ofthe
application configuration
Full application
via the Controller UI
export / import configuration
Partial application
via the Controller UI
export / import JMX
configuration,custom
dashboards configuration
Copying the application configuration settings from one
Controller application (such as MovieZtream) to another
57. Exporting the Configuration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 57
Full Configuration – Export via the Controller UI
1. To export, select Actions
below time period
2. Click on Export in drop-down
and confirm to export application
configuration as XML, including
• Snapshot collection and call
graph settings
• SLA and error configuration
• BT Thresholds and Baselines
• HTTP and SQL Data Gatherer
settings
• Tiers and Custom Entry Points
• Information Points
It doesn’t export data such as Events,
Health Rule Violations, Metrics
1
2
58. Importing the Configuration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 58
Full Configuration – Import via the Controller UI
1. To import, from the
Applications top navigation
bar, use click on Actions
2. Select Import
1
2
Application musthave a
unique name on the Controller
If importing into a different
Controller,both source and
destination Controllers must
be the same major version
59. Exporting the Configuration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 59
Partial Configuration – Export via the RESTAPI
Auto-detected Entry Point
Configurations
This can be done for all entry points,
or for a single type of entry point.
http://hostname:port/controller/
transactiondetection/
<application-name>/auto
produces an auto…. xml file
A file with all entry points:
http://hostname:port/controller/
transactiondetection/
<application-name>/auto
produces a single type i.e. servlet
for MovieZtream app to an
auto…...xml file
Custom Match Rules
and Exclude Rules
http://hostname:port/controller/
transactiondetection/
movieztream/pojo/custom
produces a custom…..xml file
containing all custom match rules
within the MovieZtream application
Add another pathelement with the name
of a specific rule to access just that rule
http://hostname:port/controller/
transactiondetection/
movieztream/exclude/servlet/
This produces an exclude.….xml file
containing all servlet exclude rules for
MovieZtream – again, single rules
can be accessed by addingan extra
path element with the rule name
Health Rule
Violation Data
To export all health violations on
MovieZtream in the last hour:
http://hostname:port/
controller/rest/applications/
movieztream/problems/policy-
violations?time-range-
type=BEFORE_NOW&duration-
in-mins=60&output=XML
• Other time range types are available
that will list violations between time
A and time B, etc.
• Output is set to XML by default,
but also can be set to JSON
60. Importing the Configuration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 60
Partial Configuration – Import via the RESTAPI
Example
To overwrite an existing configuration for a POJO
custom match rule named “MovieMatch” in
MovieZtream use:
http://hostname:8090/controller/
transactiondetection/movieztream/
pojo/custom/MovieMatch?overwrite=true
• Must use HTTP POST method,
so need a tool like curl or a browser plugin
like PostMan or Simple REST Client
• Must include any necessary authentication
and the necessary POST data for the configuration
in your request
• To overwrite an existing configuration with your import,
you must add the &overwrite=true
HTTP parameter to the URL
61. Exporting & Importing the Configuration
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 61
Partial application via the Controller UI – JMX Configuration Export / Import
1. To export or import, first
go to the Applications top
navigation bar
2. Click on MovieZtream title
3. Click Configuration
from sidebar
4. Choose the Instrumentation
option
5. From the tab bar, select JMX
6. Under JMX Metric
Configurations,choose
the import icon or select a
configuration to export
63. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 63
Lab 5
Login to the Controller Root Admin Portal
and Backup the Controller Configuration
Lab 6
Create User Groups and Permissions
Lab 7
Export and Import the Controller Configuration
65. University
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 65
Multiple Track Courses and Certifications @ appdynamics.com/university
Sign Up for Multiple Tracks and Course Dates
for Live Training Sessions
Watch quick task-based tutorials
Take Self-Paced courses to learn at your own pace
Access subscriber only contents
66. Community
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 66
Connect With Other Users And Experts @ community.appdynamics.com
Exchange information with other
Power Users and AppDynamics experts
Get AppDynamics-supported
and author-supported extensions
67. Tech Webinars
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 67
Attend for free
Every other Wednesday at10:00am PT
45 Min presentation followed by a Q&A session
View the Tech Webinars Schedule to register for
upcoming webinars and watch pastpresentations.
68. Join The FanClub
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 68
We love our customers and partners. Let us thank you for your ongoing support.
See new features and roadmaps
Try new products and beta programs
Access custom extensions and training
MeetAppDynamics Executives
Get premium swag and invitations to events
Sign up and claim your benefits
by clicking here to submit the request!
69. Thank You
Please fill out the survey:
https://www.surveymonkey.com/r/AppDynamicsUniversity
Your feedback is very important to us. We use it to help us improve our content
and incorporate new features to keep our courses relevantfor our audience.
William Dimaculangan
william.dimaculangan@appdynamics.com