首頁 > 軟體

Linux資訊收集篇之sosreport

2020-06-16 16:46:02

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 = 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在github上的wiki頁 。

四、sosreport總結
相於supportconfig,由於sosreport是由python語言進行編寫的,所以其在功能擴充套件上更有優勢,但由於在不同的發行版本上的python版本不同,在進行功能擴充套件時,對不同版本間的例外處理相對麻煩。而supportconfig由於是shell 語言編寫的一個工具,對版本的依賴相對少些 ,但對一些工具的依賴相對多些 ,如在獲取進程相關的資訊時,shell 需要將ps 工具或處理proc的結果,而sosreport則可以直接import psutil 模組,兩者之間的區別,歸根到底就是shell 和python的區別。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-09/154141.htm


IT145.com E-mail:sddin#qq.com