![夜间备份(或许还有其他任务)导致服务器警报](https://linux22.com/image/797454/%E5%A4%9C%E9%97%B4%E5%A4%87%E4%BB%BD%EF%BC%88%E6%88%96%E8%AE%B8%E8%BF%98%E6%9C%89%E5%85%B6%E4%BB%96%E4%BB%BB%E5%8A%A1%EF%BC%89%E5%AF%BC%E8%87%B4%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AD%A6%E6%8A%A5.png)
我的服务器有两个独立的警报通知系统。服务器是 Linode 上的虚拟机,其中一个警报来自 Linode。我们使用的另一个监控系统是 New Relic。它们都在关注 IO 利用率。
由于服务器使用了过多的 IO,因此每天晚上我都会收到来自这两个服务器的警报。我在半夜运行了不少任务,但我确认可能导致 IO 警告的任务是运行备份。备份由 s3cmd sync 完成。我尝试了 ionice,但它仍然会生成警告。
每晚都收到警告会降低警告的有效性(当警告真正发生时)。对于 Linode,我可以提高发出警告的级别,但这可能意味着整个事情都变得毫无用处,因为级别太高了。
对此正确的解决方案是什么?
答案1
首先,问自己一个重要的问题:“这个警报会告诉我任何有用的信息吗?”
您的服务器的工作负载是否受到 I/O 限制,并且 I/O 警报会在问题实际发生之前提醒您?还有其他更好的指标可以监控吗(例如,服务器对 HTTP 请求的响应时间?)
如果警报没有帮助,请禁用它。
正如您正确指出的那样,“噪音警报”会降低监控系统的有效性,因此如果此警报只是噪音,请将其关闭并完成它。
如果警报在您的环境中确实有用,但在某些时间段内没有用,则您需要检查您的监控系统并查看是否可以在特定时间段内禁用警报(大多数可以 - 我不确定 Linode 或 New Relic,但他们的文档或技术支持人员肯定可以帮助您)。
如果你的监控系统无法在特定时间段内暂停警报,你可以使用以下方法实现同样的效果procmail
规则(或类似的邮件过滤)。这要求您将邮件发送到过滤邮箱,但您可以根据需要从那里转发到寻呼机、手机等。
(如果您使用这样的邮件过滤解决方案,请确保文档这样下一位管理员就知道为什么他们没有在那个时间段内收到警报!有一天可能会出现真正的问题,而错过警报可能是一件坏事。)