如何最好地监视和提醒日志中没有事件?

由于日志在syslog-ng中被捕获,我希望能够自动监视日志,并在没有出现符合特定条件的日志事件时收到警报。 例如,对于基于订阅的网站,如果在没有订单的情况下经过6个小时,则发送电子邮件或文本这个人或一组人。

什么是一个很好的方法来做到这一点?

  • 我怎么能发送Windows事件日志到Linux服务器的networking日志logging?
  • 从syslog-ng中排除一些消息
  • 主机名是否可以添加到syslog-ng?
  • 有人试图破解我的VPS吗?
  • 我如何比较$ {HOST}和$ {HOST_FROM}(或为什么$ {HOST}!= $ {HOST})?
  • iptables通过syslog-nglogging到不同的文件
  • 8 Solutions collect form web for “如何最好地监视和提醒日志中没有事件?”

    http://labs.consol.de/nagios/check_logfiles是一个用于监视日志文件的Nagios插件。 通常你检查,如果有一定的模式(错误信息)。 但是可以扭转这种情况。 例如,如果每天早上运行check_logfiles –logfile /var/log/mybackup.log –criticalpattern'!backup succeeded',如果自上次运行check_logfiles以来没有“备份成功”消息条目,您将收到警报。

    格哈德

    由于至less每6小时发生一次某个事件的信息是写入日志的应用程序所特有的,所以如果事件没有发生,应该自行监视并写入日志条目。 如果应用程序写日志信息在本地开发,我会推荐这个解决scheme。

    如果这是不可能的,我会保持机制,确保事件发生尽可能接近应用程序。 也许看门狗可以从启动应用程序执行日志的相同的启动脚本在后台启动。 当应用程序停止时,脚本也停止看门狗。

    另一种select,如果你想由于某种原因使启动脚本保持原始状态,将会创build一个执行日志监视的cron-job。

    在任一情况下。 确保日志条目的级别足够严重,以至于警告您使用您正在使用的任何工具来监视日志。 对于你没有想到但应该监控的事情来说,更好,更有前途的证据和包容性,然后监听日志级别而不是特定的日志条目。 这意味着至less有WARNING级别。

    Zabbix是与Nagios类似的另一个监控解决scheme。 Zabbix能够监视各种string的文件,并根据您指定的标准(find或未find)启动触发的警报。 Zabbix还支持“回顾”或从日志中的各个时间点,这有助于防止旧事件的误报。 警报可以configuration为发送电子邮件或短信。

    Zabbix网站: http ://www.zabbix.com/

    一些Zabbix的日志监控文档: http : //www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/log_items

    Nagios可以为你轻松做到这一点。 就我个人而言,我喜欢任何可以轻松在命令行上运行的事情和/或通过Nagios或Crontab轻松设置。

    LOGROBOT可以完成OP所要求的…在一个简单的命令行条目中:

    ./logrobot autonda / prod / apps / mylogfile 60m'orders submitted''。' 1 2 subscription_orders -ndnotfoundn

    只需更改粗体string,当然还有日志文件path,以符合您的需求。

    基本上,如果在日志文件/ prod / apps / mylog文件中没有find至less1个“提交的订单”条目,则该命令会警告警告。 如果在日志中没有find至less2个“提交订单”的条目,它将会提醒至关重要。

    你可以使用Shell / Perl脚本来完成这个任务。 您可以通过Cron运行Shell / Perl脚本。

    Nagios将是一个更好的解决scheme。 这是一个开源工具,所以不需要支付任何费用,但需要与之配合才能进行configuration。 ;)

    如果您需要商业产品, Splunk以日志文件分析而闻名。

    我过去采用的方式是将系统日志stream量转发到数据库,然后只是从数据库中查询最近收到的来自特定主机名的日志消息,以及时间戳。

    这只是login到数据库的一个好处。

    我相信最简单的方法就是用你select的语言编写非常简单的脚本。 你只需要grep通过系统日志的特定消息和发送电子邮件,如果没有发现。 包括一些理智的检查,我无法想象超过20行。 坚持这是cron,你都成立了。 缺点是通过使用这种方法,cron作业必须以root身份运行以读取日志。

    你也可以做的是看看LogAnalyzer 。 不幸的是,我不记得它是否能够发送电子邮件。 不过,它使用MySQL并将日志信息存储在那里。 使用LogAnalyzer安装程序时,您将拥有两个日志副本,一个在syslog中,另一个在DB中。 如果你有这个数据库的用户,能够阅读它的内容,你可以避免运行上面提到的cron作业。 它可能不是那么好,但可以添加另一个保护层。

    我们做了类似的事情,如果我们在过去的N小时内没有在网站上得到新的订单,我们会得到警报。 我们创build了一个按“每3小时”的时间表的PushMonurl。 然后,我们在我们的感谢页面(JavaScript)中调用PushMon URL。 如果我们没有得到订单,PushMon会注意到缺less的电话,并会发出警报。

    PushMon能够很好地提醒您关于不发生的事件。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.