一、背景
网上有很多sosreport安装及使用命令的文档,可翻来覆去很少见如何分析sos日志,本文根据作者经历输出一些相关方法,也欢迎其它道友能提出宝贵意见,一起丰富文档。
二、定义
用于收集Linux系统配置并诊断信息后输出结论文档。当Linux系统出现故障需要联系红帽厂商时,一般都会要先使用这个sosreport功能来收集计算机的运行状态和服务配置信息,以便让红帽原厂能够通过日志尽快定位问题。
三、安装
# R系(redhat/centos)
yum install -y sos
# U系(ubuntu)
sudo apt-get install sosreport
四、日志收集
使用sosreport -a命令,收集日志
sosreport -a
日志收集后在/var/tmp/会生成一个 tar.xz压缩文件,先解压
tar -xvf sosreport-vshky-dev-spcl-devops-app01-20241108101203.tar.xz
# ls -lrt sosreport-vshky-dev-spcl-devops-app01-20241108101203
drwxr-xr-x 5 root root 45 3月 26 2024 usr
drwxr-xr-x 8 root root 82 3月 26 2024 var
dr-xr-xr-x 5 root root 44 3月 26 2024 boot
lrwxrwxrwx 1 root root 7 3月 26 2024 lib -> usr/lib
dr-xr-xr-x 775 root root 20480 9月 24 10:20 proc
drwxr-xr-x 3 root root 20 9月 27 17:54 app
dr-xr-xr-x 10 root root 112 9月 29 09:51 sys
drwxr-xr-x 65 root root 4096 10月 9 17:58 etc
drwxr-xr-x 5 root root 52 11月 5 15:21 run
lrwxrwxrwx 1 root root 22 11月 8 10:12 date -> sos_commands/date/date
lrwxrwxrwx 1 root root 29 11月 8 10:12 mount -> sos_commands/filesys/mount_-l
lrwxrwxrwx 1 root root 37 11月 8 10:12 df -> sos_commands/filesys/df_-al_-x_autofs
lrwxrwxrwx 1 root root 24 11月 8 10:12 uptime -> sos_commands/host/uptime
lrwxrwxrwx 1 root root 26 11月 8 10:12 hostname -> sos_commands/host/hostname
lrwxrwxrwx 1 root root 31 11月 8 10:12 dmidecode -> sos_commands/hardware/dmidecode
lrwxrwxrwx 1 root root 23 11月 8 10:12 last -> sos_commands/login/last
lrwxrwxrwx 1 root root 83 11月 8 10:12 vgdisplay -> sos_commands/lvm2/vgdisplay_-vv_--config_global_locking_type_0_metadata_read_only_1
lrwxrwxrwx 1 root root 24 11月 8 10:12 free -> sos_commands/memory/free
lrwxrwxrwx 1 root root 28 11月 8 10:13 lspci -> sos_commands/pci/lspci_-nnvv
lrwxrwxrwx 1 root root 31 11月 8 10:13 pstree -> sos_commands/process/pstree_-lp
lrwxrwxrwx 1 root root 30 11月 8 10:13 ps -> sos_commands/process/ps_auxwww
lrwxrwxrwx 1 root root 39 11月 8 10:13 lsof -> sos_commands/process/lsof_-b_M_-n_-l_-c
lrwxrwxrwx 1 root root 32 11月 8 10:13 route -> sos_commands/networking/route_-n
lrwxrwxrwx 1 root root 41 11月 8 10:13 netstat -> sos_commands/networking/netstat_-W_-neopa
lrwxrwxrwx 1 root root 34 11月 8 10:13 ip_addr -> sos_commands/networking/ip_-o_addr
lrwxrwxrwx 1 root root 130 11月 8 10:13 installed-rpms -> sos_commands/rpm/sh_-c_rpm_--nodigest_-qa_--qf_NAME_-_VERSION_-_RELEASE_._ARCH_INSTALLTIME_date_awk_-F_printf_-59s_s_n_1_2_sort_-V
lrwxrwxrwx 1 root root 38 11月 8 10:13 chkconfig -> sos_commands/services/chkconfig_--list
lrwxrwxrwx 1 root root 28 11月 8 10:13 uname -> sos_commands/kernel/uname_-a
lrwxrwxrwx 1 root root 25 11月 8 10:13 lsmod -> sos_commands/kernel/lsmod
dr-xr-x--- 2 root root 29 11月 8 10:13 root
drwx------ 6 root root 69 11月 8 10:13 sos_strings
drwxr-xr-x 82 root root 4096 11月 8 10:13 sos_commands
-rw-r--r-- 1 root root 218 11月 8 10:15 environment
-rw-r--r-- 1 root root 2235 11月 8 10:15 version.txt
drwxr-xr-x 2 root root 53 11月 8 10:15 sos_reports
drwxr-xr-x 2 root root 35 11月 8 10:15 sos_logs
目录说明:
usr/目录: 存放系统应用程序及文档,有模块信息、sysctl内核参数、systemd服务、watchdog脚本、时区等
var/目录: 存放系统运行中常改变的文件,有lib库文件、crash日志、系统日志、sar日志
boot/目录:存放系统引导文件,有grub文件、loader文件
proc/目录:存放虚拟文件系统目录,以进程为单位存储内存的映射
app/目录: 存放应用相关数据目录, 比如docker容器等
sys/目录: 存放设备文件目录
etc/目录: 存放配置文件目录
root/目录:root用户目录
date、mount、df、uptime、installed-rpms等软链接: 执行系统命令的结果,链接到sos_commands/目录,用cat等命令可获取命令结果
五、日志分析
方法一: 通过网页查看
解压后,有个sos_reports/sos.html文件,用网页打开文件。分析中常用到以下插件:
比如sar插件,查看1号的sar01系统情况:
方法二:通过命令查看
1、查看vmcore-dmesg信息
more var/crash/127.0.0.1-2024-03-26-19\:30\:23/vmcore-dmesg.txt
2、查看系统负载、cpu、内存、磁盘、网卡情况:
查看sa文件, 发现有sa01-sa08、sa30-sa31文件,即表示本月1号-8号、上月30号-31号这10天的日志:
#ls var/log/sa/
sa01 sa02 sa03 sa04 sa05 sa06 sa07 sa08 sa30 sa31 sar01 sar02 sar03 sar04 sar05 sar06 sar07 sar30 sar31
查看本月1号 系统负载:
说明:每隔10分钟收集一次系统的平均值,其它sar结果也一样。
sar -q -f var/log/sa/sa01
查看本月1号 CPU使用情况:
sar -u -f var/log/sa/sa01
查看本月1号 内存使用情况:
sar -r -f var/log/sa/sa01
查看本月1号 磁盘IO使用情况:
sar -d -f var/log/sa/sa01
查看本月1号 网卡网络使用情况:
sar -n DEV -f var/log/sa/sa01
六、参数说明
sar命令获取的各参数说明,可参考这篇帖子,博主写的挺详细就不做了搬运工: