cbcollect_info

cbcollect_info

The cbcollect_info tool provides detailed statistics for a specific node.

Syntax

The basic syntax is:

cbcollect_info [options] [output-file]

where output-file is the name of the .zip file containing the diagnostic information.

Description

The cbcollect_info command gathers statistics from an individual node in the cluster.

To collect diagnostic information for an entire cluster, run the command for every node that exists in that cluster. If you are experiencing problems with multiple nodes in a cluster, you may need to run it on all nodes in a cluster.

A root account is required to run this command and collect all the server information. There are internal server files and directories that this tool accesses that require root privileges.

To use this command, remotely connect to the machine which contains the Couchbase Server then issue the command with appropriate options. This command is typically run under the direction of technical support at Couchbase and generates a large .zip file. This archive contains files which contain performance statistics and server logs.

Attention: cbcollect_info is one of the most important diagnostic tools. Run cbcollect_info on all nodes in the cluster, and upload all of the resulting files to Couchbase technical support .

This tool is at the following locations:

Table 1. Tool locations
Operating System Location
Linux /opt/couchbase/bin/cbcollect_info
Windows C:\Program Files\Couchbase\Server\bin\cbcollect_info
Mac OS X /Applications/Couchbase Server.app/Contents/Resources/couchbase-core/bin/cbcollect_info

The tool creates the following log files in the output archive:

Table 2. Output files
File Log Contents
couchbase.log Contains system-level information, primarily the result of shell commands. Generated at collection-time.
ddocs.log Contains the design documents for each bucket in json format, taken from the view file on disk.
diag.log A diagnostic summary of the cluster manager, obtained by downloading /diag output from the node's running service.
ini.log A dump of all ini configuration files.
memcached.log Contains information relating to the core memcached component, including DCP stream requests and slow operations.
ns_server.babysitter.log Troubleshooting log for the babysitter process which is responsible for spawning all Couchbase Server processes and respawning them where necessary.
ns_server.couchdb.log Troubleshooting log for the couchdb subsystem which underlies map-reduce and spatial views
ns_server.debug.log Debug-level troubleshooting for the cluster management component.
ns_server.error.log Error-level troubleshooting log for the cluster management component.
ns_server.fts.log Troubleshooting logs for the full-text search service.
ns_server.goxdcr.log Troubleshooting log for the cross datacenter replication (XDCR) component used in Couchbase Server versions after 4.0.
ns_server.http_access.log The admin access log records server requests (including administrator logins) to the REST API or Couchbase Server web console. It is output in common log format and contains several important fields such as remote client IP, timestamp, GET/POST request and resource requested, HTTP status code, and so on.
ns_server.http_access_internal.log The admin access log records internal server requests (including administrator logins) to the REST API or Couchbase Server web console. It is output in common log format and contains several important fields such as remote client IP, timestamp, GET/POST request and resource requested, HTTP status code, and so on.
ns_server.indexer.log Troubleshooting log for the indexing and storage subsystem.
ns_server.info.log Info-level troubleshooting log for the cluster management component.
ns_server.mapreduce_errors.log JavaScript and other view-processing errors are reported in this file.
ns_server.metakv.log Troubleshooting log for the metakv store, a cluster-wide metadata store.
ns_server.ns_couchdb.log Contains information related to starting up the CouchDB subsystem.
ns_server.projector.log Troubleshooting log for the projector process which is responsible for sending appropriate mutations from Data nodes to Index nodes.
ns_server.reports.log Contains progress and crash reports for the Erlang processes. Due to the nature of Erlang, processes crash and restart upon an error.
ns_server.ssl_proxy.log Troubleshooting log for the ssl proxy spawned by the cluster manager.
ns_server.stats.log Contains periodic statistic dumps from the cluster management component.
ns_server.views.log Troubleshooting log for the view engine, predominantly focussing on the changing of partition states.
ns_server.xdcr.log Troubleshooting log for the cross datacenter replication (XDCR) component used in Couchbase Server versions prior to 4.0.
ns_server.xdcr_errors.log Error-level troubleshooting log for the cross datacenter replication (XDCR) component used in Couchbase Server versions prior to 4.0.
ns_server.xcdr_trace.log Trace-level troubleshooting log for the cross datacenter replication (XDCR) component used in Couchbase Server versions prior to 4.0. Unless trace-level logging is explicitly turned on this log is empty.
projector_pprof.log Goroutine dump captured for the projector process. A goroutine dump is the equivalent of a full thread dump in other languages and can give valuable insight into what a process is doing at that time.
stats.log Contains output from various cbstats commands. Generated at collection-time.
syslog.tar.gz Archive of various system-level logs.

