1. 检查是否已安装 sysstat
首先,确保 sysstat 已安装:

sudo apt install sysstat

2. 启用 sysstat 数据收集
在 Debian 系统中,sysstat 的数据收集功能默认可能是禁用的。你需要通过编辑配置文件来启用它。

编辑 /etc/default/sysstat 文件:

sudo nano /etc/default/sysstat

将以下内容中的 ENABLED 改为 true:

ENABLED="true"

3. 重新启动 sysstat 服务
启用数据收集后,重新启动 sysstat 服务:

sudo systemctl restart sysstat

4. 检查定时任务 (cron)
sysstat 的数据收集是通过 cron 自动进行的。确保 /etc/cron.d/sysstat 中配置了正确的定时任务。

默认情况下,应该有如下的 cron 设置,每 10 分钟收集一次数据:

# Activity reports every 10 minutes
*/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

如果没有看到类似的内容,可能是 sysstat 的定时任务没有正确配置,可以手动添加。

5. 等待一段时间以收集数据
sysstat 数据需要时间收集,因此在配置好后等待一段时间,再检查 /var/log/sysstat/ 目录中的 sa 文件是否生成:

ls /var/log/sysstat/

这些文件 (saXX,其中 XX 表示日期) 是 sysstat 收集的系统统计数据。

6. 使用 sar 查看历史数据
一旦有了 saXX 文件,你就可以通过 sar 命令查看历史数据。例如,要查看某天的内存使用情况(如9月30日),使用:

sar -r -f /var/log/sysstat/sa30

7. 确保 sysstat 的数据收集通过 cron 自动进行
你可以检查 /etc/cron.d/sysstat 文件中的配置是否正确。下面是具体的步骤:

1). 打开 /etc/cron.d/sysstat 文件
使用文本编辑器(如 nano)打开 /etc/cron.d/sysstat 文件:

sudo nano /etc/cron.d/sysstat

2). 检查 cron 配置
确保文件中有以下内容,表示 sysstat 每 10 分钟收集一次数据:

# Activity reports every 10 minutes
*/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

配置解释:

*/10:表示每 10 分钟执行一次任务。
root:任务以 root 用户身份执行。
debian-sa1 1 1:这是 sysstat 的数据收集命令,每次执行采集 1 次数据。

3). 保存并退出
如果该文件已经存在并且配置正确,请直接退出。如果文件中没有这些内容,或者它们不正确,请修改并保存。

4). 重新启动 cron 服务
为了确保修改生效,重新启动 cron 服务:

sudo systemctl restart cron

8. 确认 sysstat 服务是否启动
你还需要确保 sysstat 服务已启动并启用数据收集功能:

sudo systemctl enable sysstat
sudo systemctl restart sysstat

9. 检查 sysstat 数据是否正在收集
等待 10 分钟,之后可以检查 /var/log/sysstat/ 目录,查看是否有新的 saXX 文件生成:

ls /var/log/sysstat/

如果一切正常,你会看到 sa 文件(例如 sa30,表示30号当天的记录)。这些文件是系统资源使用的历史数据。