Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

22
#AlfrescoDayMunich

Transcript of Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Page 1: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

#AlfrescoDayMunich

Page 2: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Alfresco One Admin Support ToolsThe Alfresco One Admin’s best friends

Page 3: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Advanced Support Engineer Nebil Kisa, Support, Alfresco

Page 4: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

● Overview● Alfresco One not easy to maintain

● One-Man-Show issue

● Large Enterprises problem to investigate issues quickly

● Comparison both worlds

● Dependencies● JMX required

● How it looks

● Browser

● Features● Live Graphs

● Active Sessions

● Hot Threads, Thread Dumper and Thread Sampler

● Log4J Settings and Extra

● Acknowledgments

● Source code on GitHub

Agenda

Page 5: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Overview• Alfresco One is not an easily maintained application. It requires

external tools to diagnose, monitor and analyse problems or fine tune configuration specific to the user case. For example, jstack, jVisualVM , Yourkit, etc.

Alfresco O

ne

Page 6: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Overview• In mid-size companies the system administration tasks are run by a

one-man band

One-M

an-Show

Page 7: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Overview• In larger enterprises problem investigation or configuration of a system

feature (e.g. LDAP sync) involves several people from different teams: Alfresco admin, sysAdmin, DBAdmin, Developer, network admin, DevOps, project Manager … this can comprise 4 or 5 people ...

Large Enterprises

Page 8: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Overview

One-man band:• Knows a little about everything• Alfresco is not his sole

responsibility• Not a specialist or has access to

specialist tools.• Alfresco support may need to

train the admin how to use a specialist tool

Com

parisonDevOps Team:• Not all available when required• Alfresco is not the only

responsibility• A simple task such as putting a

class in DEBUG may require an internal change process

• Internal security policies may inhibit diagnostic steps, such as accessing the DB or LDAP-AD

Page 9: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Dependencies• Traditionally control of a JVM is made through the JMX (Java

Management Extension) which gives access to the Management Beans (MBeans) and the monitoring parameters of the JVM.

• Note: JMX is only available in the Enterprise Edition of Alfresco

• Starting with version Alfresco 4.2.0 the JMX objects are exposed through the JavaScript API.

JMX

required

Page 10: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Dependencies

• Support Tools depends on the Admin Console provided from version 4.2 Enterprise onwards

• Sample URL: http://127.0.0.1:8080/alfresco/s/enterprise/admin/

How

itlooks

Page 11: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Dependencies

● This is the library used: http://smoothiecharts.org/

Brow

ser

Internet Explorer  Firefox  Safari 

(Desktop)  Chrome Opera (Desktop) 

Safari (Mobile) 

Opera (Mobile) 

Android Browser 

6.0 ‐ 8.0  2.0 ‐ 6.0 3.1 ‐ 3.2 4.0 ‐ 13.0 9.0 ‐ 11.0 3.2 10.0 2.0

9.0 7.0 4.0 14.0 11.1 4.0 11.0 2.1

… … … … … … … …

11.0 47.0 9.1.1 51.0 30 6.0 16 4.4

● Live graphs use the CANVAS browser object which is unavailable on some old browsers:

Page 12: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Features

Live Graphs

System Performance

• Live graphs of the Memory and CPU usage

• The graph uses a recursive call to refresh data every 2 seconds

• Lightweight webscript that will execute a JMX bean operation (minimal impact)

• Timescale is configurable by the user

Page 13: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Features

Active

Sessions

Checks your DB pool usage and allows you to check active usernames.

This actually traces sys activity on DB side and the current list of logged users

• You can click on one of the usernames to see more details

• You can invalidate the session ticket of one user to force a logoff

Page 14: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Features Hot Threads

• Based on the famous HotThread tool written in Java

• The script calculates the CPU during 5 seconds and displays the stack trace of the 5 busiest threads.

• You can generate reports, save them and send them to support

Page 15: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Features

Thread Dum

per

• To troubleshoot performance problems and deadlocks

• You can generate as many as you need and navigate through them to compare. Save all and study later (this may not work on IE8 due the functions used to save, copy and paste then manually).

• The output is formatted to resemble a Jstack

Page 16: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Features

Thread Sam

pler

• Allows you to see what each thread on the system is doing, every 5 seconds

• Threads are coloured depending on their status

• Clicking on one of them displays the stacktrace.

• Thread dumps can be saved in JSON format to send to a support ticket or loaded later using the same page to analyse them.

Page 17: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Features

Log4J Settings

• A live class can be set easily to debug, tailed in system log remotely with a nice UI and with only 2 clicks.

Page 18: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Features ExtraApart from that there are 4 little tools that could be helpful on some cases

• JMX Settings on the DB– To find which beans have values overridden from the DB and revert them to the values on the properties

files, use with care

• Scheduled Jobs– Lists and interprets the CRON jobs defined internally in Alfresco. Also shows the last execution time.

• Test Transformation– Transformation settings and test transformation

• Thread Profiler – Provides a live summary of each thread’s memory and CPU usage

Page 19: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Acknowledgments

Special Thanks

• Mike Farman for his support on this project and parts of the code.

• Marco Mancuso for his help on the development and adapting it to Maven standards.

• Rich McKnight for his code to access the persisted MBeans on the DB.

• Jamie Allison for his code review, polish and improvements.

• Will Abson for his useful advice.

• The Smoothie Charts creators: http:smoothiecharts.org/ the library from which was quite useful and fun to use

Page 20: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Acknowledgments Founder

Antonio SolerPremier Advanced Support Engineer EMEA

Page 21: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Source code on Github GitH

ub 1. Download v1.10 at: https://github.com/Alfresco/alfresco-support-tools

2. Stop Alfresco

3. Drop the Alfresco Support Tools AMP to folder ../<AlfrescoInstallHome>/amps

4. Use ../<AlfrescoInstallHome>/bin/apply_amps.sh/bat to inject the Alfresco Support Tools in the alfresco.war

5. Empty “../tomcat/tmp”, “../tomcat/work” and remove “../tomcat/webapps/alfresco”

6. Restart Alfresco, log in to the Admin console and you are ready to go

Page 22: Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer

Vielen Dank!

Folgen Sie uns auf

#AlfrescoDayMunich

Nebil Kisa – [email protected]