This documentation is for an older version of the software. If you are using the current version of Cumulus Linux, this content may not be up to date. The current version of the documentation is available here. If you are redirected to the main page of the user guide, then this page may have been renamed; please search for it there.

Understanding and Decoding the cl-support Output File

The cl-support command generates a tar archive of useful information for troubleshooting that can be auto-generated or manually created. To manually create it, run the cl-support command. The cl-support file is automatically generated when:

  • There is a core file dump of any application (not specific to Cumulus RMP, but something all Linux distributions support)

  • Memory usage surpasses 90% of the total system memory (memory usage > 90% for 1 cycle)

  • The loadavg over 15 minutes has on average greater than 2 (loadavg (15min) > 2)

All of these conditions are triggered by monit , located at ******/etc/monit/monitrc.

The Cumulus Networks support team may request you submit the output from cl-support to help with the investigation of issues you might experience with Cumulus RMP.

cumulus@switch:~$ sudo cl-support -h
Usage: cl-support [-h] [reason]...
[reason]: Optional reason to give for invoking cl-support.
         Saved into tarball's reason.txt file.
-h: Print this usage statement

Example output:

cumulus@switch:~$ ls /var/support
(Click to expand)

Understanding the File Naming Scheme

The cl-support command generates a file under /var/support with the following naming scheme. The following example describes the file called cl_support__switch_20141204_203833.tar.xz.

This is always prepended to the tar.gz output.This is the hostname of the switch where cl-support was executed.The date in year, month, day; so 20141204 is December, 4th, 2014.The time in hours, minutes, seconds; so 203833 is 20, 38, 33 (20:38:33) or the equivalent to 8:38:33 PM.

Decoding the Output

Decoding a cl_support file is a simple process performed using the tar ******command. The following example illustrates extracting the cl_support file:

tar -xf cl_support__switch_20141204_203834.tar.xz

The -xf options are defined here:

-xExtracts to disk from the archive.
-fReads the archive from the specified file.
cumulus@switch:~$ ls -l cl_support__switch_20141204_203834/

-rwxr-xr-x  1 root root 7724 Jul 29 14:00 cl-support
-rw-r--r--  1 root root   52 Jul 29 14:00 cmdline.args
drwxr-xr-x  2 root root 4096 Jul 29 14:00 core
drwxr-xr-x 64 root root 4096 Jul 29 13:51 etc
drwxr-xr-x  4 root root 4096 Jul 29 14:00 proc
drwxr-xr-x  2 root root 4096 Jul 29 14:01 support
drwxr-xr-x  3 root root 4096 Jul 29 14:00 sys
drwxr-xr-x  3 root root 4096 Aug  8 15:22 var

The cl_support file, when untarred, contains a reason.txt file. This file indicates what reason triggered the event. When contacting Cumulus Networks technical support, please attach the cl-support file if possible.

The directory contains the following elements:

cl-supportThis is a copy of the cl-support script that generated the cl_support file. It is copied so Cumulus Networks knows exactly which files were included and which weren’t. This helps to fix future cl-support requests in the future.
coreContains the core files generated from the Cumulus RMP HAL (hardware abstraction layer) process, switchd.
etcetc is the core system configuration directory. cl-support replicates the switch’s /etc directory. /etc contains all the general Linux configuration files, as well as configurations for the system’s network interfaces, quagga, monit, and other packages.
var/log/var is the “variable” subdirectory, where programs record runtime information. System logging, user tracking, caches and other files that system programs create and monitor go into /var. cl-support includes only the log subdirectory of the var system-level directory and replicates the switch’s /var/log directory. Most Cumulus RMP log files are located in this directory. Notable log files include switchd.log and daemon.log log files, and syslog. For more information, read this knowledge base article.
procproc (short for processes) provides system statistics through a directory-and-file interface. In Linux, /proc contains runtime system information (like system memory, devices mounted, and hardware configuration). cl-support simply replicates the switch’s /proc directory to determine the current state of the system.
supportsupport is not a replica of the Linux file system like the other folders listed above. Instead, it is a set of files containing the output of commands from the command line. Examples include the output of ps -aux , netstat -i , and so forth - even the routing tables are included.

Here is more information on the file structure: