# Filter specific information

**URL:** https://discuss.elastic.co/t/filter-specific-information/329695
**Category:** Elastic em Português - Brasil
**Created:** [April 11, 2023, 1:25am UTC](https://discuss.elastic.co/t/filter-specific-information/329695 "2023-04-11T01:25:02Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![SilasMuniz1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/silasmuniz1/32/108267_2.png) [@SilasMuniz1](https://discuss.elastic.co/u/SilasMuniz1)
#### Post date: [April 11, 2023, 1:25am UTC](https://discuss.elastic.co/t/filter-specific-information/329695/1 "2023-04-11T01:25:02Z")

</div>

Hello,

I am trying filter a specific information inside of determite field.

I used kv for split my log.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/8/6/863ebfdcc6df4211640ff9ea6ffffb009540efd7.jpeg)

It's work well.

After that I need get apelido information inside request field. But It didn't work.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/4/d/4db04a51ef52c535f97426c3438ffd52062ec70b.png)

This information is inside request field.

Is there a way to get part of information inside request field? I don't need patterned all field.

Regards,

---

<div class="post-metadata">

### Author: ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)
#### Post date: [April 11, 2023, 1:27am UTC](https://discuss.elastic.co/t/filter-specific-information/329695/2 "2023-04-11T01:27:30Z")

</div>

Hello,

Please share a complete sample message and your configuration as a plain text using the preformatted text option, the `</>` button, this way it is possible to try to replicate what you are trying to do.

---

<div class="post-metadata">

### Author: ![SilasMuniz1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/silasmuniz1/32/108267_2.png) [@SilasMuniz1](https://discuss.elastic.co/u/SilasMuniz1)
#### Post date: [April 11, 2023, 2:13am UTC](https://discuss.elastic.co/t/filter-specific-information/329695/3 "2023-04-11T02:13:50Z")

</div>

@leandrojmp

Oi Leandro, vi que você também é do RJ. Sou carioca também. Pode ser em português ?

Segue um exemplo do campo request:

"\<POST /mov-centralizador/tela/Configuracao/ping HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded;charset=UTF-8\r\nContent-Length: 92\r\ncharset: UTF-8\r\nconnection: close\r\nAccpet-Encoding: gzip\r\nX-CNL-Ticket: 0020000000/K1Zgsc2BBBB\r\napelido=newapelido/\>

Eu preciso pegar somente a informação de apelido, o resto que está dentro do campo request não me interessa.

Como poderia fazer?

---

<div class="post-metadata">

### Author: ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)
#### Post date: [April 11, 2023, 4:03pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/4 "2023-04-11T16:03:44Z")

</div>

