处理 Proxmox VE 每分钟生成三条日志导致泛滥成灾

这个问题一直都没有注意,一直都任务是正常的日志,即使很早之前已经发现了 journald 占用过多磁盘空间,针对 journald 这个问题还做了限制日志容量为 500MB journalctl --vacuum-size=500M 。今天发现 PVE 这个规律性每分钟产生的日志,难道不是占据了所有日志容量的大头吗?

每分钟生成三条日志:

Apr 12 19:19:00 fzpve systemd[1]: Starting Proxmox VE replication runner...
Apr 12 19:19:00 fzpve systemd[1]: pvesr.service: Succeeded.
Apr 12 19:19:00 fzpve systemd[1]: Finished Proxmox VE replication runner.
Apr 12 19:20:00 fzpve systemd[1]: Starting Proxmox VE replication runner...
Apr 12 19:20:00 fzpve systemd[1]: pvesr.service: Succeeded.
Apr 12 19:20:00 fzpve systemd[1]: Finished Proxmox VE replication runner.
Apr 12 19:21:00 fzpve systemd[1]: Starting Proxmox VE replication runner...
Apr 12 19:21:00 fzpve systemd[1]: pvesr.service: Succeeded.
Apr 12 19:21:00 fzpve systemd[1]: Finished Proxmox VE replication runner.
Apr 12 19:22:00 fzpve systemd[1]: Starting Proxmox VE replication runner...
Apr 12 19:22:00 fzpve systemd[1]: pvesr.service: Succeeded.
Apr 12 19:22:00 fzpve systemd[1]: Finished Proxmox VE replication runner.

这垃圾日志貌似没有什么用,也太多,太占用资源了吧?并且把许多可能有用的日志给淹没了,怪不得 journald 日志容量那么大,难道罪魁祸首就是这每分钟产生三条垃圾日志造成的?

ls -lh /var/log/journal/c51***b72c/
total 505M
-rw-r-----+ 1 root systemd-journal  64M Feb 24 05:33 system@00***71-c4***9d.journal~
-rw-r-----+ 1 root systemd-journal 8.0M Feb 24 06:09 system@00***5cc-27***90.journal~
-rw-r-----+ 1 root systemd-journal 128M Mar 16 16:20 system@b97***f-00**01-00**cb.journal
-rw-r-----+ 1 root systemd-journal 112M Apr  4 22:36 system@b97***f-00**da-00**47.journal
-rw-r-----+ 1 root systemd-journal 128M Feb 14 13:54 system@de***9c-00**25-00**ef.journal
-rw-r-----+ 1 root systemd-journal  48M Apr 13 01:46 system.journal
-rw-r-----+ 1 root systemd-journal 8.0M Feb 14 13:54 user-1000@070**e-00**3-00**8.journal
-rw-r-----+ 1 root systemd-journal 8.0M Mar 16 16:20 user-1000@c68**5-00**a-00**1.journal

一顿操作猛如虎之后发现这垃圾日志的是 pvesr.timer 与 pvesr.service 这两个家伙弄的。

find / -name "pvesr*"
/var/lib/systemd/deb-systemd-helper-enabled/pvesr.timer.dsh-also
/var/lib/systemd/deb-systemd-helper-enabled/timers.target.wants/pvesr.timer
find: ‘/var/lib/lxcfs/cgroup’: Input/output error
/etc/systemd/system/pvesr.timer
/etc/systemd/system/timers.target.wants/pvesr.timer
/usr/lib/systemd/system/pvesr.timer
/usr/lib/systemd/system/pvesr.service
/usr/share/man/man1/pvesr.1.gz
/usr/share/perl5/PVE/CLI/pvesr.pm
/usr/share/bash-completion/completions/pvesr
/usr/share/pve-docs/pvesr-plain.html
/usr/share/pve-docs/pvesr.1.html
/usr/bin/pvesr
/run/lock/pvesr.lck

看看 pvesr.timerpvesr.service 这两个家伙

cat /etc/systemd/system/pvesr.timer

[Unit]
Description=Proxmox VE replication runner

[Timer]
AccuracySec=1
RemainAfterElapse=no

[Timer]
OnCalendar=minutely

[Install]
WantedBy=timers.target


cat /usr/lib/systemd/system/pvesr.service

[Unit]
Description=Proxmox VE replication runner
ConditionPathExists=/usr/bin/pvesr
After=pve-cluster.service

[Service]
Type=oneshot
ExecStart=/usr/bin/pvesr run --mail 1

对于我这淘汰硬件玩 PVE 就用不上那么高级的存储复制(Storage Replication)功能,且还要多节点才能用的功能,我这普通的家庭使用严重不符合这些高级条件,但即使是使用这个功能,也不用每分钟都弄那么多日志吧!

所以必需修改 pvesr.timer 这个日志分分钟产生实在是太频繁了,改为每天!

# 使用 systemctl edit --full 修改 pvesr.timer 
# 貌似不用 systemctl daemon-reload 就能直接生效
systemctl edit --full pvesr.timer

# 由原来的 minutely 修改为 daily 
[Timer]
OnCalendar=daily

世界终于又清静了许多…

发表回复