Удаление числового символа в фильтре Grok - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь написать фильтр Grok для анализа журналов WSO2 в logsta sh. Я могу отобразить все необходимые атрибуты. Но в одном атрибуте нам нужно удалить 10 цифровых символов.

Кто-нибудь, пожалуйста, подскажите, как это сделать в шаблоне Grok.

Пример - Попадание ниже:

"context": [
    [
      "/app/custManagement/v2/customer/lookup/9999999999"
    ]

Ожидается:

"context": [
    [
      "/app/custManagement/v2/customer/lookup/"
    ]

Журналы WSO2:

TID: [-1234] [] [2020-05-11 15:20:16,803]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  WSO2Status = SUCCESS, APIE2ETime = /app/custManagement/v2/customer/lookup/9999999999, X-External-CorrelationId = 7613691301, IN = 2020-05-11T15:20:15.656+05:30, OUT = 2020-05-11T15:20:16.803+05:30, HTTP_SC = 200, Channel = WEB, Http_Method = GET, RemoteAddress = 17.98.27.231 {org.apache.synapse.mediators.builtin.LogMediator}

Шаблон Grok:

TID:%{SPACE}\[%{INT:tenant_id}\]%{SPACE}\[]%{SPACE}\[%{TIMESTAMP_ISO8601:hit_timestamp}\]%{SPACE}%{LOGLEVEL:level}%{SPACE}{%{JAVACLASS:java_class}}%{SPACE}-%{SPACE}WSO2Status%{SPACE}=%{SPACE}%{WORD:Status},%{SPACE}APIE2ETime%{SPACE}=%{SPACE}%{GREEDYDATA:context},%{SPACE}X-External-CorrelationId%{SPACE}=%{SPACE}%{WORD:CorrelationId},%{SPACE}IN%{SPACE}=%{SPACE}%{TIMESTAMP_ISO8601:in_timestamp},%{SPACE}OUT%{SPACE}=%{SPACE}%{TIMESTAMP_ISO8601:out_timestamp},%{SPACE}HTTP_SC%{SPACE}=%{SPACE}%{INT:http_sc},%{SPACE}Channel%{SPACE}=%{SPACE}%{WORD:channel},%{SPACE}Http_Method%{SPACE}=%{SPACE}%{WORD:http_method},%{SPACE}RemoteAddress%{SPACE}=%{SPACE}%{IP:remoteaddress}%{SPACE}{%{JAVACLASS:java_class2}}

1 Ответ

1 голос
/ 26 мая 2020

Замените это:

=%{SPACE}%{GREEDYDATA:context},%{SPACE}

на

=%{SPACE}%{GREEDYDATA:context}/%{NUMBER},%{SPACE}
...