本节操作介绍atop和kdump的配置方法。
不同的Linux版本使用的atop工具版本不同,因此配置方法稍微有所不同。
配置atop:
配置kdump:
atop是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,可获取相应的atop日志文件进行分析。
yuminstall-yatop
vi/etc/sysconfig/atop
修改如下配置参数,修改后保存并退出。
LOGINTERVAL=15LOGGENERATIONS=3启动atop服务。systemctlstartatop
systemctlstatusatop
atop.service-AtopadvancedperformancemonitorLoaded:loaded(/usr/lib/systemd/system/atop.service;enabled;vendorpreset:disabled)Active:active(running)sinceSat2024-03-611:49:47CST;2h27minagoCentOS6系列操作系统配置atop执行以下命令,安装atop。yuminstall-yatop
LOGINTERVAL默认是600,可以修改成15,单位秒。
LOGINTERVAL=15vi/etc/logrotate.d/atop
默认atop日志保存周期为40天,可以根据实际修改“-mtime”的值为3,单位为天。
postrotate/usr/bin/find/var/log/atop/-maxdepth1-mount-nameatop_\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\*-mtime+3-exec/bin/rm{}\;endscript启动atop服务。serviceatopstart
serviceatopstatus
atop(pid3170)isrunningUbuntu20/22、Debian10/11系列操作系统配置atop执行以下命令,安装atop。apt-getinstall-yatop
vi/etc/default/atop
atop.service-AtopadvancedperformancemonitorLoaded:loaded(/etc/init.d/atop;bad;vendorpreset:disabled)Active:active(running)sinceSat2024-03-1114:09:47CST;16sagoUbuntu18、Debian8/9系列操作系统配置atop执行以下命令,安装atop。apt-getinstall-yatop
vi/usr/share/atop/atop.daily
LOGINTERVAL=15……((sleep3;find$LOGPATH-name'atop_*'-mtime+3-execrm{}\;)&)启动atop服务。systemctlstartatop
atop.service-AtopadvancedperformancemonitorLoaded:loaded(/etc/init.d/atop;bad;vendorpreset:disabled)Active:active(running)sinceSat2024-03-614:09:47CST;15sagoUbuntu16系列操作系统配置atop执行以下命令,安装atop。apt-getinstall-yatop
LOGINTERVAL=15启动atop服务。systemctlstartatop
rpm-ivhatop-2.6.0-1.src.rpm
zypper-ninstallrpm-buildncurses-develzlib-devel
cd/usr/src/packages/SPECS
rpmbuild-bbatop-2.6.0.spec
cd/usr/src/packages/RPMS/x86_64
rpm-ivhatop-2.6.0-1.x86_64.rpm
LOGINTERVAL=15LOGGENERATIONS=3重启atop服务。systemctlrestartatop
tar-zxvfatop-2.6.0.tar.gz
systemctl--version
如果版本大于等于220,直接进行下一步。
否则需要修改atop的Makefile文件,删除--now参数。
viatop-2.6.0/Makefile
删除systemctl命令后的--now参数
then/bin/systemctldisableatop2>/dev/null;\/bin/systemctldisableatopacct2>/dev/null;\/bin/systemctldaemon-reload;\/bin/systemctlenableatopacct;\/bin/systemctlenableatop;\/bin/systemctlenableatop-rotate.timer;\安装编译atop依赖软件包。SUSE12、SUSE15系列操作系统执行以下命令安装:zypper-ninstallmakegcczlib-develncurses-devel
yuminstallmakegcczlib-develncurses-devel-y
aptinstallmakegcczlib1g-devlibncurses5-devlibncursesw5-dev-y
cdatop-2.6.0
makesystemdinstall
添加如下配置参数,修改后保存并退出。
LOGOPTS=""LOGINTERVAL=15LOGGENERATIONS=3LOGPATH=/var/log/atop重启atop服务。systemctlrestartatop
atop.service-AtopadvancedperformancemonitorLoaded:loaded(/lib/systemd/system/atop.service;enabled)Active:active(running)sinceSun2021-07-2519:29:40CST;4sago.分析atop日志atop启动后,会将采集记录存放在/var/log/atop目录下的日志文件中。
执行如下命令,查看日志文件。
atop-r/var/log/atop/atop_2024XXXX
下图为部分监控字段以及数值,具体数值根据采样周期和atop版本有所不同。下图仅供参考,具体数据以您实际数据为准。
atop运行会占用额外的系统和磁盘资源,不建议在业务环境下长期运行,您可在问题排查完成后,执行以下命令停止atop。
systemctlstopatop
CentOS6执行以下命令停止atop。
serviceatopstop
kdump是系统崩溃的时候,用来转储运行内存的一个工具。系统一旦崩溃,内核就无法正常工作了,这个时候将由kdump提供一个用于捕获当前运行信息的内核,该内核会将此时内存中的所有运行状态和数据信息收集到一个dumpcore文件中以便之后分析崩溃原因。
rpm-qkexec-tools
如果没有安装,则执行下面命令安装。
yuminstall-ykexec-tools
systemctlenablekdump
首先查看参数是否已经设置。
grepcrashkernel/proc/cmdline
如果有显示,则表示已经设置,如果没有显示,则需要重新设置。
GRUB_TIMEOUT=5GRUB_DEFAULT=savedGRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="console"GRUB_CMDLINE_LINUX="crashkernel=autord.lvm.lv=rhel00/rootrd.lvm.lv=rhel00/swaprhgbquiet"GRUB_DISABLE_RECOVERY="true"找到GRUB_CMDLINE_LINUX参数,添加crashkernel=auto,其他内容不变。
grub2-mkconfig-o/boot/grub2/grub.cfg
path/var/crash默认是保存在/var/crash目录下,如果要保存到其他目录,则改成对应的目录,
修改/etc/kdump.conf文件,添加如下参数,如果存在则无需添加。
core_collectormakedumpfile-d31-c-c表示压缩vmcore文件,
-d表示过滤掉部分无效的内存数据,可以根据需要调整,一般31即可,31是由如下的值与计算而成。
zeropages=1cachepages=2cacheprivate=4userpages=8freepages=16执行如下命令重启系统,使以上配置生效。reboot
cat/proc/cmdline|grepcrashkernel
BOOT_IMAGE=/boot/vmlinuz-3.10.0-514.44.5.10.h142.x86_64root=UUID=6407d6ac-c761-43cc-a9dd-1383de3fc995rocrash_kexec_post_notifierssoftlockup_panic=1panic=3reserve_kbox_mem=16Mnmi_watchdog=1rd.shell=0fsck.mode=autofsck.repair=yesnet.ifnames=0spectre_v2=offnoptinoibrsnoibpbcrashkernel=autoLANG=en_US.UTF-8执行以下命令,并确认回显信息中的配置信息正确。grepcore_collector/etc/kdump.conf|grep-v^"#"
core_collectormakedumpfile-l--message-level1-d31执行以下命令,并确认回显信息中的配置信息正确。greppath/etc/kdump.conf|grep-v^"#"
path/var/crash执行以下命令,并确认回显信息中的Active的状态为active(exited)。systemctlstatuskdump
●kdump.service-CrashrecoverykernelarmingLoaded:loaded(/usr/lib/systemd/system/kdump.service;enabled;vendorpreset:enabled)Active:active(exited)sinceTue2019-04-0919:30:24CST;8minagoProcess:495ExecStart=/usr/bin/kdumpctlstart(code=exited,status=0/SUCCESS)MainPID:495(code=exited,status=0/SUCCESS)CGroup:/system.slice/system-hostos.slice/kdump.service执行测试命令。echoc>/proc/sysrq-trigger
这会触发kdump,重新启动,并将生成的vmcore文件保存的path参数指定的位置。
到所在环境path参数所指定的路径查看是否有vmcore文件生成,例如/var/crash/目录。
ll/var/crash/
可以看到生成了一个文件夹,里面有vmcore文件。
在使用文档中是否遇到以下问题
意见反馈(选填)
请至少选择一项反馈信息并填写问题反馈
字符长度不能超过500
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨
多渠道服务支持
提供免费备案服务
云业务全流程支持
享无忧退订服务
优化改进建议
4000955988
950808
扫描二维码
华为云微博
华为云App
扫描下载华为云App
域名注册服务机构许可:黔D3-20230001代理域名注册服务机构:新网、西数