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



这几天我一直在努力寻找一个适合UNIX系统的日志文件处理器。

这是我的例子:

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

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

遗憾的是,SEC似乎一次打开所有文件,并且不区分日志文件。这意味着,如果我将某个正则表达式条件抑制10分钟,在这10分钟的窗口内,没有其他日志文件可以产生相同的消息。SEC根本不在乎误差来自哪里。我知道:)

我似乎只有两个选择:

  1. 每次我发现一些东西,把它写到一个通用的日志文件与logname在前面,写一个新的条件与regex调整(意思:^ logname .*error$)。但这是……对于20个日志来说工作量太大
  2. OR:我使用脚本将找到的条目发送到带有时间戳的日志中,并自己计算窗口,这违背了SEC的目的:)

现在我的问题是:有没有人遇到同样的问题,你是如何解决的,与SEC或其他日志文件观察者?我似乎找不到一个能满足我所有需要的好课程。还是我错了?我错过什么了吗?

谢谢,汤姆

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

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

另外,欢迎您将您的问题发布到SEC邮件列表,大多数用户都在这里进行讨论。这个列表也最有可能为你提供一个快速的答案。

亲切的问候,risto

最新更新