elasticsearch 日志存储配置文件错误(应答不工作),elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" /> elasticsearch 日志存储配置文件错误(应答不工作),elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" />

elasticsearch 日志存储配置文件错误(应答不工作)

elasticsearch 日志存储配置文件错误(应答不工作),elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration,关于[url][queryString],唯一可以确定的是它以404开头;或者钥匙很长。我需要取下这些钥匙。 如果我使用下面的ruby代码,它会给出无法将链接的hashmap转换为字符串异常 input { file { # Wildcards work, here :) path => ["C:\Users\ppurush\Desktop\test\*.log"] start_position => "beginning"

关于[url][queryString],唯一可以确定的是它以404开头;或者钥匙很长。我需要取下这些钥匙。 如果我使用下面的ruby代码,它会给出无法将链接的hashmap转换为字符串异常

input {
    file {
        # Wildcards work, here :)
        path => ["C:\Users\ppurush\Desktop\test\*.log"]
        start_position => "beginning"
    }
}

filter {
    ruby {
        code=>
        "
        require json
        my_hash = JSON.parse([url][queryString])
        my_hash.delete_if { |key,value| key.to_s.match(/^404;/) }
        "
    }
}

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

您会得到一个ruby异常,因为您的ruby代码无效。请尝试以下方法:

filter {
    ruby {
        init => "require 'json'"
        code => "
            my_hash = JSON.parse( event['url']['queryString'] )
            my_hash.delete_if { |key,value| key.to_s.match(/^404;/) }
        "
    }
}
如果您的事件有一个包含有效json的
'url'=>'queryString'
字段,则此选项有效。您可能已经有了某种过滤器来实现这一点(例如)。您也可以考虑使用LogSTASH内置的,也可以删除某些事件。
编辑: 假设您的输入是纯json(我必须整理一下):

您可以在文件输入中使用
codec=>“json”

input {
    file {
        path => ["C:\Users\ppurush\Desktop\test\*.log"]
        start_position => "beginning"
        codec => "json"
    }
}
您将获得一个字段:

"url" => {
         "rawUrl" => "val7",
           "path" => "val8",
    "queryString" => {
        "404;dfdgfdgf‌​ghfhjghhhhhhhhhhhhh" => ""
    }
}
So
404;dfdgfdgf‌​GHFHJGHHHHHHHHHH
也是一个变量。要检查并删除事件,可以执行以下操作:

if [url][queryString][404;dfdgfdgf‌​ghfhjghhhhhhhhhhhhh] {
        drop {}
    }

你能分享你看到的错误和你正在索引的一些示例日志行吗?这是我得到的错误“@version”=>“1”,“path”=>“C:/Users/ppurush/Desktop/test/test.log”,“tags”=>[[0]“_rubyexception”]}{{“id”:“val1”,“host”:“val2”,“app”:“val3”,“@timestamp”:“2015-08-04T19:00:03.6429322Z”,“@timestampEnd”:“2015-08-04T19:00:03.6429322Z”,“vid”:“val4”,“vidNew”:val5,“sessionId”:“val6”,“url”:{“rawUrl”:“val7”,“path”:“val8”,“queryString”:{“404;dfdgfghfhjghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh这是一个日志条目行。querystring..它会工作吗?我没有使用grok。我不太了解grok的用法。我如何使用grok指定这样的条目?我还尝试使用kv筛选器,因为我需要在[url][querystring]中提取密钥并检查它是否以404开头。我无法提取密钥。我用此代码尝试了它。但我仍然得到一个例外您输入的是纯json。您不需要grok或ruby筛选器。请参阅我的编辑。这是否有效?如果[url][queryString][/^404;/]{drop{}}
if [url][queryString][404;dfdgfdgf‌​ghfhjghhhhhhhhhhhhh] {
        drop {}
    }