SEC(简单事件相关器):处理多个日志文件

时间:2013-06-04 15:05:20

标签: logging

我一直在为UNIX系统寻找一个好的日志文件处理器几天。

以下是我的案例:

  • 我们有一个IDM系统可以生成大量日志(20 +)
  • 我需要在这些日志中找到错误并处理它们(最好是 我通过nagios发送它们)
  • 每个日志文件可能包含相同的错误(可能会出现相同的错误 同时在多个日志文件中)
  • 我不想被电子邮件或通知垃圾邮件,这些日志每30秒发出一次通知

我尝试用logpp来解决这个问题,但是logpp并没有给我一个时间窗口选项和抑制相同的消息。 所以我去了SEC,在那里你有很多强大的选择。

但是,遗憾的是,SEC似乎立刻打开了所有文件,并没有区分日志文件。这意味着,如果我在十分钟窗口内抑制一些正则表达式条件十分钟,那么其他任何日志文件都不会产生相同的消息。因此,SEC基本上不关心错误的来源。我这样做:)。

我似乎有两种选择:

  1. 每当我找到某些内容时,请将其写入前面带有logname的常规日志文件,并在调整正则表达式的情况下编写一个新条件(意思是:^ Logname。* error $)。但这是...... 20日志的太多工作
  2. OR:我使用一个脚本将找到的条目发送到带有时间戳的日志,并自己计算窗口,这违背了SEC的目的:)
  3. 现在我的问题是:有没有人遇到过同样的问题,你是如何解决这些问题的,还是SEC或其他日志文件观察者?我似乎找不到适合我所有需求的好程序。 还是我错了?我错过了什么吗?

    谢谢, 汤姆

1 个答案:

答案 0 :(得分:1)

SEC支持通过文件上下文匹配来自特定来源的事件。文件上下文是一个或多个文件的逻辑标识符,可以在SEC规则中用于限制匹配范围。可以使用--intcontexts命令行选项设置文件上下文。

如果您希望在正则表达式匹配后检索输入日志文件名,则会有一个特殊的匹配变量$ + {_ inputsrc},它由SEC自动设置,可以与$ 1,$ 2和其他常规一起使用匹配变量。

此外,欢迎您将问题发布到SEC邮件列表,其中大多数用户讨论正在进行中。该列表最有可能为您提供快速答案。

亲切的问候, 瑞斯托