我使用 Nagios 来监控服务器,并使用 rsnapshot 进行备份。我想要一个 Nagios 插件来监控 rsnapshot 是否成功运行。我见过一些 rsnapshot 插件会对目录树进行整体比较,这对我来说效率太低了。
是否有一些简单的检查来确保上次运行是否正常(即查看日志文件)或所有目录都在那里?
答案1
我无法真正回答有关 rsnapshot 的问题,但我使用 rdiff - 类似的工具。
我使用 nagios 来监控我的备份的几个方面:
- 上次 rdiff 运行的退出代码是什么。如果不是 0 - 意味着过程中出现了问题。我只有一个执行 bacup 的简单 bash 脚本,并且根据结果确定文件是否正常或失败。使用 nagios,我会检查 OK 文件的新鲜度,如果它超过 25 小时则发出警报。
- 运行备份之前,我触摸了 /xyz/touched 中的文件。在接收备份的服务器上,我会检查该文件的新鲜度。如果它早于 25 小时,则意味着昨晚的备份尚未到达接收机器。
- rdiff 有验证选项。我不知道 rsnapshot 有没有。验证需要花费很多时间,我每天运行一次并将结果放到文件中……然后简单的 nagios 插件会在这个日志文件中搜索错误消息。
通过这种方式,我可以保护自己免受备份中断和接收服务器上的文件系统损坏(对于长时间未修改的文件)。
诀窍是不要让 nagios 插件做繁重的工作(例如验证整个备份),而是安排 cron 作业来执行该工作并让 nagios 插件只检查作业的结果(例如创建的文件或日志文件的内容)。
顺便说一下 - 检查一下这出去。