萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux中安裝sosreport和supportconfig來收集系統信息

Linux中安裝sosreport和supportconfig來收集系統信息

   sosreport

  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 文件的一些信息。

  由於頁面較大,這裡只截出了最上面的部分,列出了所有的收集模塊,下面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的區別。

  supportconfig

  一、supportconfig的安裝

  可以通過yast進行安裝,也可以通過zypper命令進行安裝,安裝命令如下:

  直接使用源進行安裝

  代碼如下:

  #zypper install supportutils

  也可以將rpm包下載下來使用yast進行安裝或者在yast的管理界面裡查找安裝

  代碼如下:

  #yast install supportutils-xxx.rpm

  注:根據系統的版本不同,包名也可能是supportconfig 。

  安裝完成後可以使用rpm -ql supportutils 查看包中具體包含的文件信息,如下:

  代碼如下:

  # rpm -ql supportutils

  /etc/schealth.conf

  /etc/supportconfig.conf

  /sbin/chkbin

  /sbin/supportconfig

  /usr/bin/schealth

  /usr/share/man/man5/supportconfig.conf.5.gz

  /usr/share/man/man8/chkbin.8.gz

  /usr/share/man/man8/supportconfig.8.gz

  注:上面的結果是在 suse11 sp1企業版上的測試的結果,在opensuse 13上目錄結構會略有不同,其上使用的是新版本的supportconfig。

  二、supportconfig用法

  以下是supportconfig的幫助輸出

  復制代碼

  代碼如下:

  # supportconfig -h

  =============================================================================

  Support Utilities - Supportconfig

  Script Version: 2.25-197

  Script Date: 2010 04 02

  =============================================================================

  Usage: supportconfig [OPTION [OPTION ...]]

  -h This screen

  -A Activates all supportconfig functions with additional logging and full

  rpm verification.

  -B Custom tar ball file name element

  -C Creates a new default /etc/supportconfig.conf

  -D Use defaults; ignore /etc/supportconfig.conf

  -E Contact email address

  -F Display available supportconfig feature keywords (case-sensitive) used

  with -i and -x

  -G The GPG recipient's user ID used to encrypt the supportconfig tarball

  -H Limit number of included HA Policy engine files

  -I Default log file line count

  -L Create a full file listing from '/'

  -M Contact terminal ID

  -N Contact name

  -O Contact company name

  -P Contact phone number

  -Q Run in silent mode

  -R Log output directory

  -S Limit number of included SAR files

  -T Binary execution timeout

  -U Sets upload target URL and initiates an upload, supported

  services include: ftp, scp, http, https

  -M Contact store ID

  -X Max system logs line count

  -a Upload the tar ball to the specified alternate target VAR_OPTION_UPLOAD_ALT

  -b Screen buffer mode

  -d Exclude detailed disk info and scans

  -e Search root file system for eDirectory instances; -L implied. Be patient.

  -f From directory. Don't collect report files, just use files in that

  directory.

  -g Use gzip instead of the default bzip2 compression.

  -i

  Include keywords. A comma separated list of feature keywords that specify

  which features to include. Use -F to see a list of valid keywords.

  -l Gathers additional rotated logs

  -m Only gather a minimum amount of info: basic env, basic health, hardware,

  rpm, messages, y2logs

  -o Toggle listed features on or off

  -p Disable all plugins

  -q Add a uuid to the tar ball filename to ensure uniqueness

  -r

  Includes the Novell 11 digit service request number when uploading

  the tar ball to Novell

  -s Include full SLP service lists

  -t Target directory. Just save log files here, do not create tarball.

  -u Upload the tar ball to the specified VAR_OPTION_UPLOAD_TARGET.

  -v Performs an rpm -V for each installed rpm NOTE: This takes a long time

  to complete

  -x

  Exclude keywords. A comma separated list of feature keywords that specify

  which features to exclude. Use -F to see a list of valid keywords.

  -y Only gather the minimum y2log files.

  Use Ctrl- to try and skip a function that is hanging.

  -----------------------------------------------------------------------------

  NOTE:

  This tool will create a tar ball in the /var/log directory. Please attach

  the log file tar ball to your open Service. Request at the following URL:

  https://secure-support.novell.com/eService_enu

  If you cannot attach the tar ball to the SR, then email it to the engineer.

  Please submit bug fixes or comments via:

  http://en.opensuse.org/Supportutils#Reporting_Bugs

  =============================================================================

  Support Utilities - Supportconfig

  Script Version: 2.25-197

  Script Date: 2010 04 02

  =============================================================================

  默認supportconfig或supportconfig -A執行後會將收集後的結果打包為一個nts_主機名_日期.tbz 文件,同時會生成一個以該文件名加.md5後綴的文件。

  三、supportconfig常用示例

  1、supportconfig -A 收集所有日志

  復制代碼

  代碼如下:

  # supportconfig

  =============================================================================

  Support Utilities - Supportconfig

  Script Version: 2.25-290

  Script Date: 2011 07 14

  =============================================================================

  Gathering system information

  Data Directory: /var/log/nts_361way.com_140825_1504

  Basic Server Health Check... Done

  RPM Database... Done

  Basic Environment... Done

  Basic Health Report... Done

  System Modules... Done

  Memory Details... Done

  Disk I/O... Done

  YaST Files... Done

  Auditing... Done

  Crash Info... Done

  NTP... Done

  PROC... Done

  Boot Files... Done

  SLERT... Skipped

  Updates... Done

  SMT... Skipped

  Novell eDirectory... Please Wait... Skipped

  Novell LUM... Skipped

  Novell NCP... Skipped

  Novell NSS... Skipped

  Novell DFS... Skipped

  Novell SMS... Skipped

  Novell NCS... Skipped

  Novell AFP... Skipped

  Novell CIFS... Skipped

  Novell iManager... Skipped

  HA Cluster... Skipped

  OCFS2... Skipped

  DRBD... Skipped

  PAM... Done

  LDAP... Done

  CIMOM... Done

  Open Files... Done

  Environment... Done

  ETC... Done

  SYSCONFIG... Done

  SYSFS... Done

  System Daemons... Done

  CRON... Done

  AT... Done

  UDEV... Done

  LVM... Please Wait... Base Detail Done

  EVMS... Skipped

  Software Raid... Done

  Multipathing... Done

  Networking... Done

  Web... Done

  InfiniBand... Done

  DNS... Done

  DHCP... Done

  SLP... Done

  SSH... Done

  iSCSI... Done

  Samba... Done

  NFS... Done

  AUTOFS... Done

  SAR Files... Done

  AppArmor... Done

  Xen... Done

  KVM... Done

  X... Done

  Printing... Done

  SMART Disks... Excluded

  Hardware... Please Wait... Done

  File System List... Skipped

  Supportability Analysis... Please Wait... Done

  System Logs... Done

  Creating Tar Ball

  ==[ DONE ]===================================================================

  Log file tar ball: /var/log/nts_361way.com_140825_1504.tbz

  Log file size: 4.0M

  Log file md5sum: 484b111cda54ca04419facd82a1da7d7

  Please attach the log file tar ball to your open Service Request at the

  following URL:

  https://secure-support.novell.com/eService_enu

  You can also upload the tar ball to ftp.novell.com/incoming, or just use

  supportconfig -ur , to upload the tar ball automatically.

  If you cannot attach the tar ball to the SR, then email it to the engineer.

  =============================================================================

  其他常用用法:

  復制代碼

  代碼如下:

  //以最小選項搜集所需的信息

  # supportconfig -m

  //在輸出中包含附加的聯系人信息

  # supportconfig -E [email protected] -N "Tux Penguin" -O "Penguin Inc." ...

  //要查看完整的功能列表

  # supportconfig -F

  //僅收集某個模塊的用法,如LVM相的信息

  # supportconfig -i LVM

  //-x 的功能與-i剛好相反,是排除某個模塊不收集

  # supportconfig -x LVM

  //使用-U url 可以將收集的結果上傳到服務器上,直接的服務有ftp, scp, http, https,如:

  # supportconfig -A -U http://www.361way.com/files/

  具體可以參看官方的 常用的supportconfig選項 部分 。

  supportconfig收集的系統健康報告:

  代碼如下:

  # supportconfig -A

  # cd /var/log

  # tar jxvf nts_361way.com_140825_1504.tbz

  # more basic-health-report.txt

  #==[ Command ]======================================#

  # /usr/bin/schealth -q

  ######################################################################

  Supportconfig Health Check Report Tool v1.00-5

  Date Checked: 09/12/14 04:40:37

  ######################################################################

  Health Check Files [ Green ]

  Processes Waiting for Run Queue [ Green ]

  Kernel Taint Status [ Red ]

  Kernel Tainted: 64 > 0

  CPU Utilization [ Green ]

  Interrupts Per Second [ Green ]

  Context Switches Per Second [ Green ]

  Free Memory and Disk Swapping [ Green ]

  Used Disk Space [ Green ]

  Uninterruptible Processes [ Green ]

  Zombie Processes [ Green ]

  ######################################################################

  Status: Red Flag

  Checked: /var/log/nts_361way.com_140825_1504/basic-health-check.txt

  Report: /var/log/nts_361way.com_140825_1504/basic-health-report.txt

  ######################################################################

  上面的報告中,我們發現kernel Tainted 狀態為red ,該處是通過cat /proc/sys/kernel/tainted 進行判斷的,如果值不為0,則是內核受到污染 ,顯的值不同,具體可以參看/usr/src/linux/Documentation/sysctl/kernel 文件(具體的值不一樣,代表的意義也不一樣)。64報紅是由於加載了非系統官方或非開源的模塊所致( Unsupported modules loaded)。

  四、supportconfig配置文件

  supportconfig的默認配置文件是 /etc/supportconfig.conf ,其默認內容如下:

  代碼如下:

  # cat /etc/supportconfig.conf

  ####################################

  # Default Options

  ####################################

  OPTION_AFP=1

  OPTION_APPARMOR=1

  OPTION_AUDIT=1

  OPTION_AUTOFS=1

  OPTION_BOOT=1

  OPTION_CHKCONFIG=1

  OPTION_CIFS=1

  OPTION_CIMOM=1

  OPTION_CRASH=1

  OPTION_CRON=1

  OPTION_DFS=1

  OPTION_DHCP=1

  OPTION_DISK=1

  OPTION_DNS=1

  OPTION_EDIR=1

  OPTION_ENV=1

  OPTION_ETC=1

  OPTION_EVMS=1

  OPTION_HA=1

  OPTION_HCREPORT=1

  OPTION_IB=1

  OPTION_ISCSI=1

  OPTION_LDAP=1

  OPTION_LUM=1

  OPTION_LVM=1

  OPTION_MEM=1

  OPTION_MOD=1

  OPTION_MPIO=1

  OPTION_NCP=1

  OPTION_NCS=1

  OPTION_NET=1

  OPTION_NFS=1

  OPTION_NSS=1

  OPTION_NTP=1

  OPTION_OCFS2=1

  OPTION_OFILES=1

  OPTION_PAM=1

  OPTION_PRINT=1

  OPTION_PROC=1

  OPTION_SAM=1

  OPTION_SAR=1

  OPTION_SLERT=1

  OPTION_SLP=1

  OPTION_SMART=0

  OPTION_SMB=1

  OPTION_SMS=1

  OPTION_SMT=1

  OPTION_SRAID=1

  OPTION_SSH=1

  OPTION_SYSCONFIG=1

  OPTION_SYSFS=1

  OPTION_UDEV=1

  OPTION_UP=1

  OPTION_UPD=1

  OPTION_WEB=1

  OPTION_X=1

  OPTION_XEN=1

  ADD_OPTION_EDIR=0

  ADD_OPTION_FSLIST=0

  ADD_OPTION_LOGS=0

  ADD_OPTION_MINDISK=0

  ADD_OPTION_MINYAST=0

  ADD_OPTION_RPMV=0

  ADD_OPTION_SLP=0

  VAR_OPTION_BIN_TIMEOUT_SEC=300

  VAR_OPTION_CONTACT_COMPANY=""

  VAR_OPTION_CONTACT_EMAIL=""

  VAR_OPTION_CONTACT_NAME=""

  VAR_OPTION_CONTACT_PHONE=""

  VAR_OPTION_CONTACT_STOREID=""

  VAR_OPTION_CONTACT_TERMINALID=""

  VAR_OPTION_CUSTOM_ARCH=""

  VAR_OPTION_GPG_UID=""

  VAR_OPTION_LINE_COUNT=500

  VAR_OPTION_LOG_DIRS="/var/log /tmp"

  VAR_OPTION_MSG_MAXSIZE=500000

  VAR_OPTION_PENGINE_FILES_LIMIT=250

  VAR_OPTION_SAR_FILES_LIMIT=30

  VAR_OPTION_SBM=0

  VAR_OPTION_SILENT=0

  VAR_OPTION_UNIQUE_FILE=0

  VAR_OPTION_UPLOAD_ALT='https://secure-www.novell.com/upload?appname=supportconfig&file={tarball}'

  VAR_OPTION_UPLOAD_TARGET='ftp://ftp.novell.com/incoming'

  配置文件中列出了默認收集的模塊信息,公司信息、郵件、電話及上傳的服務器目錄等。

  五、supportconfig總結

  supportconfig是使用shell 編寫的一個功能十分強大的工具,具體可以通過vim /sbin/supportconfig 查看 。同時,由於linux命令上的通用性,我們甚至可以很簡單的進行修改後將其移植到其他linux 發行版上。不過顯然這是沒必要的,因為還有一個比較通的用的開源工具sosreport和其作用差不多,而其適用性更強,後面會單獨列一篇做一個總結。

copyright © 萬盛學電腦網 all rights reserved