用atop工具监控Linux系统指标:安装、配置与使用全攻略

在Linux系统运维过程中,实时且全面地监控系统资源与进程状态至关重要。atop工具作为一款强大的监控利器,能够帮助我们轻松实现这一目标。本文将详细介绍如何在Linux实例中安装、配置和使用atop监控工具。

一、atop工具介绍

atop是专门用于监控Linux系统资源与进程的工具,它能记录系统和进程的活动,并报告所有进程的运行情况。该工具采集的数据覆盖CPU、内存、磁盘、网络等资源使用情况以及进程状态,还可将数据以日志文件形式保存到磁盘。对于每个进程,我们能获取到CPU使用率、内存增长、磁盘使用率、优先级、用户名、状态及退出码等关键信息。此外,通过atop配置文件,我们可以自定义日志采集频率、日志文件存储路径和轮转策略等参数。

二、安装atop工具

不同的Linux发行版安装atop的方式略有不同,下面以常见的操作系统为例进行介绍:

  1. Alibaba Cloud Linux 3/2、CentOS 7/8、Fedora、Rocky Linux 9

    • 执行安装命令:sudo yum install -y atop
    • 启动atop服务:sudo systemctl start atop
  2. Ubuntu / Debian

    • 更新软件源列表:sudo apt update
    • 执行安装命令:sudo apt install -y atop
    • 启动atop服务:sudo systemctl start atop
  3. 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
  4. openSUSE

    • 执行安装命令:sudo zypper install -y atop atop-daemon
    • 启动atop服务:sudo systemctl start atop

如果上述列举的操作系统未包含您使用的发行版,可以访问atop官方网站获取安装信息。

三、配置监控周期及日志保留时间

  1. 配置文件位置:在Alibaba Cloud Linux 3/2、CentOS 7/8和Fedora系统中,atop的配置文件是/etc/sysconfig/atop;在Ubuntu、Debian和openSUSE系统中,配置文件是/etc/default/atop
  2. 默认配置参数说明
    • LOGOPTS:用于控制日志文件记录选项,默认为空。
    • LOGINTERVAL:监控周期,默认600秒。如果要采集历史日志追踪问题,建议根据实际需求调整该频率。
    • LOGGENERATIONS:日志保留时间,默认28天。
    • LOGPATH:日志文件存储路径,默认/var/log/atop
  3. 配置步骤
    • 执行命令打开配置文件:
      • 在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
    • i进入编辑模式,根据需求调整配置参数。例如,将监控周期修改为30秒,日志保留时间设定为7天,日志路径维持默认:
    • Esc键,输入:wq,保存并退出编辑。
    • 重启atop服务使配置生效:sudo systemctl restart atop
LOGOPTS=""
LOGINTERVAL=30
LOGGENERATIONS=7
LOGPATH=/var/log/atop 

四、使用atop工具

  1. 常用命令介绍:在交互命令模式下,有以下常用命令:

    • g:切换回默认的综合输出视图。
    • c:显示进程列完整命令行。
    • m:按照进程内存使用率进行降序筛选。
    • d:按照进程磁盘使用率进行降序筛选。
    • a:按照进程资源综合使用率进行降序筛选。
    • n:按照进程网络使用率进行降序筛选。
    • t:跳转到下一个监控采集点。
    • T:跳转到上一个监控采集点。
    • b:指定时间点,格式为YYYYMMDDhhmm
  2. 资源监控字段含义介绍

    • ATOP:主机名、信息采样日期和时间点。
    • PRC:进程整体运行情况,包括内核态和用户态运行时间、进程总数、不同状态进程数等。
    • CPU:CPU整体使用情况,各字段数字相加结果为N*100%(N为CPU核数),包含内核态、用户态、中断、空闲、等待磁盘IO等时间比例。
    • CPL:CPU负载情况,如过去1分钟、5分钟和15分钟内运行队列中的平均进程数量、上下文切换次数、中断发生次数。
    • MEM:内存使用情况,包括物理内存总量、空闲内存、页缓存内存、文件缓存内存、内核占用内存等。
    • SWP:交换空间使用情况,包含交换区总量和空闲交换空间大小。
    • PAG:虚拟内存分页情况,如换入和换出内存页数。
    • DSK:磁盘使用情况,每个磁盘设备对应一列,显示设备标识、繁忙状态时间比例、读写请求数量。
    • NET:网络状况,展示传输层TCP和UDP、IP层以及各活动网口的接收和发送包大小。
  3. 查看实时系统指标

    • 每5秒查看一次系统指标:atop 5
    • 查看当前时间之后5分钟内(共30次,间隔10秒)的系统指标:atop -M 10 30
    • 查看当前时间之后10分钟(10次,间隔60秒)的系统指标,并将结果写入文件:atop -M 60 10 > /log/atop.mem
  4. 查看历史指标日志: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
  5. 查看系统活动报告

    • 查看当前系统在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. 配置天级别日志轮转策略:如果希望每天生成一个atop指标日志文件,可以执行以下操作:

    • (可选)根据需求调整监控周期、日志保留时间及日志存储路径。
    • 执行命令设置每日日志轮转相关服务开机启动并启动服务:sudo systemctl enable --now atop atopacct atop-rotate.timer
    • 如果业务对日志处理有更复杂的需求,还可以结合logrotate或自定义脚本实现日志管理。
  2. 加载可选的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系统监控方面更上一层楼。

六、参考链接

金融IT程序员的瞎折腾、日常生活的碎碎念
使用 Hugo 构建
主题 StackJimmy 设计