【问题标题】:Logstash exec input plugin - Remove command run from @messageLogstash exec 输入插件 - 从@message 中删除命令运行
【发布时间】:2015-06-18 16:16:22
【问题描述】:

我在 Windows 机器上使用 logstash 1.5.1。我必须打个休息电话,它会为我提供 JSON 输出。

因此,我使用的是 exec。结果不再是 json :-(.

此事件的@message 将是命令的整个标准输出 一个事件。 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-exec.html

我的logstash配置

input {
    exec {
        command => "C:\bin\curl\curl.exe http://localhost:8080/jolokia/read/metrics:name=trx.process.approved" 
        interval => 10
        codec => json { charset => "CP1252" }
    }
}
output {
  elasticsearch {
    node_name => test
    host => myhost  
  }
}

cmd下的输出

{"request":{"mbean":"metrics:name=trx.process.approved","type":"read"},"value":{"Count":14},"timestamp":1434643572,"status":200}

elasticsearch 上无法解析的输出(3 行!)

C:\Daten\tools\logstash-1.5.1\bin>C:\bin\curl\curl.exe http://localhost:8080/jolokia/read/metrics:name=trx.process.approved {"request":"mbean":"metrics:name=trx.process.approved","type":"read"},"value":{"Count":14},"timestamp":1434641808,"status ":200}

通常我会尝试只剪切 JSON 输出,但不知何故,我在 Windows 上对这方面的了解有限。

我试过filter plugin split,把这三行分开,但是不知道怎么去掉第1行和第2行。

filter {
    split {     
    }
}

任何指针表示赞赏。

最后我只想将这一行发送到elasticsearch:

{"request":{"mbean":"metrics:name=trx.process.approved","type":"read"},"value":{"Count":14},"timestamp":1434641808,"status":200}

【问题讨论】:

    标签: batch-file logstash logstash-configuration


    【解决方案1】:

    自己找到了解决办法

    filter {
        split { 
        }
        if  [message] !~ "^{" {
            drop {}
        }
    }
    

    如果字符串不以“{”开头,则使用带有正则表达式的条件,该行将被删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多