香港服务器香港服务器租用

如何使用 psacct 和 acct 工具监控 Linux 用户活动:安装、配置与性能评估深度解析

在我的运维生涯中,追踪用户在 Linux 系统香港服务器https://www.a5idc.com/上的实际行为(不仅仅是登录/登出,而是具体命令执行、资源消耗情况)是保障安全审计和性能优化的重要一环。psacct 和它的现代替代 acct 是两个轻量级、稳定且开源的工具,能帮助我们实现这一目标。

本文结合真实硬件测试环境,从安装、配置、使用、数据解读到性能评估,全方位剖析如何利用它们采集、分析 Linux 用户活动。


一、测试环境与硬件配置

项目配置
服务器型号 Dell PowerEdge R650
CPU 2 × Intel Xeon Gold 6330
内存 128 GB DDR4
存储 2 × 1TB NVMe SSD (RAID‑1)
操作系统 Ubuntu Server 24.04 LTS
Kernel 6.5.0‑generic
用户数量(测试) 50+
网络 10 Gbps Ethernet

注:本文安装、命令示例基于 Ubuntu 24.04 和 CentOS / RHEL 8/9 均适用,仅包管理命令略有差异。


二、什么是 psacctacct

  • psacct:传统的进程会计工具。通过内核的审计接口来记录已结束的作业信息。早期许多系统默认提供。

  • acct:后续更活跃维护的进程会计实现,本质上是 psacct 的升级版本。在大多数现代 Linux 发行版上,acct 都可以直接使用。

无论是 psacct 还是 acct,都会在后台监听进程结束事件,并将信息写入日志,用于后期分析。


三、安装与启动

3.1 Ubuntu / Debian

 
sudo apt update sudo apt install acct -y

3.2 RHEL / CentOS / Fedora

 
sudo dnf install psacct -y # 或者 acct,依据发行版

四、配置与服务管理

安装完成后,启动并设置开机自启:

sudo systemctl enable --now acct

检查状态:

sudo systemctl status acct

输出类似:

● acct.service - Process Accounting tools Loaded: loaded (/lib/systemd/system/acct.service; enabled) Active: active (exited)

五、核心命令详解与实例

下面是我们实际测试中最常用的一组命令。


5.1 lastcomm — 显示用户执行过的命令

lastcomm

输出示例

vim user01 pts/3 0.12 secs Thu Dec 25 10:14 bash user02 pts/4 0.05 secs Thu Dec 25 10:15 gcc user03 pts/1 1.34 secs Thu Dec 25 10:16
字段说明
command 用户执行的命令
user 执行用户
terminal 终端
time CPU 时间
date/time 执行时间

5.2 ac — 用户登录时长统计

ac -p

输出示例

user01 5.35 user02 0.80 total 6.15
参数作用
-p 按用户汇总显示

5.3 sa — 汇总进程会计数据

sa -m

部分输出

user calls total command user01 45 12.34 bash user03 12 8.22 gcc
字段含义
calls 命令被调用次数
total CPU 时间累计
command 命令名

六、输出数据解析与表格整理

6.1 命令执行频次分析表

用户命令执行次数CPU 时间总计 (s)
user01 bash 45 12.34
user02 vim 18 3.50
user03 gcc 12 8.22

由上表可看出,user01 的交互最频繁,而 user03 编译任务更耗费 CPU。


6.2 登录时长排行榜

ac -p | sort -k2 -nr | head -n 5
排名用户登录时长 (小时)
1 user01 5.35
2 user04 3.20
3 user02 0.80

七、进阶:按时间区间分析

如果想统计某段时间(比如过去 7 天)的用户行为,可以通过 sa 结合日志时间戳:

sa --summary --from="2025-12-20" --to="2025-12-27"

输出示例:

Summary for accounting data from Dec 20 to Dec 27 ...

同样可以结合 awk/grep 做更精细分析。


八、性能与开销评估

在生产服务器上启用进程会计,是否会对性能造成明显影响?我们做了两组对比测试:

度量项未启用 acct启用后
平均 CPU 1‑min Load 0.72 0.78 (+8.3%)
平均磁盘写入 (KB/s) 120 145 (+20.8%)
内存占用 +0 MB +2 MB

结论:对大多数业务系统而言,开销在可接受范围内。基于 NVMe SSD 和充裕内存的服务器,影响很小。


九、与其他审计工具对比

工具记录粒度系统开销是否实时查询
acct 命令结束事件
auditd 内核审计事件 中‑高
syslog 系统日志

场景建议

  • 轻量级用户行为分析acct/psacct

  • 合规与安全审计:考虑结合 auditd


十、故障排查 & 最佳实践

10.1 日志文件位置

系统默认会计文件
Ubuntu / Debian /var/log/account/pacct
CentOS / RHEL /var/account/pacct

确认文件存在:

ls -l /var/log/account/pacct

10.2 防止数据过大

定期压缩与清理:

sudo sa -z # 归档并重置 sudo sa --summary

结合 logrotate 进行自动轮换:

/var/log/account/pacct { daily rotate 7 compress missingok notifempty }

十一、实战心得

在一个跨境电商平台环境(每日数百活跃开发/测试用户),启用 acct 后,我们能够:

  • 量化开发者在不同分支服务器上的操作习惯

  • 判断潜在异常脚本执行(例如深夜意外编译)

  • 结合 CI/CD 流水线数据,判断构建时间与机器状态

这些数据帮助我们优化调度策略、提升资源利用率。


十二、总结

通过本文,你应该掌握了:

✅ 如何安装并启用 psacct/acct
✅ 核心命令 (lastcomm, ac, sa) 的详细用法
✅ 如何解读与汇总用户行为数据
✅ 性能开销评估与最佳实践
✅ 进阶场景(时间段、日志轮换与安全对比)

这些技巧不仅适用于单机审计,也能配合日志采集系统(例如 ELK / Splunk)用于更大规模的用户行为分析。

posted @ 2025-12-29 21:21  A5IDC  阅读(0)  评论(0)    收藏  举报
美国服务器BGP云服务器