本文以操作系统为 CentOS 8为例。
1. 安装
执行命令:yum install atop -y 页面提示信息为 Complete! 时说明已成功安装。
2. 配置
2.1 监控周期和日志保留时长
执行命令:vim /etc/sysconfig/atop ,修改以下配置:
- 将 LOGINTERVAL=600 修改为 LOGINTERVAL=30,表示将默认的600s监控周期修改为30s。建议修改为30s,您可结合实际情况进行修改。
- 将 LOGGENERATIONS=28 修改为 LOGGENERATIONS=7,表示将默认的日志保留时间28天修改为7天。为避免 atop 长时间运行占用太多磁盘空间,建议修改为7天,您可结合实际情况进行修改。
修改完成后如下图所示:
2.3 日志切割
atop很神奇的,不会自动按日切割日志,只能搞点骚操作了。
通过在每日0点重启服务来切割日志。
执行命令:vi /etc/crontab ,最下面加入一行:0 0 * * * root systemctl try-restart atop ,然后执行命令让定时任务生效:service crond restart
2.4 安装网络监控模块netatop(默认不安装)
2.4.1 安装前置模块
执行命令:yum install elfutils-libelf-devel
2.4.2 下载netatop文件
执行命令:curl -LO https://www.atoptool.nl/download/netatop-3.1.tar.gz
2.4.3 解压缩netatop文件
执行命令:tar -zxf netatop-3.1.tar.gz
2.4.4 编译
执行命令:make
2.4.5 安装
执行命令:make install
2.4.6 可能的报错
/lib/modules/XXXXXXXXX/build/: No such file or directory
这个问题应该是系统没有安装内核开发包,可以看下/usr/src/kernels/
- 如果这个目录是空的,就说明没有安装 内核开发包,
yum install kernel-devel - 如果这个目录非空,你就需要重新做一下连接,
ln -s /lib/modules/XXXXXXXXX/build/ /usr/src/kernels/XXXXXXXX/ ,XXXXX 根据不同系统来修改,大概目录就是那。
2.4.7 netatop启动
使用systemctl体系来搞的,通用的status,start,stop等
- 启动,
systemctl start netatop - 状态,
systemctl status netatop - 停止,
systemctl stop netatop
注意:如果atop先启动,然后再启动netatop,暂时是收集不到网络日志的,建议删了当天日志,然后重启atop重新收集
3. atop启动命令
使用systemctl体系来搞的,通用的status,start,stop等
- 启动,
systemctl start atop - 状态,
systemctl status atop - 停止,
systemctl stop atop - 重启,
systemctl restart atop
4. 分析 atop
atop 启动后,会将采集的数据记录在 /var/log/atop 目录的日志文件中。请获取实际的日志文件名,执行以下命令,atop -r /var/log/atop/atop_2021xxxx
4.1 atop 常用命令
在打开日志文件后,使用以下命令筛选所需数据:
- c:按照进程的 CPU 使用率降序筛选。
- m:按照进程的内存使用率降序筛选。
- d:按照进程的磁盘使用率降序筛选。
- a:按照进程资源综合使用率进行降序筛选。
- n:按照进程的网络使用率进行降序筛选(使用此命令需安装额外的内核模块,默认不支持)。
- t:跳转到下一个监控采集点。
- T:跳转到上一个监控采集点。
- b:指定时间点,格式为 YYYYMMDDhhmm。
- g:按 CPU 使用率排序,默认排序方式
- y:查看线程信息
- j:查看 container 聚合信息
over,enjoy!
最后,字节基于atop上加了新特性的atop,支持查看虚拟主机的数据,即一个物理机拆分4台,分别查看这4台的数据而不是混在一起。 https://blog.csdn.net/ByteDanceTech/article/details/122007542
|