> [@SilasMuniz1](#):
>
> Oi Leandro, vi que você também é do RJ. Sou carioca também. Pode ser em português ?

Sem problemas.

Se você só precisa do que vem depois de `apelido=` você pode user um [`dissect`](https://www.elastic.co/guide/en/logstash/current/plugins-filters-dissect.html#plugins-filters-dissect) no campo `request`.

```auto
dissect {
    mapping => {
        "request" => "%{}apelido=%{apelido}/%{}"
    }
}

```

Esse filtro vai colocar tudo que estiver entre `apelido=` e `/` no campo `apelido`, na mensagem que você compartilhou seria o valor `newapelido`.

Só tem que validar se em todas as mensagens que você tem o campo `apelido` é o último no request.

---

<div class="post-metadata">

### Author: ![SilasMuniz1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/silasmuniz1/32/108267_2.png) [@SilasMuniz1](https://discuss.elastic.co/u/SilasMuniz1)
#### Post date: [April 13, 2023, 12:55pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/5 "2023-04-13T12:55:45Z")

</div>

@leandrojmp Bom dia. Tudo bem ?

Muito obrigado. Realmente o dissect me ajudou muito.

O campo apelido não é o ultimo do log e a configuração que me passou traz informação a mais que o campo apelido. Consegui resolver de um especifico, que procuro pelo valor soID. Como vem o valor soID=37748i3uu4| por exemplo. Coloquei a seguinte configuração de dissect:

dissect {  
mapping =\> {  
"request"=\> "%{}soID=%{soID}|"

Funcionou perfeitamente. Porém o apelido está pegando o inicio da string apos o sinal de = até o final do campo request. Estou procurando como faço para entender que apos a informação vem espaço. E ele tem que parar ali, por exemplo de log:

apelido=silas bundle=novobundle

tentei colocar %{}apelido=%{apelido}/bundle" e não funcionou.

Como nunca tinha utilizado dissect somente grok estou "apanhando" um pouco.

Estou vendo muitos erros de dissectfailure, porém fazendo uma analise entendi que sempre que passar o log pelo dissect e não tiver a informação para parsear ele dará um erro.

Vou testar um estrutura de if [request] == apelido para só entrar no dissect se tiver a informação que será parseada.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/6/b/6b196284ecb316839d0185fa768f15ccb57bb3de.jpeg)

Muito obrigado pela ajuda

---

<div class="post-metadata">

### Author: ![SilasMuniz1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/silasmuniz1/32/108267_2.png) [@SilasMuniz1](https://discuss.elastic.co/u/SilasMuniz1)
#### Post date: [April 13, 2023, 2:09pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/6 "2023-04-13T14:09:35Z")

</div>

@leandrojmp

Consegui resolver a questão acima de quebrar a consulta por espaço.

"%{}apelido=%{apelido} %{}"

Porém como tenho alguns logs que o valor que vem dentro do campo apelido vem precedido de espaço ele coloca a informação do campo como empty:

exemplo: apelido= Android.N38848

Tem alguma forma de tratar isso dentro do dissect ou teria que tratar o campo antes ?

Como ficou após a correção dita acima:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/2/7/27e8d215fde3c6a05d0c626426190d2ac07fcb52.png)

Obrigado

---

<div class="post-metadata">

### Author: ![SilasMuniz1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/silasmuniz1/32/108267_2.png) [@SilasMuniz1](https://discuss.elastic.co/u/SilasMuniz1)
#### Post date: [April 13, 2023, 7:19pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/7 "2023-04-13T19:19:37Z")

</div>

@leandrojmp

Consegui resolver também o problema acima rs

Agora única coisa que está acontecendo e um grande numero de dissectfailure. Acredito que o motivo seja que os logs nem sempre tem os campos coletados pelo dissect, então quando ele não encontra ele da esse erro. Pode ser isso ?

Muito obrigado mais uma vez

---

<div class="post-metadata">

### Author: ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)
#### Post date: [April 15, 2023, 3:41am UTC](https://discuss.elastic.co/t/filter-specific-information/329695/8 "2023-04-15T03:41:55Z")

</div>

> [@SilasMuniz1](#):
>
> Agora única coisa que está acontecendo e um grande numero de dissectfailure.

Se a mensagem não der match no padrão do dissect ele vai gerar um log e adicionar a tag `_dissectfailure`.

Dependendo do volume de mensagens isso vai gerar muito ruído no log e pode inclusive impactar na performance do logstash, o ideal é só passar pelo dissect quando a mensagem vai dar match no padrão configurado.

Nesse seu exemplo, você pode usar um condicional pra só mandar pro dissect se a mensagem tiver o campo que você precisa, algo assim:

```auto
if "apelido" in [campo] {
    dissect {
        mapping => {
            "campo" => "padrão dissect"
        }
    }
}

```

---

<div class="post-metadata">

### Author: ![SilasMuniz1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/silasmuniz1/32/108267_2.png) [@SilasMuniz1](https://discuss.elastic.co/u/SilasMuniz1)
#### Post date: [April 18, 2023, 8:53pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/9 "2023-04-18T20:53:23Z")

</div>

@leandrojmp Boa noite. Tudo bem ?

Consegui resolver todos os dissect que precisava.

Porém não estou conseguindo resolver a seguinte situação:

Tenho dois tipos de log:

apelido=valor

e

apelido= valor

Estou usando a seguinte configuração:

if "apelido=" in [request] {

dissect {  
mapping =\> {  
"request"=\> "%{}apelido=%{apelido} %{}"

}  
}  
}

e o outro:

if "apelido= " in [request] {

dissect {  
mapping =\> {  
"request"=\> "%{}apelido= %{apelido} %{}"

}  
}  
}

Os campos apelido não aparecem no final do log.

Consigo até parsear porém da uma faixa de 4% de erro de dissectfailure.

Tem alguma ideia de como resolver essa questão?

Obrigado pela ajuda

---

<div class="post-metadata">

### Author: ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)
#### Post date: [April 19, 2023, 12:57pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/10 "2023-04-19T12:57:47Z")

</div>

> [@SilasMuniz1](#):
>
> Tem alguma ideia de como resolver essa questão?

Talvez o dissect não seja o ideal pro seu tipo de log, compartilha alguns exemplos dos valores que esse campo `request` pode ter, quanto vem com "apelido=", quando vem com "apelido= " e quando vem sem.

Com uma massa de dados dá pra ver qual o melhor filtro ou como manipular o valor pra parsear corretamente.

---

<div class="post-metadata">

### Author: ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)
#### Post date: [April 25, 2023, 6:50pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/12 "2023-04-25T18:50:05Z")

</div>

Tem como compartilhar os logs em texto puro? Não dá pra simular nem testar nada dessa forma.

Pode anonimizar informações sensíveis se tiver.

---

<div class="post-metadata">

### Author: ![SilasMuniz1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/silasmuniz1/32/108267_2.png) [@SilasMuniz1](https://discuss.elastic.co/u/SilasMuniz1)
#### Post date: [April 25, 2023, 6:58pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/13 "2023-04-25T18:58:19Z")

</div>

@leandrojmp

Infelizmente não consigo. É um ambiente virtual que não consigo exportar. Somente printar.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [May 23, 2023, 6:58pm UTC](https://discuss.elastic.co/t/filter-specific-information/329695/14 "2023-05-23T18:58:49Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
