我已经在我的 (Debian) 系统上设置了 Logwatch。邮件等功能运行良好。
我想要的是每天获取一次系统的每日报告
和;
在发生任何高级别事件(登录尝试失败、攻击(如果可能)等)时立即接收它们。
我需要修改哪些设置,以及具体用什么修改?在使用系统方面,我是一个新手,我在 Google 上进行了研究,但结果只让我走到了这一步。
谢谢。
答案1
LogWatch 每天从 cron 运行一次 - 如果您想要更频繁的通知,您可以更频繁地运行 LogWatch,但这会向您发送一切LogWatch 通常会抱怨这一点。
如果您想要监视特定消息,则应该使用比 LogWatch 更复杂的工具(syslog-ng
立即想到自定义过滤器/操作,特别是当您想要“立即”通知时),或者编写自己的工具来按照更严格的时间表扫描日志文件。
小心你的愿望
要求你的系统在发生每件“重要”事件时都给你发送电子邮件,很快就会让人不知所措。例如,我的个人系统上有超过 1000 次登录失败尝试今天(在过去的 11 个小时内)——我当然不想收到每封这样的电子邮件:我已经有足够多的垃圾邮件了。
正确的监控和警报应该只告诉你需要你采取行动的事情(根据我的经验,LogWatch 是可怕在那时,我已经在我的环境中完全禁用它,因为它只会产生噪音) - 确保您实施的任何系统都有非常低的噪音水平,这样您就不会陷入忽略警报的常见陷阱,因为“我一直看到它,但它从来都不重要”。
答案2
假设您正在使用 rsyslog,它是 Debian squeeze 上的默认设置:
使用rsyslog 的邮件输出模块给自己发送电子邮件。您可以按照常规方式配置要发送给您的邮件:
*.emerg :ommail:;mailBody
或者通过匹配日志消息中的文本:
if $msg contains 'hard disk fatal failure' then :ommail:;mailBody