私はかなり単純な問題がありますが、それは私にとっては紛らわしいものです。私は残りのAPIを介してGerritデータを取得するためにLogstashを使用しようとしています。私はhttp_pollerを使用しています。私の設定で正しい応答が得られるので、私はほとんどそこにいます。 Gerrits JSON応答の開始からlogstashを使用してJSON応答からXSSI接頭辞を取り除く
今はXSSIプレフィックスを除去する必要がある)]}」。問題は、どうですか?それを剥ぎ取る方法、分割する方法、または変異させる方法、またはどうすればいいですか?
私の入力構成:
input {
http_poller {
urls => {
gerrit_projects => {
method => get
url => "http://url.to/gerrit/a/projects/"
headers => { Accept => "application/json" }
auth => { user => "userid" password => "supresecret" }
}
}
target => "http_poller_data"
metadata_target => "http_poller_metadata"
request_timeout => 60
interval => 60
}
}
filter {
if [http_poller_metadata] {
mutate {
add_field => {
"http_poller_host" => "%{http_poller_metadata[host]}"
"http_poller" => "%{http_poller_metadata[name]}"
}
}
}
if [http_poller_metadata][runtime_seconds] and [http_poller_metadata][runtime_seconds] > 0.5 {
mutate { add_tag => "slow_request" }
}
if [http_request_failure] or [http_poller_metadata][code] != 200 {
mutate { add_tag => "bad_request" }
}
}
output {
stdout { codec => rubydebug }
}
とレスポンスの部品:
Pipeline main started
JSON parse failure. Falling back to plain-text {:error=>#<LogStash::Json::ParserError: Unexpected character (')' (code 41)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at ... (bunch of lines)...
{
"http_poller_data" => {
"message" => ")]}'\n{\"All-Users\":{\"id\":\"All-Users\",....(more valid JSON)...",
"tags" => [
[0] "_jsonparsefailure"
],
"@version" => "1",
"@timestamp" => "2016-12-13T09:48:25.397Z"
},
"@version" => "1",
"@timestamp" => "2016-12-13T09:48:25.397Z",
"http_poller_metadata" => { ... }
これはStackOverflowのへの私の最初の質問です。あなたの答えを親切にしてくれてありがとう!
ありがとう、これは私の問題を解決するのに役立ちました! Iはフィルタセクションに次の行を追加: } のmutate {GSUB => [ "メッセージ"、 "^ \)]} '\ n"、 ""]} JSON {ソース=> "メッセージ"今のところレスポンスが必要なように見えます。 – Leicha
@Leicha No prob、喜んで助けた! – baudsp