Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- dense_vector
- ubuntu
- logstash
- Data Engineering
- venv
- ELK
- elastic
- CSV
- json
- elasticsearch
- airflow
- kibana
- package.json
- KoA
- configure
- query
- typescript
- 7.7.1
- Crontab
- framework
- devtools
- DSL
- windows
- path.data
- grok
- OPCUA
- Tutorial
- filebeat
- node.js
- PYTHON
Archives
- Today
- Total
Gibbs Kim's playground
[ElasticStack-19] Logstash multiline indexing 본문
웹크롤링등을 하여 다음과 같은 패턴의 텍스트 파일이 있다고 하자.
<HTML>
<HEAD> 텍스트 막 써대 </HEAD>
<BODY> 이렇게 막 써대 </BODY>
...
...
</HTML>
이때, HTML TAG를 제외한 내용을 엘라스틱서치에 인덱싱하고 싶다면 다음과 같이 .conf 파일을 작성해보자
### It is operated on ELK 7.7.1
input{
file{
path => "WANTED_FILE_PATH" ## you should write your own file or dir path
start_position => "beginning"
sincedb_path => "/dev/null"
## above two lines, based on linux OS
codec => multiline {
pattern => "^\\n"
negate => true
what => "previous"
auto_flush_interval => 1
}
}
}
filter{
grok{
match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:file_name}\.txt" }
}
mutate{
gsub => [ "message", "<.*?>", "" ]
remove_field => ["path","host","@version","@timestamp","tags"]
}
if [message] == "" {
drop { }
}
}
output{
elasticsearch{
hosts => "localhost:9200"
index => "multiline_txt_idx"
}
stdout{
codec => rubydebug
}
}
확인한 바로 multiline codec의 특이사항은 다음의 항목들인것 같다.
1. 줄바꿈을 없애고 싶을 때 패턴 등록 줄바꿈은 "^\\n"으로 설정
2. auto_flush_interval 옵션을 적용해주지 않으면 업로드가 되지 않고 flush가 loop상태에 빠진다 (Debug 모드 확인시)
filter 항목에서는 gsub를 활용하여 <HTML> 형태의 태그를 없앨 수 있다. 이렇게 태그를 없애면 특정 필드(예: "message")에서 값이 "" 들어가 있는 녀석들이 발생하는데, if-drop 옵션을 사용해 없애버릴수 있다.
'Tech 기록지 > Elastic Stack' 카테고리의 다른 글
[ElasticStack-21] _msearch on elasticsearch (0) | 2020.06.23 |
---|---|
[ElasticStack-20] ES nori setting (0) | 2020.06.19 |
[ElasticStack-18] Result filtering of searching query (0) | 2020.06.17 |
[ElasticStack-17] File name extract in full file path (0) | 2020.06.15 |
[ElasticStack-16] Terms query & Aggregation (sum, avg) (0) | 2020.06.12 |