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
- venv
- path.data
- airflow
- filebeat
- configure
- DSL
- devtools
- elasticsearch
- dense_vector
- logstash
- windows
- ubuntu
- node.js
- CSV
- query
- json
- elastic
- OPCUA
- framework
- Data Engineering
- 7.7.1
- typescript
- kibana
- Tutorial
- PYTHON
- ELK
- package.json
- KoA
- grok
- Crontab
Archives
- Today
- Total
Gibbs Kim's playground
[ElasticStack-6] 정규표현식(regex)과 Logstash 본문
정규표현식 : 특정한 규칙을 가진 문자열을 집합을 표현하는데 사용하는 형식 언어
정규 표현식 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 노랑색 강조 부분은 다음 정규식을 사용했을 때 매치된 것이다. 정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp[1] 또는 regex, rational expression)[2][3] 또는 정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있으며, 특히
ko.wikipedia.org
Logstash에서는 grok 이라는 이름의 filter 기능으로 정규표현식이 주로 사용된다
elastic/logstash
Logstash - transport and process your logs, events, or other data - elastic/logstash
github.com
사용목적은 다양하지만 필자는 주로 json 타입의 데이터를 추출하기 위해 사용하려고 한다.
(key : value 형태의 데이터) regex테스트페이지
regex 예제에 사용된 데이터 정보는 다음과 같은 패턴을 지닌다 (참고 : LINK, LINK2)
'''
"DATA": [
{
"stn_idx": "152",
"stn_line": "8",
"stn_nm": "모란역",
"stn_road_addr": "경기도 성남시 수정구 산성대로 지하100 (수진동)",
"stn_addr": "경기도 성남시 수정구 수진동 4808",
"stn_zip_code": "461-873",
"stn_phone": "02-6311-8261"
},
'''
### logstashcode.conf 에 적용될 형태
.+?stn_idx"+\N\s+"+([^"]+)
.+?stn_line"+\N\s+"+([^"]+)
.+?stn_nm"+\N\s+"+([^"]+)
.+?stn_road_addr"+\N\s+"+([^"]+)
.+?stn_addr"+\N\s+"+([^"]+)
.+?stn_zip_code"+\N\s+"+([^"]+)
.+?stn_phone"+\N\s+"+([^"]+)
### 일반적인 형태
.+?anyKey_jsonForm"+\N\s+"+([^"]+)