2016-07-05 3 views
1

나는 ELK 스택을 관리하고 elastalert에 대한 규칙을 작성하는 임무를 맡았지만, elastalert의 query_key 기능을 사용하기 위해 이미 자신의 필드로 가지고있는 한 필드의 특정 부분이 필요합니다. 그 분야. 우리는 여기에서이 규칙을 사용하고 있습니다 :URI의 일부를 추출하기위한 grok 패턴

/path_field_1/UID/path_field_2/path_params

여기서 UID는 32 자의 고유 한 식별자 0-9, az, AZ입니다. 나는 Kibana의 전체 URI에 액세스 할 수 있지만, 결국 UID를 자체 필드로 사용하여 elastalert의 query_key를 사용할 수 있습니다. 이 UID를 포함하는 행 앞에 항상 "/ path_to_field_1 /"이옵니다.

총 초보자로서, 나는 이것을 달성하기위한 몇 가지 좋은 방법이 있을지 모르겠다. 그리고 나는 문서를 작성하고있다.

+0

https://github.com/logstash-plugins/logstash을 잡아 grok 수를 사용할 수, 앞의 비트가 항상 동일한 경우, grok 수보고 바른 길에 있었다 -patterns-core/tree/master/patterns는 그들의 공식 패턴 repo입니다. –

+0

이 문서들은 무엇인가요? https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html –

답변

2

당신은 당신이 UID

grok { 
    match => { 
    "uri_field" => "/path_to_field_1/%{DATA:UID}/%{GREEDYDATA}" 
    } 
} 
+0

예제가 약간 짧습니다. 다행히도 여기에 있습니다! –

+0

Wonderful - 이것이 처음에는 솔루션이라고 생각했던 것입니다.하지만 그것이 문서에서 작동하는 방식을 식별하는 것은 매우 어렵습니다. 감사! uri_field는 이미 캡처 한 URI 필드에 해당하며 UID라는 이름의 UID만을 사용하는 필드를 생성합니다. –

+0

grok이 기본적으로 버려지는 익명의 캡처이기 때문에'% {GREEDYDATA}'는 저장되지 않습니다. –