SOS(COLLECT) | SOS(COLLECT) |
sos collect - Collect sosreports from multiple (cluster) nodes
sos collect
[-a|--all-options]
[-b|--become]
[--batch]
[-c CLUSTER_OPTIONS]
[--chroot CHROOT]
[--case-id CASE_ID]
[--cluster-type CLUSTER_TYPE]
[--container-runtime RUNTIME]
[-e ENABLE_PLUGINS]
[--encrypt-key KEY]
[--encrypt-pass PASS]
[--group GROUP]
[-j|--jobs JOBS]
[--save-group GROUP]
[--nopasswd-sudo]
[-k PLUGIN_OPTION]
[--label LABEL]
[--log-size SIZE]
[-n SKIP_PLUGINS]
[--nodes NODES]
[--no-pkg-check]
[--no-local]
[--primary PRIMARY]
[--image IMAGE]
[--force-pull-image TOGGLE, --pull TOGGLE]
[--registry-user USER]
[--registry-password PASSWORD]
[--registry-authfile FILE]
[-o ONLY_PLUGINS]
[-p SSH_PORT]
[--password]
[--password-per-node]
[--preset PRESET]
[--skip-commands COMMANDS]
[--skip-files FILES]
[-s|--sysroot SYSROOT]
[--ssh-user SSH_USER]
[-t|--threads THREADS]
[--timeout TIMEOUT]
[--transport TRANSPORT]
[--tmp-dir TMP_DIR]
[-v|--verbose]
[--verify]
[-z|--compression-type COMPRESSION_TYPE]
collect is an sos subcommand to collect sosreports from multiple nodes and package them in a single useful tar archive.
sos collect can be run either on a workstation that has SSH key authentication setup for the nodes in a given cluster, or from a "primary" node in a cluster that has SSH keys configured for the other nodes.
Some sosreport options are supported by sos-collect and are passed directly to the sosreport command run on each node.
This does NOT enable all sos collect options.
Default: no
For example, for the ovirt plugin if you wanted to restrict node enumeration to a specific cluster you would use '-c ovirt.cluster=example_cluster'.
Available cluster options can be listed by running 'sos collect -l'.
Setting --cluster-type skips this step and forcibly sets a particular profile.
Using a value of none or jbon (just a bunch of nodes) will effectively disable all cluster-specific checks, and cause sos collect to only use the nodes specified by the --nodes option. Note that in this scenario, regex string(s) for node names will be ignored.
Example: sos collect --cluster-type=kubernetes will force the kubernetes profile to be run, and thus set sosreport options and attempt to determine a list of nodes using that profile.
This option supports providing a comma-delimited list of plugins.
Note that the user running sos collect must match the user owning the keyring from which keys will be obtained. In particular this means that if sudo is used to run sos collect, the keyring must also be set up using sudo (or direct shell access to the account).
Users should be aware that encrypting the final archive will result in sos using double the amount of temporary disk space - the encrypted archive must be written as a separate, rather than replacement, file within the temp directory that sos writes the archive to. However, since the encrypted archive will be the same size as the original archive, there is no additional space consumption once the temporary directory is removed at the end of execution.
This means that only the encrypted archive is present on disk after sos finishes running.
If encryption fails for any reason, the original unencrypted archive is preserved instead.
IMPORTANT: As of this version of sos collect, only the final archive on the local machine running sos collect will be encrypted. The individual sos reports that are collected on the nodes will be collected unencrypted.
Host groups are pre-defined settings for the cluster-type, primary node, and nodes options saved in JSON-formatted files under /var/lib/sos collect/<GROUP>.
If cluster_type and/or primary are set in the group, sos collect behaves as if these values were specified on the command-line.
If nodes is defined, sos collect extends the --nodes option, if set, with the nodes or regexes listed in the group.
Note that sos collect will only write group definitions to /var/lib/sos collect/ however the GROUP value may be a filename for any group definitions that exist outside of the default location. If you are manually writing these files, use the value null when a python NoneType is expected. Caveat: use string 'none' if setting cluster_type to none.
sos-collector will write a JSON-formatted file with name GROUP to /var/lib/sos collect/ with the settings for cluster-type, primary, and the node list as discovered by cluster enumeration. Note that this means regexes are not directly saved to host groups, but the results of matching against those regexes are.
If the number of nodes enumerated exceeds the number of JOBS, then sos collect will start collecting from the first X number of nodes and then continue to iterate through the remaining nodes as sosreport collection finishes.
Defaults to 4.
If this option is omitted and a bogus sudo password is supplied, collection of sosreports may exhibit unexpected behavior and/or fail entirely.
Example: To enable the kubernetes "all" option in sosreport use -k kubernetes.all=on.
If a cluster sets a default label, the user-provided label will be appended to that cluster default.
By default, this is set to 25 MiB and applies to all files and command output collected with the exception of journal collections, which are limited to 100 MiB.
Setting this value to 0 removes all size limitations, and any files or commands collected will be collected in their entirety, which may drastically increase the size of the final sos report tarball and the memory usage of sos during collection of commands, such as very large journals that may be several GiB in size.
This option supports providing a comma-delimited list of plugins.
This option can be handed multiple regex strings separated by commas. Additionally, both whole node names/addresses and regex strings may be provided at the same time.
Use this with --cluster-type if there are rpm or apt issues on the primary/local node.
If --primary is not supplied, it is assumed that the host running sosreport is part of the cluster that is to be collected. Use this option to skip collection of a local sosreport.
This option is NOT needed if --primary is provided.
If provided, then sos collect will check the primary node, not localhost, for determining the type of cluster in use.
Enable with true/on/yes or disable with false/off/no
Default: true
Note that this file must exist on the node(s) performing the pull operations, not the node from which sos collect was run.
Note that a cluster profile will NOT override this option. This may cause the sosreports generated to not contain the relevant output for a given type of cluster.
This option supports providing a comma-delimited list of plugins.
If you have differing passwords for the same user across cluster nodes, you should ideally deploy SSH keys, but the --password-per-node option is also available.
If --preset is specified and a given node either does not have that preset defined, or has a version of sos prior to 3.6, this option is ignored for that node.
sos collect will prompt for a sudo password for non-root users.
The report process on each node will run THREADS number of plugins concurrently during the collection process.
Defaults to 4.
Note that sosreports are collected in parallel, so you can approximate the total runtime of sos collect via timeout*(number of nodes/jobs).
Default is 180 seconds.
sos collect uses locally installed binaries to connect to and interact with remote nodes, instead of directly establishing those connections. By default, OpenSSH's ControlPersist feature is preferred, however certain cluster types may have preferences of their own for how remote sessions should be established.
The types of transports supported are currently as follows:
auto Allow the cluster type to determine the transport used
control_persist Use OpenSSH's ControlPersist feature. This is the
default behavior
oc Use a locally configured oc binary to deploy
collection pods on OCP nodes
This is NOT the same as specifying a temporary directory for sosreport on the remote nodes.
Note that this option may considerably extend the time it takes sosreport to run on the nodes. Consider increasing --timeout when using this option.
sos(1) sos-report(1) sos-clean(1) sos.conf(5)
Maintained on GitHub at https://github.com/sosreport/sos
See AUTHORS file in the package documentation.
1 | April 2020 |