sosreport是一个类型于supportconfig 的工具,sosreport是python编写的一个工具,适用于centos(和redhat一样,包名为sos)、ubuntu(其下包名为sosreport)等大多数版本的linux 。sosreport在github上的托管页面为:,而且默认在很多系统的源里都已经集成有。如果使用的是正版redhat,在出现系统问题,寻求官方支持时,官方一般也会通过sosreport将收集的信息进行分析查看。需要注意的是在一些老的redhat发行版中叫sysreport ------ 如redhat4.5之前的版本中。
一、sosreport的安装
在默认使用linux发行版的源进行安装时,由于在不同的系统上包名称也会有差异,所以使用的命令也不同,如redhat和ubuntu平台的安装如下:
- // redhat/centos下的安装
- # yum -y insatll sos
- // ubuntu下的安装
- # sudo apt-get install sosreport
二、sosreport用法
可以使用sosreport --help或man sosreport 获取使用帮助手册,如下:
- [root@361way ~]# sosreport --help
- usage: sosreport [options]
- options:
- -h, --help show this help message and exit
- -l, --list-plugins list plugins and available plugin options
- -n noplugins, --skip-plugins=noplugins
- disable these plugins
- -e enableplugins, --enable-plugins=enableplugins
- enable these plugins
- -o onlyplugins, --only-plugins=onlyplugins
- enable these plugins only
- -k plugopts, --plugin-option=plugopts
- plugin options in plugname.option=value format (see
- -l)
- -a, --alloptions enable all options for loaded plugins
- --batch batch mode - do not prompt interactively
- --build keep sos tree available and dont package results
- -v, --verbose increase verbosity
- --quiet only print fatal errors
- --debug enable interactive debugging using the python debugger
- --ticket-number=ticket_number
- specify ticket number
- --name=customer_name specify report name
- --config-file=config_file
- specify alternate configuration file
- --tmp-dir=tmp_dir specify alternate temporary directory
- --report enable html/xml reporting
- --profile turn on profiling
- -z compression_type, --compression-type=compression_type
- compression technology to use [auto, zip, gzip, bzip2,
- xz] (default=auto)
- some examples:
- enable cluster plugin only and collect dlm lockdumps:
- # sosreport -o cluster -k cluster.lockdump
- disable memory and samba plugins, turn off rpm -va collection:
- # sosreport -n memory,samba -k rpm.rpmva=off
上面也列出了具体操作的示例。其中-l 参数会列出当前enable和disable的所有服务插件及当前available的所有插件。
- [root@361way log]# sosreport -a --report
- sosreport (version 3.0)
- this command will collect diagnostic and configuration information from
- this centos linux system and installed applications.
- an archive containing the collected information will be generated in
- /var/tmp and may be provided to a centos support representative.
- any information provided to centos will be treated in accordance with
- the published support policies at:
- https://www.centos.org/
- the generated archive may contain data considered sensitive and its
- content should be reviewed by the originating organization before being
- passed to any third party.
- no changes will be made to system configuration.
- press enter to continue, or ctrl-c to quit.
- please enter your first initial and last name [361way.com]:
- please enter the case number that you are generating this report for:
- running plugins. please wait ...
- running 68/68: yum...
- creating compressed archive...
- your sosreport has been generated and saved in:
- /var/tmp/sosreport-361way.com-20140912204339.tar.xz
- the checksum is: eaf5b2cbb1e9be68d41be5e5a60a61b6
- please send this file to your support representative.
如上所示,我使用-a 启用所有的模块,--report是开启所有的结果以html /xml 的格式一个总的报告。生成的包需要通过下面的命令进行解包。
- # xz -d ***.tar.xz
- # tar -xvf ***.tar
- 或直接使用下面的命令一步完成解压
- tar xvjf ***.tar.xz
在解包后的sos_reports 目录会有report的结果sos.html文件生成,同时会有sos.txt文件生成,该文件内列出了具体执行的命令及copy 文件的一些信息。html 打开的内容如下:
由于页面较大,这里只截出了最上面的部分,列出了所有的收集模块,下面alerts 给出了报警模块的信息。再往下就是具体到每一个模块的信息。
三、sosreport配置文件
sosreport的配置文件是/etc/sos.conf ,默认内容如下:
- [root@361way ~]# cat /etc/sos.conf
- [general]
- #ftp_upload_url = ftp://example.com/incoming
- #gpg_keyring = /usr/share/sos/rhsupport.pub
- #gpg_recipient = support@redhat.com
- smtp_server = none
- [plugins] //此处可以设置默认enable和disable的模块
- #disable = rpm, selinux, dovecot
- [tunables] //可调参数
- #rpm.rpmva = off
- #general.syslogsize = 15
从配置文件上可以看出,sosreport同样将收集的结果上传到server 上,可以通过man sos.conf 查看配置文件的帮助信息,不过man给出的并没有太多信息,想在了解更多的信息可以查看 。
四、sosreport总结
相于supportconfig,由于sosreport是由python语言进行编写的,所以其在功能扩展上更有优势,但由于在不同的发行版本上的python版本不同,在进行功能扩展时,对不同版本间的异常处理相对麻烦。而supportconfig由于是shell 语言编写的一个工具,对版本的依赖相对少些 ,但对一些工具的依赖相对多些 ,如在获取进程相关的信息时,shell 需要将ps 工具或处理proc的结果,而sosreport则可以直接import psutil 模块,两者之间的区别,归根到底就是shell 和python的区别。
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!
网友评论