华为云服务器怎样配置Linux分析工具:atop和kdump_云淘科技
操作场景
本节操作介绍atop和kdump的配置方法。
不同的Linux版本使用的atop工具版本不同,因此配置方法稍微有所不同。
配置atop:
atop简介
CentOS 8、RedHat8系列操作系统配置atop
CentOS 7、RedHat7、EulerOS系列操作系统配置atop
SUSE 15、SUSE 12系列操作系统配置atop
使用源码方式安装(适用于SUSE、Fedora、Debian、Ubuntu等系列操作系统)
配置kdump:
配置kdump使用须知
kdump简介
配置kdump操作步骤
检查kdump配置是否生效
atop简介
atop是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,可获取相应的atop日志文件进行分析。
CentOS 8、RedHat8系列操作系统配置atop
下载atop安装包。
# wget https://www.atoptool.nl/download/atop-2.6.0-1.el8.x86_64.rpm
执行以下命令安装atop。
# rpm -ivh atop-2.6.0-1.el8.x86_64.rpm
编辑配置文件,修改采样周期。
# vi /etc/default/atop
修改如下配置参数,修改后保存并退出。
LOGINTERVAL默认是600,可以修改成15,单位秒。
默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为3,单位为天。
LOGINTERVAL=15 LOGGENERATIONS=3
重启atop服务。
# systemctl restart atop
检查是否启动成功,active(running) 表示运行正常。
# systemctl status atop
atop.service - Atop advanced performance monitor Loaded: loaded (/usr/lib/systemd/system/atop.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2021-06-19 14:46:10 CST; 8s ago Docs: man:atop(1) Process: 6391 ExecStartPost=/usr/bin/find ${LOGPATH} -name atop_* -mtime +${LOGGENERATIONS} -exec rm -v {} ; (code=exited, status=0/SUCCESS) Process: 6388 ExecStartPre=/bin/sh -c test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS" (code=exited, status=0/SUCCESS) Process: 6387 ExecStartPre=/bin/sh -c test -n "$LOGINTERVAL" -a "$LOGINTERVAL" -eq "$LOGINTERVAL" (code=exited, status=0/SUCCESS) Main PID: 6390 (atop) Tasks: 1 (limit: 23716) Memory: 4.1M CGroup: /system.slice/atop.service └─6390 /usr/bin/atop -w /var/log/atop/atop_20210619 15 Jun 19 14:46:10 ecs-centos8 systemd[1]: atop.service: Succeeded. Jun 19 14:46:10 ecs-centos8 systemd[1]: Stopped Atop advanced performance monitor. Jun 19 14:46:10 ecs-centos8 systemd[1]: Starting Atop advanced performance monitor... Jun 19 14:46:10 ecs-centos8 systemd[1]: Started Atop advanced performance monitor.
CentOS 7、RedHat7、EulerOS系列操作系统配置atop
下载atop安装包。
# wget https://www.atoptool.nl/download/atop-2.6.0-1.el7.x86_64.rpm
将atop-2.6.0-1.el7.x86_64.rpm上传到目标主机。
安装atop。
# rpm -ivh atop-2.6.0-1.el7.x86_64.rpm –nodeps
编辑配置文件,修改采样周期。
# vi /etc/default/atop
修改如下配置参数,修改后保存并退出。
LOGINTERVAL默认是600,可以修改成15,单位秒。
默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为3,单位为天。
LOGINTERVAL=15 LOGGENERATIONS=3
启动atop服务。
# systemctl start atop
检查是否启动成功,active(running) 表示运行正常。
# systemctl status atop
atop会根据所设定的周期去采样一次系统数据,并保存在/var/log/atop/目录
atop.service - Atop advanced performance monitor Loaded: loaded (/usr/lib/systemd/system/atop.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2021-06-19 11:49:47 CST; 2h 27min ago Docs: man:atop(1) Process: 8231 ExecStartPost=/usr/bin/find ${LOGPATH} -name atop_* -mtime +${LOGGENERATIONS} -exec rm -v {} ; (code=exited, status=0/SUCCESS) Process: 8225 ExecStartPre=/bin/sh -c test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS" (code=exited, status=0/SUCCESS) Process: 8223 ExecStartPre=/bin/sh -c test -n "$LOGINTERVAL" -a "$LOGINTERVAL" -eq "$LOGINTERVAL" (code=exited, status=0/SUCCESS) Main PID: 8229 (atop) CGroup: /system.slice/atop.service └─8229 /usr/bin/atop -w /var/log/atop/atop_20210619 15 Jun 19 11:49:47 ecs-centos7 systemd[1]: Stopped Atop advanced performance monitor. Jun 19 11:49:47 ecs-centos7 systemd[1]: Starting Atop advanced performance monitor... Jun 19 11:49:47 ecs-centos7 systemd[1]: Started Atop advanced performance monitor.
SUSE 15、SUSE 12系列操作系统配置atop
下载atop源码安装包。
# wget https://www.atoptool.nl/download/atop-2.6.0-1.src.rpm
执行以下命令安装源码atop。
# rpm -ivh atop-2.6.0-1.src.rpm
安装编译atop依赖软件包
# zypper -n install rpm-build ncurses-devel zlib-devel
执行以下命令编译atop
# cd /usr/src/packages/SPECS
# rpmbuild -bb atop-2.6.0.spec
执行以下命令安装atop
# cd /usr/src/packages/RPMS/x86_64
# rpm -ivh atop-2.6.0-1.x86_64.rpm
编辑配置文件,修改采样周期。
# vi /etc/default/atop
修改如下配置参数,修改后保存并退出。
LOGINTERVAL默认是600,可以修改成15,单位秒。
默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为3,单位为天。
LOGINTERVAL=15 LOGGENERATIONS=3
重启atop服务。
# systemctl restart atop
检查是否启动成功,active(running) 表示运行正常。
# systemctl status atop
atop.service - Atop advanced performance monitor Loaded: loaded (/usr/lib/systemd/system/atop.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2021-06-19 16:50:01 CST; 6s ago Docs: man:atop(1) Process: 2242 ExecStartPost=/usr/bin/find ${LOGPATH} -name atop_* -mtime +${LOGGENERATIONS} -exec rm -v {} ; (code=exited, status=0/SUCCESS) Process: 2240 ExecStartPre=/bin/sh -c test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS" (code=exited, status=0/SUCCESS) Process: 2239 ExecStartPre=/bin/sh -c test -n "$LOGINTERVAL" -a "$LOGINTERVAL" -eq "$LOGINTERVAL" (code=exited, status=0/SUCCESS) Main PID: 2241 (atop) Tasks: 1 (limit: 4915) CGroup: /system.slice/atop.service └─2241 /usr/bin/atop -w /var/log/atop/atop_20210619 15 Jun 19 16:50:01 ecs-suse15 systemd[1]: Starting Atop advanced performance monitor... Jun 19 16:50:01 ecs-suse15 systemd[1]: Started Atop advanced performance monitor.
使用源码方式安装(适用于SUSE、Fedora、Debian、Ubuntu等系列操作系统)
下载atop源码。
# wget https://www.atoptool.nl/download/atop-2.6.0.tar.gz
执行以下命令解压源码atop。
# tar -zxvf atop-2.6.0.tar.gz
执行以下命令查看systemctl版本。
# systemctl –version
如果版本大于等于220,直接进行下一步。
否则需要修改atop的Makefile文件,删除–now参数。
# vi atop-2.6.0/Makefile
删除systemctl命令后的–now参数
then /bin/systemctl disable atop 2> /dev/null; \ /bin/systemctl disable atopacct 2> /dev/null; \ /bin/systemctl daemon-reload; \ /bin/systemctl enable atopacct; \ /bin/systemctl enable atop; \ /bin/systemctl enable atop-rotate.timer; \
安装编译atop依赖软件包。
SUSE12、SUSE15系列操作系统执行以下命令安装:
# zypper -n install make gcc zlib-devel ncurses-devel
Fedora系列操作系统执行以下命令安装:
# yum install make gcc zlib-devel ncurses-devel -y
Debian9、Debian10、Ubuntu系列操作系统执行以下命令安装:
# apt install make gcc zlib1g-dev libncurses5-dev libncursesw5-dev -y
执行以下命令编译并安装atop。
# cd atop-2.6.0
# make systemdinstall
编辑配置文件,修改采样周期。
# vi /etc/default/atop
添加如下配置参数,修改后保存并退出。
LOGINTERVAL默认是600,可以修改成15,单位秒。
默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为3,单位为天。
LOGOPTS="" LOGINTERVAL=15 LOGGENERATIONS=3 LOGPATH=/var/log/atop
重启atop服务。
# systemctl restart atop
检查是否启动成功,active(running) 表示运行正常。
# systemctl status atop
atop.service - Atop advanced performance monitor Loaded: loaded (/lib/systemd/system/atop.service; enabled) Active: active (running) since Sun 2021-07-25 19:29:40 CST; 4s ago Docs: man:atop(1) Process: 5192 ExecStartPost=/usr/bin/find ${LOGPATH} -name atop_* -mtime +${LOGGENERATIONS} -exec rm -v {} ; (code=exited, status=0/SUCCESS) Process: 5189 ExecStartPre=/bin/sh -c test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS" (code=exited, status=0/SUCCESS) Process: 5188 ExecStartPre=/bin/sh -c test -n "$LOGINTERVAL" -a "$LOGINTERVAL" -eq "$LOGINTERVAL" (code=exited, status=0/SUCCESS) Main PID: 5191 (atop) CGroup: /system.slice/atop.service └─5191 /usr/bin/atop -w /var/log/atop/atop_20210725 15 Jul 25 19:29:40 atop systemd[1]: Starting Atop advanced performance monitor... Jul 25 19:29:40 atop systemd[1]: Started Atop advanced performance monitor.
配置kdump使用须知
配置kdump的操作适用于EulerOS以及CentOS 7系列Linux产品, 且云服务器的虚拟化类型为KVM。了解更多
kdump简介
kdump是系统崩溃的时候,用来转储运行内存的一个工具。系统一旦崩溃,内核就无法正常工作了,这个时候将由kdump提供一个用于捕获当前运行信息的内核,该内核会将此时内存中的所有运行状态和数据信息收集到一个dump core文件中以便之后分析崩溃原因。
配置kdump操作步骤
查看是否已经安装kexec-tools。
# rpm -q kexec-tools
如果没有安装,则执行下面命令安装。
# yum install -y kexec-tools
开启kdump默认启动。
# systemctl enable kdump
设置craskkernel参数,设置这个参数的目的是预留内存给capture kernel。
首先查看参数是否已经设置。
# grep crashkernel /proc/cmdline
如果有显示,则表示已经设置,如果没有显示,则需要重新设置。
设置crashkernel,编辑/etc/default/grub文件。
GRUB_TIMEOUT=5 GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel00/root rd.lvm.lv=rhel00/swap rhgb quiet" GRUB_DISABLE_RECOVERY="true"
找到GRUB_CMDLINE_LINUX参数,添加crashkernel=auto,其他内容不变。
执行grub命令,使以上配置生效。
# grub2-mkconfig -o /boot/grub2/grub.cfg
打开/etc/kdump.conf文件中找到“path”参数,添加以下内容。
path /var/crash
默认是保存在/var/crash目录下,如果要保存到其他目录,则改成对应的目录,
例如保存在/home/kdump下,则改成:
path /home/kdump
要确保指定的路径有足够的空间保存vmcore,建议剩余空间不小于RAM大小;也可以保存在SAN,nfs等共享设备上。
设置转存vmcore级别。
修改/etc/kdump.conf文件,添加如下参数,如果存在则无需添加。
core_collector makedumpfile -d 31 -c
-c表示压缩vmcore文件,
-d表示过滤掉部分无效的内存数据,可以根据需要调整,一般31即可,31是由如下的值与计算而成。
zero pages = 1 cache pages = 2 cache private = 4 user pages = 8 free pages = 16
执行如下命令重启系统,使以上配置生效。
# reboot
检查kdump配置是否生效
执行以下命令,确认回显信息中crashkernel=auto
# cat /proc/cmdline |grep crashkernel
BOOT_IMAGE=/boot/vmlinuz-3.10.0-514.44.5.10.h142.x86_64 root=UUID=6407d6ac-c761-43cc-a9dd-1383de3fc995 ro crash_kexec_post_notifiers softlockup_panic=1 panic=3 reserve_kbox_mem=16M nmi_watchdog=1 rd.shell=0 fsck.mode=auto fsck.repair=yes net.ifnames=0 spectre_v2=off nopti noibrs noibpb crashkernel=auto LANG=en_US.UTF-8
执行以下命令,并确认回显信息中的配置信息正确。
# grep core_collector /etc/kdump.conf |grep -v ^”#”
core_collector makedumpfile -l --message-level 1 -d 31
执行以下命令,并确认回显信息中的配置信息正确。
# grep path /etc/kdump.conf |grep -v ^”#”
path /var/crash
执行以下命令,并确认回显信息中的Active的状态为active (exited)。
# systemctl status kdump
● kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled) Active: active (exited) since Tue 2019-04-09 19:30:24 CST; 8min ago Process: 495 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS) Main PID: 495 (code=exited, status=0/SUCCESS) CGroup: /system.slice/system-hostos.slice/kdump.service
执行测试命令。
# echo c > /proc/sysrq-trigger
这会触发kdump,重新启动,并将生成的vmcore文件保存的path参数指定的位置。
检查vmcore是否生成。
到所在环境path参数所指定的路径查看是否有vmcore文件生成,例如/var/crash/目录。
# ll /var/crash/
可以看到生成了一个文件夹,里面有vmcore文件。
父主题: 操作系统类(Linux)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家