sos-4.0
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 formersosreport
binary as the main entry point for the utility.sos report
is now used to generate sosreport tarballs. Asosreport
binary is maintained as a redirection point and will now invokesos report
.sos collect
formally bringssos-collector
into the mainsos
project, and is used to collect sosreports from multiple nodes simultaneously. Asos-collector
binary is maintained as a redirection point and will invokesos collect
.- This means the standalone
sos-collector
utility will no longer be independently developed.
- This means the standalone
sos clean
formally bringssoscleaner
-like functionality into the mainsos
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 toglobal
, and may be used to specify options that are available to allsos
commands and sub-commands. - Each sub-command will have its own section, e.g.
sos report
will load options fromglobal
and fromreport
.
- The
-
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 viasetuptools
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 thenfs
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 throughsos 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 executeethtool -e
against NICs using thebnx2x
driver -
The
logs
plugin will now capture journal information correctly when logs are stored in-memory only -
The
systemd
plugin will no longer collectsystemd-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 phaseexec_cmd()
should now be used to execute commands and retrieve output duringsetup()
, but will not save that output to the archivecollect_cmd_output()
should be used to execute commands, retrieve output duringsetup()
and will save that output to the archiveget_command_output()
has been removed
-
A new
add_device_cmd()
method is available to facilitate easier iteration of commands over a set of devicesadd_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 thatsos 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 tojobs
- 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 tosos report
to obfuscate a report being generated, or may usesos (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.