0

几天来,我一直在为 UNIX 系统寻找一个好的日志文件处理器而苦苦挣扎。

这是我的情况:

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

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

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

我似乎有两个选择:

  1. 每次我找到一些东西时,把它写到一个前面有日志名的通用日志文件中,然后写一个调整正则表达式的新条件(意思是:^Logname.*error$)。但这是...... 20 条日志的工作量太大
  2. 或者:我使用脚本将找到的条目发送到带有时间戳的日志并自己计算窗口,这违背了 SEC 的目的:)

现在我的问题是:有没有人遇到过同样的问题,你是如何通过 SEC 或其他日志文件观察者解决这些问题的?我似乎找不到适合我所有需求的好程序。还是我错了?我错过了什么吗?

谢谢,汤姆

4

1 回答 1

1

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

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

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

亲切的问候,里斯托

于 2013-06-11T18:08:50.663 回答