使用grok将日志文件名添加为logstash中的字段

2024-01-16

我在用着Grok http://logstash.net/docs/1.4.1/filters/grok& Logstash 将访问日志从 Nginx 发送到 Elastic search。我正在向 Logstash 提供所有访问日志(使用通配符,效果很好),并且我想获取文件名(准确地说,是其中的一部分)并将其用作字段。

我的配置如下:

input {
  file {
    path => "/var/log/nginx/*.access.log"
    type => "nginx_access"
  }
}

filter {
  if [type] == "nginx_access" {
    grok { 
      match => { "message" => "%{COMBINEDAPACHELOG}" }
      match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" }
      add_field => { "app" => "%{app}" }
    }
  }
}
output{
   # whatever
}

但这似乎不起作用:app字段已添加,但值为%{app}(未更换)。

我尝试了不同的方法,但没有成功。我可能错过了一些东西......有任何想法吗 ?

多谢


好的,找到了。grok默认情况下在匹配时中断。所以第一场比赛很好,它会跳过第二场。

我是这样解决的:

filter {
  if [type] == "nginx_access" {
    grok { 
      match => { "message" => "%{COMBINEDAPACHELOG}" }
      match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" }
      break_on_match => false
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用grok将日志文件名添加为logstash中的字段 的相关文章

  • 为什么 re.findall 在查找字符串中的三元组项时不具体。 Python

    所以我有四行代码 seq ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA OR 0 re findall r ATG 9 TAA TAG TGA seq 首先让我解释一下我正在尝试做什么 如果这令人困惑
  • 聚合多个递归logstash

    我正在使用带有输入 jdbc 的 Logstash 并且希望通过聚合将一个对象嵌入到另一个对象中 如何使用添加递归 即在另一个对象中添加一个对象 这是一个例子 index my index type test id 1 version 1
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • 如何使正则表达式匹配不区分大小写?

    我有以下正则表达式加拿大的邮政编码 http en wikipedia org wiki Postal codes in Canada ABCEGHJKLMNPRSTVXY 1 d 1 A Z 1 d 1 A Z 1 d 1 它工作正常 但
  • 获取字符串中的最后一个整数

    我需要隔离包含多个整数的字符串中最新出现的整数 我怎样才能得到23代替1 for lastnum1 text 1 out of 23 lastnum1 this gt getEval eregi replace out of text 你可
  • Perl:正则表达式不抓取代码中的多行 C 风格注释

    我有一个 Perl 程序 读取用 C 编写的 SRC 文件 使用 SRC 文件中的正则表达式匹配来查找特定格式的数据以用作目标文件名 打开新的目标文件 执行另一个正则表达式匹配以查找包含关键字 abcd 的所有 C 风格注释 注意 这些注释
  • vim 中的正则表达式查找和替换:向数字添加 .0

    我有一个如下所示的文件 1 1 0 1 6 1 0 2 8 1 0 3 10 1 0 4 12 1 0 6 如何为所有数字添加 0 后面的数字除外 我认为用正则表达式来做到这一点应该不会太难 但是我的正则表达式知识太生疏了 使用 VIM s
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • 反向引用在 PHP 中不起作用

    最近我一直在研究 更多的是在实践中说实话 正则表达式 我注意到他的力量 我提出的这个要求 link https stackoverflow com questions 30380397 take the text up to a speci
  • 使用FFMpeg确定视频类型,然后进行转换?

    我正在尝试以编程方式确定文件的真实类型 看来我必须使用 FFMPeg 来实现这一点 我想确定上传的文件实际上是否是 MP4 或 FLV 对于 Flash 视频 或 WebM 对于 HTML5 我知道 FFMPeg 中的 i 运算符 但我不知
  • 使用正则表达式查找并替换(批处理.BAT)

    我想在多个文本文件中进行查找 替换 如何使用 BAT 实现自动化 我还需要正则表达式 示例 查找
  • 正则表达式删除字符串中的双/三逗号

    我需要解析一个字符串 因此结果应该像这样输出 abc def ghi klm nop 但我收到的字符串可能看起来更像这样 abc def ghi klm nop 关键是 我事先不知道单词之间有多少个逗号 我可以在 C 中使用正则表达式来帮助
  • 在 Greasemonkey @include 中使用正则表达式?

    我想更好地指定 Greasemonkey 脚本的运行位置 include https example com 工作正常 但它太不准确 我想要这样的东西 include https example com xx xx Asset xx 可以是
  • 正则表达式可以与 C++ 中的字符数组一起使用吗

    我正在开发一个无法使用字符串库文件的程序 而是使用字符数组 我能够使用正则表达式 并且想知道是否有办法使用正则表达式和字符数组 甚至正则表达式和单个字符 我问的原因是当我尝试在匹配中使用我的 char 数组时 xUtility 会抛出一堆来
  • 如何添加 Java 正则表达式实现中缺少的功能?

    我是 Java 新手 作为一名 Net 开发人员 我非常习惯Regex Net 中的类 Java 实现Regex 正则表达式 还不错 但它缺少一些关键功能 我想为 Java 创建自己的帮助器类 但我想也许已经有一个可用的了 那么 是否有任何
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 两个分隔符之间的字符

    尝试将正则表达式放在一起 返回 和 之间的字符串 其中 是字符串的结尾 input abc def ghi 期望的正则表达式结果 def ghi 我已经尝试了很多这样的组合 1 任何帮助表示赞赏 注意 上面的正则表达式返回 abc def
  • [\b] 退格正则表达式有什么用?

    b 显然匹配退格字符 我无法理解字符串如何包含退格字符 有人能给我一个具体的例子来说明如何使用它吗 非常感谢 虽然所有其他人总体上都是正确的 即 b是单词边界 b does表示字符类中的退格键 b 这确实会匹配退格字符 它只是一个可以出现在
  • Python正则表达式检查字符串是否包含任何单词

    我想搜索一个字符串并查看它是否包含以下任何单词 AB AG AS Ltd KB University 我在 javascript 中工作 var str Hello test AB var forbiddenwords new RegExp
  • 用于匹配重复子字符串的单个js正则表达式?

    假设我有一个字符串 例如 where is mummy where is daddy 我想用空字符串替换任何一组重复子字符串 所以在这种情况下where and is元素将被删除 结果字符串将是 mummy daddy 我想知道是否有任何单

随机推荐