У меня есть такое сообщение:
`The is my sample HMAC message`HMAC HMAC HMAC
Я хочу заменить это на:
`The is my sample HMAC message`
Я пробовал код ниже, но он заменяет все вхождения HMAC:
mutate {
gsub => [ "message", "HMAC", "" ]
}
Я хочу, чтобы шаблон был заменен только после `. Как я могу добиться этого в logstash с помощью gsub?
Вы можете использовать грок.
filter {
grok {
match => { "message" => "`%{DATA:my_field_name}`" }
}
}
вывод будет:
{
"my_field_name": "The is my sample HMAC message"
}
Для проверки вы можете использовать отладчик kibana grok (см. скриншот) или вы можете использовать https://grokconstructor.appspot.com/do/match#result
Обновлено: вы можете создать новое поле с неповрежденными кавычками.
mutate {
add_field => { "my_new_field" => "`%{[my_field_name]}`" }
}
Вы можете использовать rename
изменение имени поля в фильтре mutate
. rename => {"old_field_name" => "new_field_name"}
Спасибо, Мусаб.. Это сработало.. еще один запрос. с помощью этого грока кавычки, которые являются частью сообщения, также заменяются. Как можно сохранить кавычки нетронутыми. Я имею в виду, что сообщение должно выглядеть так: The is my sample HMAC message
Это будет работать нормально. Но мне не разрешено менять имя поля. Его нужно хранить только как сообщение. Поэтому я хотел заменить с помощью gsub