Use the system info collector tool
Download
To get a list of the possible parameters, run the command with no arguments.
> java -jar system-info-collector-*.jar
Usage: options
-r : root installation folder
-o : offline only
-u : user login (default is prompted if online mode)
-p : encrypted password with -e
-e : encrypt password
-a : server url (default is prompted if online mode)
-t : take thread dumps
-l : alternative logs folder location
-m : max days while filtering the logs (default 2)
-d : destination file (default current folder)
-k : keep temporary files
The root is the main folder that usually contains the quickstart.jar, for example: /data/home/cq5/5.5/author
In offline mode, it collects minimal information as for example your instance is not responding and so you cannot access the Apache Felix Webconsole, and so on.
In online mode, it collects the Apache Felix Webconsole full status as zip and the list of currently installed packages as often requested to qualify a ticket.
The -t option tries to take ten thread dumps by looking at the cq.pid found, so it runs the jstack command with that pid. It assumes that jstack is in the PATH of the system environment variable.
If you have many past logs that are not relevant, you can use the -m option to only keep from last n days.
Temporary files are usually removed once it is compacted as one .7z archive file, but you can keep the files with -k option.
At the end the purpose of this tool is to help to collect the information as usually requested on How to fully qualify a ticket.
Example usage
To use a different encryption key than default, set sicKey = "any_key_I_want_to_use" in your environment.
To encrypt the password for later -p command usage:
>java -jar system-info-collector-*.*.jar -e test
encrypted password:GYOvRHNYeFY=
To call the command with encrypted password:
java -Xmx1024m -jar system-info-collector-*.*.jar -u admin -p ljpJXeddyOk= -a http://localhost:4502 -r your_instance_root_path
Using:
{
rootFolder:your_instance_root_path
offline:false
threadDumps:false
logsLocation:null
serverURL:http://localhost:4502
serverLogin:admin
serverPassword:******
destination:null
logsMaxDays:2
}
Collecting common info
Copying your_instance_root_path/crx-quickstart/repository/repository/nodetypes/custom_nodetypes.xml to current_directory/./tmp1403782233428/xml_files
Copying your_instance_root_path/crx-quickstart/repository/repository/privileges/custom_privileges.xml to current_directory/./tmp1403782233428/xml_files
Copying your_instance_root_path/crx-quickstart/repository/repository.xml to current_directory/./tmp1403782233428/xml_files
Copying your_instance_root_path/crx-quickstart/repository/workspaces/crx.default/workspace.xml to current_directory/./tmp1403782233428/xml_files
CQ process id found = 27510
Using jps -v to find the process jvm parameters for process 27510
27510 cq-quickstart-5.6.1-standalone.jar start -c crx-quickstart -i launchpad -p 4502 -Xmx1024m -XX:MaxPermSize=256M -Djava.awt.headless=true -Dsling.run.modes=author
Collecting online info
Compressing collected file into a single archive file
Removing temporary files
Collected information completed, attach it to your ticket or send it to our ftp
What does it collect?
- list of files (with last modification timestamp, permissions and size that are under the root to check if abnormal growth or permission can explain an issue)
- .xml configurations files (repository.xml, workspace.xml, log4j.xml, and so on)
- bundles list (to have an idea of the installed bundles versions and location)
- list of jars (to quickly check what version of CRX / Jackrabbit is running)
- launchpad config files (to check if some specific configuration that used which could explain any issues)
- quickstart config / properties files (to check the version of CQ and other parameters from Apache Sling)
- logs file (filtered eventually with -m for not including older logs to reduce the size of the collected data)
- Optional: Ten thread dumps (it works depending on the available jstack command and jvm / os used)
Known issues
On Windows operating system it may not run as smooth as on Mac/Linux, especially around the cq.pid detection and the use of JDK tooling to get information on the JVM parameters and to take thread dumps.
It is especially true if the process is running as "Local System" user. So you may still have to perform some manual task to add the missing information to the generated 7z file or in the ticket directly.
CQ version capability
- CQ 5.x, 6.x