sosreport是一個類型於supportconfig 的工具,sosreport是python編寫的一個工具,適用於centos(和redhat一樣,包名為sos)、ubuntu(其下包名為sosreport)等大多數版本的linux 。sosreport在github上的托管頁面為:https ...
sosreport是一個類型於supportconfig 的工具,sosreport是python編寫的一個工具,適用於centos(和redhat一樣,包名為sos)、ubuntu(其下包名為sosreport)等大多數版本的linux 。sosreport在github上的托管頁面為:https://github.com/sosreport/sos ,而且預設在很多系統的源里都已經集成有。如果使用的是正版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 = [email protected]
- smtp_server = None
- [plugins] //此處可以設置預設enable和disable的模塊
- #disable = rpm, selinux, dovecot
- [tunables] //可調參數
- #rpm.rpmva = off
- #general.syslogsize = 15
從配置文件上可以看出,sosreport同樣將收集的結果上傳到server 上,可以通過man sos.conf 查看配置文件的幫助信息,不過man給出的並沒有太多信息,想在瞭解更多的信息可以查看 sosreport在github上的wiki頁 。
四、sosreport總結
相於supportconfig,由於sosreport是由python語言進行編寫的,所以其在功能擴展上更有優勢,但由於在不同的發行版本上的python版本不同,在進行功能擴展時,對不同版本間的異常處理相對麻煩。而supportconfig由於是shell 語言編寫的一個工具,對版本的依賴相對少些 ,但對一些工具的依賴相對多些 ,如在獲取進程相關的信息時,shell 需要將ps 工具或處理proc的結果,而sosreport則可以直接import psutil 模塊,兩者之間的區別,歸根到底就是shell 和python的區別。