我们一直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-collect
了sysstat-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
为,因为在系统启用时将退出。sa1
cron
debian-sa1
systemd
应用此 hack 之后,cron
的配置文件sysstat
将如下所示(/etc/cron.d/sysstat
):
...
*/1 * * * * root command -v sa1 > /dev/null && sa1 1 1
...
编辑:
作为伊万解释一下,要sysstat
通过systemd
而不是 来运行cron
,我们可以手动启动sysstat-collect.timer
和sysstat-summary.timer
计时器,以防它们处于非活动状态:
systemctl start sysstat sysstat-collect.timer sysstat-summary.timer
并且让它们在系统启动时自动启动:
systemctl enable sysstat sysstat-collect.timer sysstat-summary.timer
最后,在解释了这些技巧之后,也许在这种情况下最好的解决方案是重新配置以使用而不是 来sysstat
运行,这在systemd
cron
这个答案作者:Yvan。