Options

The following are the command options:

Table 3. cbcollect_info options
Parameter Description
-h, --help Shows help information.
-r ROOT Root directory. Default to /opt/couchbase/bin/..
-v Increases verbosity level. If specified, debugging information for cbcollect_info is also displayed on your console.
-p Gathers only product-related information.
-d Dumps a list of commands that cbcollect_info needs.
--bypass-sensitive-data Skips collecting breakpad crash dumps if set to true.
--initargs-INITARG The server initargs path.
--single-node-diag Collects on a per node basis, diagnostics on just this node. The default is all reachable nodes.
--upload-host=UPLOAD_HOST Fully-qualified domain name of the host you want the logs uploaded to. The protocol prefix of the domain name, https://, is optional. It is the default-only supported protocol.
--customer=UPLOAD_CUSTOMER Customer name. This value is a string with a maximum length of 50 characters that contains only the following characters: [A-Za-z0-9_.-]. If any other characters are included in the string, the request is rejected.
--ticket=UPLOAD_TICKET Couchbase support ticket number. This value is a string with a maximum length of 7 character that contains only digits 0-9. The ticket number is optional and is used only in conjunction with the --upload option.

Sharing files with Couchbase support

Run the command below, replacing FILE-NAME and COMPANY-NAME, to upload a file to our cloud storage on Amazon AWS. Make sure to include the last slash ("/") character after the company name.
curl --upload-file 
	<FILE-NAME> https://s3.amazonaws.com/customers.couchbase.com/<COMPANY-NAME>/

Examples

To create a diagnostics .zip file, log onto the node and run the cbcollect_info tool.

On Linux, run as root or use sudo:
sudo /opt/couchbase/bin/cbcollect_info <node_name>.zip
On Windows, run as Administrator:
C:\Program Files\Couchbase\Server\bin\cbcollect_info <node_name>.zip

Response

The following example response shows partial output when running the cbcollect_info command.

uname (uname -a) - OK
time and TZ (date; date -u) - OK
raw /etc/sysconfig/clock (cat /etc/sysconfig/clock) - OK
raw /etc/timezone (cat /etc/timezone) - Exit code 1
System Hardware (lshw -json || lshw) - Exit code 127

...

adding: /tmp/tmpMYbSyD/couchbase.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/couchbase.log
adding: /tmp/tmpMYbSyD/ns_server.xdcr.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.xdcr.log
adding: /tmp/tmpMYbSyD/ns_server.couchdb.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.couchdb.log
adding: /tmp/tmpMYbSyD/stats.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/stats.log
adding: /tmp/tmpMYbSyD/ini.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ini.log
adding: /tmp/tmpMYbSyD/ns_server.error.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.error.log
adding: /tmp/tmpMYbSyD/ns_server.ssl_proxy.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.ssl_proxy.log
adding: /tmp/tmpMYbSyD/ns_server.views.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.views.log
adding: /tmp/tmpMYbSyD/ns_server.info.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.info.log
adding: /tmp/tmpMYbSyD/ns_server.xdcr_errors.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.xdcr_errors.log
adding: /tmp/tmpMYbSyD/ns_server.mapreduce_errors.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.mapreduce_errors.log
adding: /tmp/tmpMYbSyD/diag.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/diag.log
adding: /tmp/tmpMYbSyD/ns_server.http_access.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.http_access.log
adding: /tmp/tmpMYbSyD/syslog.tar.gz -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/syslog.tar.gz
adding: /tmp/tmpMYbSyD/ns_server.debug.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.debug.log
adding: /tmp/tmpMYbSyD/ddocs.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ddocs.log
adding: /tmp/tmpMYbSyD/ns_server.reports.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.reports.log
adding: /tmp/tmpMYbSyD/memcached.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/memcached.log
adding: /tmp/tmpMYbSyD/ns_server.babysitter.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.babysitter.log
adding: /tmp/tmpMYbSyD/ns_server.stats.log -> cbcollect_info_ns_1@10.5.2.117_20141209-024045/ns_server.stats.log