Skip to content

sos-4.0

Compare
Choose a tag to compare
@TurboTurtle TurboTurtle released this 17 Aug 21:55

The sos team is pleased to announce the relase of sos-4.0. This is a major version release that represents a significant change to the sos project, new features, and bug fixes.

Major changes

Sos has been redesigned to provide functionality beyond the well known report data collection usage. It has been updated to provide
more functionality via sub-commands.

  • A new sos binary has replaced the former sosreport binary as the main entry point for the utility.

    • sos report is now used to generate sosreport tarballs. A sosreport binary is maintained as a redirection point and will now invoke sos report.
    • sos collect formally brings sos-collector into the main sos project, and is used to collect sosreports from multiple nodes simultaneously. A sos-collector binary is maintained as a redirection point and will invoke sos collect.
      • This means the standalone sos-collector utility will no longer be independently developed.
    • sos clean formally brings soscleaner-like functionality into the main sos project. This sub command will perform further data obfuscation on reports, such as scrubbing IP addresses, domain names, and user-provided keywords. See below for more information.
  • /etc/sos.conf has been moved to /etc/sos/sos.conf, and the layout of the config file has changed:

    • The general section has been renamed to global, and may be used to specify options that are available to all sos commands and sub-commands.
    • Each sub-command will have its own section, e.g. sos report will load options from global and from report.
  • Sos is now a Python3-only utility. Python2 is no longer supported in any capacity.

  • Dropped use of make, building/installing sos from source should now exclusively be done via setuptools

Report

  • sos will now generate metadata and save it in sos_reports/manifest.json.

  • 7 new plugins: nvmetcli, drbd, openstack_designate, pmem, containers_common, hyperv, freeipmi

  • The nfsserver plugin has been merged into the nfs plugin

  • sos may now be used to collect data from within a container, rather than aborting if that container was not configured to allow sos to collect information from the host

  • Added support for Container-Optimized OS (COS)

  • Dropped Mac OSX support

  • Dropped bzip2 compression support

  • Users may now use the --clean or --mask option to process a report-being-generated through sos clean at runtime.

  • Size limits will now apply to add_copy_spec() calls that target a directory

  • The openshift plugin has been re-written to be used for Openshift Container Platform 4

  • Significantly expanded the amount of API resources the openstack_octavia plugin will collect

  • The networking plugin will no longer execute ethtool -e against NICs using the bnx2x driver

  • The logs plugin will now capture journal information correctly when logs are stored in-memory only

  • The systemd plugin will no longer collect systemd-resolve if the service is not running

  • The openvswitch plugin has been significantly updated to pull more meaningful data, and now supports OpenFlow 1.4 and 1.5

Plugin API changes

  • The command execution/collection methods have been overhauled:

    • add_cmd_output() should continue to be used to specify commands that should be executed during the collection phase
    • exec_cmd() should now be used to execute commands and retrieve output during setup(), but will not save that output to the archive
    • collect_cmd_output() should be used to execute commands, retrieve output during setup() and will save that output to the archive
    • get_command_output() has been removed
  • A new add_device_cmd() method is available to facilitate easier iteration of commands over a set of devices

    • add_blockdev_cmd() has been added to facilitate iteration of commands of storage devices
  • A container runtime abstraction has been added that aims to standardize the discovery of a container runtime in use (e.g. docker, podman) and the retrieval of data from the runtime across plugins

Collect

sos collect is a new sub command in this release, and is an integration of the standalone sos-collector project, with the aim being to collect sosreports from multiple systems simultaneously. Note that this sub-command requires python3-pexpect to be available. If the module is not available, sos collect will abort with an appropriate error message

Compared to the standalone project, enhancements include:

  • collect is now supported on all distributions that sos report supports (i.e. any distribution with a Policy defined)
  • The --insecure-sudo option has been renamed to --nopasswd-sudo
  • --threads in the context of the number of nodes to simultaneously connect to has been renamed to jobs
  • Fixed a bug where a local node would be displayed for collection even when --no-local was used

Cleaner

sos clean, also available as sos mask, is a newly added sub-command in this release and is an implementation of the standalone soscleaner project. Its aim is to scrub potentially sensitive information from sosreports in a consistent manner, beyond the obfuscation done by plugins already.

  • Support for ipv4 address/network obfuscation. Note that this will attempt to preserve topological relationships between discovered addresses
  • Support for hostname, and domain name obfuscation.
  • Support for user-provided keyword obfuscations
  • Users may either use the --clean or --mask flag to sos report to obfuscate a report being generated, or may use sos (clean|mask) $archive to obfuscate an already existing report.
    • Using the former will result in a single obfuscated report archive, while the latter approach will result in two; an obfuscated archive and the un-obfuscated original.

For full information on the changes contained in this release, please refer to the Git commit logs. Further release information and tarballs are available at:

https://github.com/sosreport/sos/releases/tag/4.0

Please report any problems to the sos-devel mailing list, or the GitHub issue tracker:

https://github.com/sosreport/sos/issues/

The team would like to thank everyone who contributed fixes, new features, testing, and feedback for this release.