Puppet-reports 占用了大量的磁盘空间:
/var/lib/puppet/reports
/var/lib/mysql
假设它将所有报告存储在 MySQL 数据库中,因为两个路径的大小大致相同。资源状态表由行组成,每行代表报告文件中的一行。
- Puppet-dashboard 或 PuppetDB 处理完 /var/lib/puppet/reports 中的报告后,可以安全地删除它们吗?
- 处理报告的最佳做法是什么?
- 有没有办法让 Puppet-dashboard 自动删除yaml 处理完之后可以报告文件吗?
答案1
是的,你可以删除它们,我也推荐这样做。Puppet 仪表板的文档对仪表板的持续维护没有太多意见,但它确实需要维护。我建议使用一个 cron,几天后删除数据库中的报告,第二个 cron 删除任何孤立记录,第三个 cron 删除已处理的报告。我的看起来像这样:
cd /path/to dashboard ; RAILS_ENV=production rake reports:prune upto=3 unit=day
cd /path/to dashboard ; RAILS_ENV=production rake reports:prune:orphaned
find /var/lib/puppet/var/reports/ -mmin +300 -type f -print0 | xargs -0 -r rm > /dev/null 2>&1
您可以调整时间以使其最适合您的系统。我不认为 delayed_job 包含任何删除已处理报告的功能,但您可能能够将其添加到代码中。