【问题标题】:Reading files from multiple directories in Logstash?从 Logstash 中的多个目录读取文件?
【发布时间】:2014-07-23 22:02:09
【问题描述】:

我使用此配置读取了我的日志文件(cron_log、auth_log、mail_log 等):

file{
path => '/path/to/log/file/*_log'
}

所以我阅读了我的日志文件并检查:

if(path) ~= "cron"  -----match--------
if(path) ~= "auth"  -----match--------

现在我有一个目录,如:Server1 Server2 Server3......在Server 1 中有子目录:authlog cronlog.....在 authlog 里面有子目录日期明智(如2014.05.26, 2014.05.27),最后包含当天的日志文件,我必须对其进行解析。

所以目前我有一个配置文件,用于使用*_log 读取文件,我使用该配置文件运行该配置文件,并解析了/path/to/log/file/*_log 中存在的所有日志文件。

现在我必须从许多目录中读取(如上所述)。

我需要为每个目录编写单独的配置文件吗??

使用 logstash 实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: elasticsearch logstash kibana


    【解决方案1】:

    Ruby glob 将 ** 解释为包括所有子目录。

    因此,例如,您可以给file input 一个路径,例如:

    /path/to/date/folders/**/*_log
    

    【讨论】:

    • 如果我想要目录名(Server1、Server2)和子目录(cron、auth)怎么办,以便我相应地应用 grok 来分别匹配每个文件模式。例如:对于 Server1 和 cron 类型-----> Pattern1。那么有没有办法抓住这些并在以后对它们应用条件???
    • 您的file 输入可以apply a tag;在过滤器块中,您可以使用basic conditional 来检查标签,例如if "foo" in [tags]
    • 我希望它出现在我的 Web 界面上,以便可以先选择:Server1,然后选择 cronLog。所以必须添加fieldtag
    • 两者都可以。在网络界面中搜索平面字段可能会更容易一些。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    相关资源
    最近更新 更多