#logstash #elastic-stack #logstash-grok
#logstash #эластичный стек #logstash-grok
Вопрос:
Я хочу удалить otherString
поле. Я пробовал, но безрезультатно.
input {
tcp {
port => "5000"
}
}
filter {
grok {
match => {"message" => "{"serviceName":"%{DATA:indexName}","%{DATA:otherString"}}"}
}
json {
source => "message"
}
mutate {
remove_field => ["message", "otherString"]
add_field => { "[@metadata][index_name]" => "%{indexName}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "%{[@metadata][index_name]}"
}
stdout { codec => rubydebug }
}
ВЫВОД:
{
"@timestamp" => 2019-03-26T12:43:45.628Z,
"level" => "info",
"userId" => "bbs234isad2i3h4isand",
"indexName" => "bff_web",
"otherString\" => "datetime":"2019-02-02 18:13:45:311","userId":"bbs234isad2i3h4isand","apiName":"/v1/admin/deposit/purpose","apiResponseTime":3692,"accessedTables":["-"],"userIP":"127.0.0.1","reqParam":{",
"apiResponseTime" => 3692,
"reqMethod" => "POST",
"port" => 565656,
"serviceName" => "bff_web",
"apiName" => "/v1/admin/deposit/purpose",
"@version" => "1",
"userIP" => "127.0.0.1",
"file" => "/Users/private/Desktop/arjun-git/bff-web/cashiers.server.controller.js",
"label" => "/usr/local/bin/node",
"accessedTables" => [
[0] "-"
],
"line" => "4972",
"reqParam" => {},
"host" => "2.2.2.2",
"datetime" => "2019-02-02 18:13:45:311"
}
Ответ №1:
Кажется, что ваше имя поля «otherString «, что не совпадает с «otherString». Не могли бы вы попробовать либо исправить способ, которым вы называете это поле в первую очередь, либо адаптировать фильтр mutate для соответствия этому конкретному имени поля?
Комментарии:
1. Я пробовал это
remove_field => ["message", "otherString"]
, но возникает исключение grok not match. Я не знаю, почему в ключе появляется знак (косая черта)2. Вы назвали свое поле символом «» в конце …%{DATA:otherString»}. Просто измените его на «%{DATA:otherString}