在Linux系统运维过程中,实时且全面地监控系统资源与进程状态至关重要。atop工具作为一款强大的监控利器,能够帮助我们轻松实现这一目标。本文将详细介绍如何在Linux实例中安装、配置和使用atop监控工具。
一、atop工具介绍
atop是专门用于监控Linux系统资源与进程的工具,它能记录系统和进程的活动,并报告所有进程的运行情况。该工具采集的数据覆盖CPU、内存、磁盘、网络等资源使用情况以及进程状态,还可将数据以日志文件形式保存到磁盘。对于每个进程,我们能获取到CPU使用率、内存增长、磁盘使用率、优先级、用户名、状态及退出码等关键信息。此外,通过atop配置文件,我们可以自定义日志采集频率、日志文件存储路径和轮转策略等参数。
二、安装atop工具
不同的Linux发行版安装atop的方式略有不同,下面以常见的操作系统为例进行介绍:
-
Alibaba Cloud Linux 3/2、CentOS 7/8、Fedora、Rocky Linux 9:
- 执行安装命令:
sudo yum install -y atop
- 启动atop服务:
sudo systemctl start atop
- 执行安装命令:
-
Ubuntu / Debian:
- 更新软件源列表:
sudo apt update
- 执行安装命令:
sudo apt install -y atop
- 启动atop服务:
sudo systemctl start atop
- 更新软件源列表:
-
CentOS Stream 9:
- 下载并安装:
sudo wget https://www.atoptool.nl/download/atop-2.11.0-1.el9.x86_64.rpm && sudo rpm -i atop-2.11.0-1.el9.x86_64.rpm
- 启动atop服务:
sudo systemctl start atop
- 下载并安装:
-
openSUSE:
- 执行安装命令:
sudo zypper install -y atop atop-daemon
- 启动atop服务:
sudo systemctl start atop
- 执行安装命令:
如果上述列举的操作系统未包含您使用的发行版,可以访问atop官方网站获取安装信息。
三、配置监控周期及日志保留时间
- 配置文件位置:在Alibaba Cloud Linux 3/2、CentOS 7/8和Fedora系统中,atop的配置文件是
/etc/sysconfig/atop
;在Ubuntu、Debian和openSUSE系统中,配置文件是/etc/default/atop
。 - 默认配置参数说明
LOGOPTS
:用于控制日志文件记录选项,默认为空。LOGINTERVAL
:监控周期,默认600秒。如果要采集历史日志追踪问题,建议根据实际需求调整该频率。LOGGENERATIONS
:日志保留时间,默认28天。LOGPATH
:日志文件存储路径,默认/var/log/atop
。
- 配置步骤
- 执行命令打开配置文件:
- 在Alibaba Cloud Linux 3/2 、CentOS 7/8、Fedora系统中:
sudo vim /etc/sysconfig/atop
- 在Ubuntu、Debian、openSUSE、CentOS Stream 9、Rocky Linux 9系统中:
sudo vim /etc/default/atop
- 在Alibaba Cloud Linux 3/2 、CentOS 7/8、Fedora系统中:
- 按
i
进入编辑模式,根据需求调整配置参数。例如,将监控周期修改为30秒,日志保留时间设定为7天,日志路径维持默认: - 按
Esc
键,输入:wq
,保存并退出编辑。 - 重启atop服务使配置生效:
sudo systemctl restart atop
- 执行命令打开配置文件:
LOGOPTS=""
LOGINTERVAL=30
LOGGENERATIONS=7
LOGPATH=/var/log/atop
四、使用atop工具
-
常用命令介绍:在交互命令模式下,有以下常用命令:
g
:切换回默认的综合输出视图。c
:显示进程列完整命令行。m
:按照进程内存使用率进行降序筛选。d
:按照进程磁盘使用率进行降序筛选。a
:按照进程资源综合使用率进行降序筛选。n
:按照进程网络使用率进行降序筛选。t
:跳转到下一个监控采集点。T
:跳转到上一个监控采集点。b
:指定时间点,格式为YYYYMMDDhhmm
。
-
资源监控字段含义介绍
- ATOP:主机名、信息采样日期和时间点。
- PRC:进程整体运行情况,包括内核态和用户态运行时间、进程总数、不同状态进程数等。
- CPU:CPU整体使用情况,各字段数字相加结果为
N*100%
(N为CPU核数),包含内核态、用户态、中断、空闲、等待磁盘IO等时间比例。 - CPL:CPU负载情况,如过去1分钟、5分钟和15分钟内运行队列中的平均进程数量、上下文切换次数、中断发生次数。
- MEM:内存使用情况,包括物理内存总量、空闲内存、页缓存内存、文件缓存内存、内核占用内存等。
- SWP:交换空间使用情况,包含交换区总量和空闲交换空间大小。
- PAG:虚拟内存分页情况,如换入和换出内存页数。
- DSK:磁盘使用情况,每个磁盘设备对应一列,显示设备标识、繁忙状态时间比例、读写请求数量。
- NET:网络状况,展示传输层TCP和UDP、IP层以及各活动网口的接收和发送包大小。
-
查看实时系统指标
- 每5秒查看一次系统指标:
atop 5
- 查看当前时间之后5分钟内(共30次,间隔10秒)的系统指标:
atop -M 10 30
- 查看当前时间之后10分钟(10次,间隔60秒)的系统指标,并将结果写入文件:
atop -M 60 10 > /log/atop.mem
- 每5秒查看一次系统指标:
-
查看历史指标日志:atop启动后,采集记录默认存放在
/var/log/atop
目录下。查看时需注意指定日期的日志文件必须存在,否则会报错。- 查看当天历史指标日志:
atop -r
- 查看昨天历史指标日志:
atop -r y
- 查看指定日期内的历史指标日志,如2024年11月06日:
atop -r 20241106
- 查看指定日期内自指定时间起的历史指标日志,如2024年11月06日14:00起:
atop -r 20241106 -b 14:00
- 查看指定日期内指定时间段的历史指标日志,如2024年11月5日00:04至00:08:
atop -r 20241105 -b 00:04 -e 00:08
- 查看当天历史指标日志:
-
查看系统活动报告
- 查看当前系统在1分钟内(12次,间隔5秒)的CPU利用率报告:
atopsar -c 5 12
- 查看当天指定时间段的内存指标报告,如18:00至18:01:
atopsar -m -b 18:00 -e 18:01
- 查看指定日期内指定时间段的内存指标报告,如2024年11月5日18:00至18:01:
atopsar -m -r 20241105 -b 18:00 -e 18:01
- 查看当前系统在1分钟内(12次,间隔5秒)的CPU利用率报告:
五、其他操作
-
配置天级别日志轮转策略:如果希望每天生成一个atop指标日志文件,可以执行以下操作:
- (可选)根据需求调整监控周期、日志保留时间及日志存储路径。
- 执行命令设置每日日志轮转相关服务开机启动并启动服务:
sudo systemctl enable --now atop atopacct atop-rotate.timer
- 如果业务对日志处理有更复杂的需求,还可以结合logrotate或自定义脚本实现日志管理。
-
加载可选的netatop内核模块:如果需要监测网络使用率,可以安装netatop模块(atop中该模块未默认安装)。以Alibaba Cloud Linux 3系统为例:
- 安装内核开发包及编译所需软件环境:
sudo yum install -y kernel-devel dkms elfutils-libelf-devel
- 下载最新版本netatop源码至指定目录:
cd /usr/src/ && sudo wget https://www.atoptool.nl/download/netatop-3.2.2.tar.gz --no-check-certificate
- 解压源码并进入源码目录:
sudo tar -zxvf netatop-3.2.2.tar.gz && cd netatop-3.2.2
- 基于源码构建并安装模块和守护程序:
sudo make && sudo make install
- 启动netatop服务:
sudo systemctl start netatop
- 安装内核开发包及编译所需软件环境:
atop工具功能强大且使用灵活,通过合理安装、配置和使用它,我们能够更好地了解Linux系统的运行状况,及时发现并解决潜在问题。希望本文能帮助大家在Linux系统监控方面更上一层楼。