sar 服务已停止收集数据

sar 服务已停止收集数据

我们一直sar在我们的 Ubuntu 服务器上工作,但是在服务器上做了一些工作,现在它已停止记录当天的日志文件。

sar -b 5 5

这表明还sar活着,并且正在监控数据,但是

ubuntu@testing:/var/log/sysstat$ sar

输出:

Linux 5.4.0-1063-azure (server)     02/22/22    _x86_64_    (4 CPU)

10:22:05     LINUX RESTART  (4 CPU)

10:22:46     LINUX RESTART  (4 CPU)

10:24:25     LINUX RESTART  (4 CPU)

16:34:04     LINUX RESTART  (4 CPU)

cron 和sysstat配置没有改变。

*/1 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

为什么统计数据没有添加到日志中?

答案1

比较两个安装,一个是从 Debian 10 升级而来的 Debian 11,另一个是全新的 Debian 11,两者使用 systemd

  • 在 Debian 10 和 11 上,我已经启用sysstat-collectsysstat-summary
  • 在新的 Debian 11 上,我没有

因此,如果你使用systemd,您应该重新配置sysstat,将通过 systemd 而不是通过 crontab 运行:

dpkg-reconfigure sysstat

选择“是”。

直接编辑/etc/default/sysstat(就像我到目前为止所做的那样)是一个错误:它不会更新 systemd 文件。

请注意,您将看到/etc/default/sysstat更新为ENABLED="true",但 cron 将不再运行(systemd 将按预期触发它)。

您可以使用以下方法检查一切是否正常:

systemctl status sysstat-collect.timer
systemctl status sysstat-summary.timer

应回复“活动:活动(等待)”

答案2

我遇到了同样的问题,就我的情况(Debian 11)而言,一个解决方案是在文件中更改debian-sa1为,因为在系统启用时将退出。sa1crondebian-sa1systemd

应用此 hack 之后,cron的配置文件sysstat将如下所示(/etc/cron.d/sysstat):

...
*/1 * * * * root command -v sa1 > /dev/null && sa1 1 1
...

编辑

作为伊万解释一下,要sysstat通过systemd而不是 来运行cron,我们可以手动启动sysstat-collect.timersysstat-summary.timer计时器,以防它们处于非活动状态:

systemctl start sysstat sysstat-collect.timer sysstat-summary.timer

并且让它们在系统启动时自动启动:

systemctl enable sysstat sysstat-collect.timer sysstat-summary.timer

最后,在解释了这些技巧之后,也许在这种情况下最好的解决方案是重新配置以使用而不是 来sysstat运行,这在systemdcron这个答案作者:Yvan。

相关内容