【问题标题】:Print logstash event in ruby filter在 ruby​​ 过滤器中打印 logstash 事件
【发布时间】:2014-08-18 17:38:08
【问题描述】:

您好,我正在从 RabbitMQ 导出日志。为了调试,我想在应用一些正则表达式和 base64 解码之前打印消息的内容。我正在尝试做这样的事情:

input {
  rabbitmq {
        host => "***host***"
        vhost => "/"
        exchange => "Exchange"
        key => "#"
  }
}

filter {
  ruby {
        code => "print event['message']"
  }
}

output {
  elasticsearch {
        host => "localhost"
  }
}

但我的消息只有 nil 值。

【问题讨论】:

    标签: ruby logstash


    【解决方案1】:

    使用它来打印消息。

    input {
        stdin{}
    }
    
    filter {
        ruby {
                code => "
                        puts event['message']
                "
        }
    }
    
    output {
        stdout {
                codec => "rubydebug"
        }
    }
    

    仅供参考。

    【讨论】:

    • 感谢您的回答,但打印的唯一内容是换行符 (CRLF) ... 也许与编码有关?
    • 我已经更新了答案。这是我使用的配置。它可以打印出 event['message'] 中的所有消息。我认为在您的情况下,这可能不是红宝石过滤器的问题。
    • 使用你的 .conf 可以,但过滤器没有效果,它会在没有过滤器的情况下将相同的结果打印到标准输出。此代码: filter { ruby​​ { code => " puts event " } } 返回: 2014-08-18T09:52:34.162+0000 %{host} %{message} 但您的仅在输出与 stdout 不同时返回 CRLF .. .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多