当前位置: 首页 > 面试题库 >

从输入文件路径logstash提取字段?

姜卜霸
2023-03-14
问题内容

我想从各种目录中读取日志文件,例如:Server1, Server2

Server1具有子目录cron, authlog file分别在这些子目录中。

所以我正在考虑读取这样的文件:

input{
         file{            
                                     #path/to/folders/server1/cronLog/cron_log

                             path => "path/to/folders/**/*_log"
            }
    }

但是,我很难过滤它们,即要知道对于哪个服务器(Server1)和日志类型(cron),我必须应用以下grok模式:

例如:我想做这样的事情

if [path] =~ "auth"{

grok{
            match => ["message", ***patteren****]
        }
    }else if [path] =~ "cron"{
        grok{
            match => ["message", ***pattern***]
        }

上面cron是用于日志文件(不是cronLog目录)。但是,这样的我也想过滤器上server name的每个服务器都会有cronauth等日志。

如何同时过滤?

有没有办法从path输入中获取目录名称?从这里喜欢

path => "path/to/folders/**/*_log"

我应该如何进行?任何帮助表示赞赏吗?


问题答案:

它非常直截了当,几乎就像我在其他答案中一样…在路径上使用grok提取出您关心的片段,然后您可以从那里做任何想要的事情

filter {
   grok { "path", "path/to/here/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logname>.*) }
   if [server] == "blah" && [logtype] =~ "cron" {
       grok { "message", "** pattern **" }
   }
}


 类似资料:
  • 问题内容: 我对Logstash有一个奇怪的问题。我正在提供一个日志文件作为logstash的输入。配置如下: 我已经在运行elasticsearch服务器并验证是否正在使用curl查询接收数据。问题是,当输入为时,没有数据被接收。但是,如果我将输入更改为以下内容,它将顺利发送所有输入数据: 我不明白我要去哪里错了。有人可以看看这个吗? 问题答案: 您应该在文件部分下设置start_positio

  • 问题内容: 我只想从完整路径到文件获取文件夹路径。 例如,我想要得到(不包括)。 我已经尝试过这样的事情: 但是它给了我这样的结果: 这不是我需要的结果(为)。 关于如何获取文件路径的任何想法? 问题答案: 您几乎可以使用该功能了。您只需要加入字符串,如下所示。 虽然,我建议使用该函数来执行此操作,但是您只需要传递字符串即可,它将为您完成工作。由于您似乎在Windows上,因此也考虑使用该功能。一

  • 我只想从文件的完整路径中获取文件夹路径。 例如,我希望只得到(不包括)。 我曾经尝试过这样的事情: 但它给了我这样一个结果: 这不是我需要的结果(是)。 关于如何获取文件路径有什么想法吗?

  • 问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 使用jQuery输入文件的完整路径 我有以下html元素 如果我用 我只是文件名,而不是文件的完整绝对路径。有人可以告诉我如何获得完整路径吗? 问题答案: 您不能这样做-由于安全问题,浏览器将不允许这样做。尽管有解决方法,但事实是您不应该依靠这种方法。以下堆栈溢出问题与此处相关: 使用jquery输入文件的完整路径 如何从Fir

  • 如何从变量中提取路径和文件名? 我想在不使用任何函数或任何GOTO的情况下做到这一点。可能吗?

  • 问题内容: 当用户在网页中选择文件时,我希望能够仅提取文件名。 我确实尝试过str.search函数,但是当文件名像这样时似乎失败: c:\ uploads \ ilike.this.file.jpg 。 我们如何仅提取不带扩展名的文件名? 问题答案: 假设您的 < input type =“ file”>具有上 载 ID,则有望实现这一目标: