grok 多条消息并用不同的标签处理它们

2023-12-12

我想在 Logstash(版本 2.4)中创建一个过滤器,在同一个 grok 中使用不同的匹配项。 我想根据比赛添加不同的标签。 基本上,我收到三种不同的消息模式: “##MAGIC##%消息” “##REAL##%消息” “%信息” 我想做的是:

 grok {
 match => {"message" => "##MAGIC##%{GREEDYDATA:magic_message}"}
 match => {"message" => "##REAL##%{GREEDYDATA:real_message}"}
 match => {"message" => "%{GREEDYDATA:basic_message}"}
 if [magic_message]{
    overwrite => [ "message"]  
    add_tag => ["Magic"]
 } else if [real_message]{
    overwrite => [ "message"]  
    add_tag => ["Real"]
 }else{
   overwrite => [ "message"]  
    add_tag => ["Basic"]
 }

但是,我得到这个编译失败:

    The given configuration is invalid. Reason: Expected one of #, => at line 34, column 9 (byte 900) after filter {
  grok {
     match => {"message" => "##MAGIC##%{GREEDYDATA:magic_message}"}
     match => {"message" => "##REAL##%{GREEDYDATA:real_message}"}
     match => {"message" => "%{GREEDYDATA:basic_message}"}
     if  {:level=>:fatal}

Logstash 配置语法不是这样工作的。

这应该可以更好地工作(假设您想将消息替换为magic_message/real_message):

grok {
    match => {"message" => [ "##MAGIC##%{GREEDYDATA:magic_message}",
                             "##REAL##%{GREEDYDATA:real_message}", 
                             "%{GREEDYDATA:basic_message}"]}
}
if [magic_message] {
    mutate {
        replace => { "message" => "%{magic_message}" }
        add_tag => ["Magic"]
    }
} else if [real_message] {
    mutate {   
        replace => { "message" => "%{real_message}" }
        add_tag => ["Real"] 
    }
} else {
    mutate {
        add_tag => ["Basic"] 
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

grok 多条消息并用不同的标签处理它们 的相关文章

  • Logstash:如何将文件名添加为字段?

    我使用 Logstash Elasticsearch Kibana 来概览我的 Tomcat 日志文件 对于每个日志条目 我需要知道它来自的文件的名称 我想将其添加为字段 有办法做到吗 我用谷歌搜索了一下 只发现这个问题 https sta
  • Logstash grok 测试与 rspec 有不同的行为?

    我正在为 grok 过滤器创建一个测试套件 有些日志由logstash 正确丰富 但不是rspec 测试 为了测试这一点 我启动了一个 Logstash 实例 其中包含 stdin stdout 和 json 用于输入和输出 这是示例日志
  • Logstash可以直接读取远程日志吗?

    我是 Logstash 的新手 几天来我一直在阅读有关它的内容 和大多数人一样 我试图拥有一个集中式日志系统并将数据存储在 elasticsearch 中 然后使用 kibana 来可视化数据 我的应用程序部署在许多服务器中 因此我需要从所
  • Logstash 的 Django 日志记录格式

    我正在尝试将 django 应用程序配置为以 Logstash 易于使用的格式写入日志 受到 Node 的 Winston 日志记录包的启发 Logstash 需要一个 JSON 对象 其中包含键 message 和时间戳 timestam
  • Kibana 返回“连接失败”

    我正在尝试在 Windows 2008 R2 中使用 Kibana 运行 ElasticSearch 我关注了这篇文章 在带有 kibana 的 Windows 服务器上安装logstash https community ulyaoth
  • Logstash 的流行为不一致 - ELK

    我有一个包含几个平面字段和几个嵌套字段的索引 我正在尝试通过 Logstash 将 SQL Server 中的信息通过特定 ID 流式传输到嵌套字段中 当我流式传输数据时only one然后它就完全成功地通过了 没有任何问题 另一方面 当我
  • Logstash 创建和访问数组

    我想在用于设备的 Logstash 配置文件中创建一个数组 然后通过我正在创建的新字段访问该数组值 例子 filter array devicetype gt Cisco ASA Cisco 3750 mutate add field gt
  • Logstash 配置:检查布尔字段是否存在

    使用Logstash 1 4 2 我有一个字段myfield这是我的 JSON 文档中的布尔值 为了检查它是否存在 不关心布尔值 我使用了 if myfield exists else doesn t exist 测试该条件语句的结果是 m
  • 为什么 Elastic Cloud 部署中存在 Logstash 实例?

    我正在调查 Elastic Cloud 托管的 ELK 堆栈 https www elastic co cloud elasticsearch service https www elastic co cloud elasticsearch
  • 使用 Grok for Logstash 解析 Apache2 错误日志

    我试图解析我的 apache2 错误日志 但遇到了一些麻烦 它似乎与过滤器不匹配 我很确定时间戳部分是错误的 但我不确定 而且我真的找不到任何文档来解决它 另外 有没有办法获取其中的内容fields errmsg to me message
  • Logstash 的 Java 过滤器

    你知道 Logstash 有一个 Ruby 过滤器 它使我能够用 Ruby 编写代码 它通常包含在配置文件中 如下所示 filter ruby code gt 现在我有两个 Jar 文件 我想将它们包含在过滤器中 以便可以根据我在这些 Ja
  • 将 CloudTrail 日志导入 Logstash

    我正在尝试将日志从 CloudTrail 获取到 ElasticSearch 中 以便我们可以更好地了解 AWS 账户中发生的情况 我已经在我的机器 Ubuntu 14 04 上设置了 Logstash 和 ElasticSearch 并且
  • 为什么 Logstash 需要这么长时间才能启动/加载?

    Edit 我更改了标题 因为问题不是我最初想象的那样 事实是 logstash 需要超过一分钟开始 这可能会被误解为 沉默 我正在尝试让logstash运行 所以我按照官方网站上的说明进行独立安装 http logstash net doc
  • Logstash 删除事件过滤器

    在我的日志文件中 我有如下条目 2014 06 25 12 36 18 176 10 null INFO s null u null Hello from Serilog running as David Program 2014 06 2
  • 为 Logstash 中的新字段设置 Elasticsearch Analyzer

    通过使用GROK filter 我们可以向Logstash添加新字段 但是 我想知道如何为该特定字段设置分析器 例如 我有一个新的 id 字段 其中有一个字段 例如a b 但是 Elasticsearch 附带的普通分析器会将其分解为a a
  • 从logstash中的文件名获取事件的时间戳

    我们有一个将事件写入文件的进程 没有时间戳 文件名本身带有时间戳后缀 该时间戳应用于文件中的所有事件 现在 我尝试使用logstash的输入文件插件来解析该文件 有没有一种方法可以将文件名获取到字段 以便我可以使用 gsub 过滤器提取时间
  • 聚合多个递归logstash

    我正在使用带有输入 jdbc 的 Logstash 并且希望通过聚合将一个对象嵌入到另一个对象中 如何使用添加递归 即在另一个对象中添加一个对象 这是一个例子 index my index type test id 1 version 1
  • 我的石墨中的 Logstash 指标在哪里?

    这可能是一个菜鸟问题 但我很难找到答案 所以我希望你们能在这里帮助我 我有一个running logstash实例将日志从一台服务器传送到另一台运行 Graphite 的服务器 这是我的输出配置 output stdout codec gt
  • 如何替换 Logstash 中字段中的字符串

    我的 Windows 事件日志中有一个 IP 地址字段 其中 IP 地址前面包含类似 fffff 的字符 我无法更改此处的源 因此我必须在 Logstash 中修复此问题 我一定很不擅长谷歌搜索 但我真的找不到一种简单的方法来从logsta
  • Logstash if 语句与正则表达式示例

    谁能告诉我什么是if带有正则表达式的语句看起来像在logstash中 我的尝试 if fieldname 0 9 if fieldname 0 9 两者都不起作用 我打算做的是检查 fieldname 是否包含整数 将其他答案合并成一个有凝

随机推荐