Как заменить шаблон после определенного символа в сообщении logstash

У меня есть такое сообщение:

`The is my sample HMAC message`HMAC HMAC HMAC

Я хочу заменить это на:

`The is my sample HMAC message`

Я пробовал код ниже, но он заменяет все вхождения HMAC:

mutate {
                    gsub => [ "message", "HMAC", "" ]
                  }

Я хочу, чтобы шаблон был заменен только после `. Как я могу добиться этого в logstash с помощью gsub?

0
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать грок.

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]}`" }
}

Это будет работать нормально. Но мне не разрешено менять имя поля. Его нужно хранить только как сообщение. Поэтому я хотел заменить с помощью gsub

abhisheknayak777 02.02.2023 10:49

Вы можете использовать rename изменение имени поля в фильтре mutate. rename => {"old_field_name" => "new_field_name"}

Musab Dogan 02.02.2023 11:13

Спасибо, Мусаб.. Это сработало.. еще один запрос. с помощью этого грока кавычки, которые являются частью сообщения, также заменяются. Как можно сохранить кавычки нетронутыми. Я имею в виду, что сообщение должно выглядеть так: The is my sample HMAC message

abhisheknayak777 02.02.2023 14:20

Другие вопросы по теме