Grep Filter
Fluent bit에서 제공하는 필터 중 하나. Grep Filter를 이용해서 특정 패턴의 데이터를 Select 하거나 Exclude 할 수 있다.
Grep Filter는 아래와 같은 구조를 기본으로 사용 가능하다.
[FILTER]
Name grep
Match #tag
Regex or Exclude # Pattern 지정
- Regex: 지정하는 패턴을 Select 함. 해당 패턴의 데이터만 추출 됨
- Exclude: 지정하는 패턴을 Exclude 함. 해당 패턴의 데이터들은 제거됨.
필수로 지정해야 하는 파라미터 외에도 한개의 Optional 파라미터를 더 지원한다.
- Logical_Op: 논리 연산자 지정(AND, OR, legacy). Default는 legacy이며, including- AND, excluding- OR 사용.
공식 문서는 아래 링크를 참고하면 된다.
https://docs.fluentbit.io/manual/pipeline/filters/grep
Grep - Fluent Bit: Official Manual
[2023/01/22 09:46:49] [ info] [storage] ver=1.2.0, type=memory, sync=normal, checksum=off, max_chunks_up=128
docs.fluentbit.io
Grep Filter Exclude 예시
필터링 하고 싶은 데이터 예:
{"log": "[INFO ] 2023-03-29 15:17:30.024 [scheduling-1] sqltiming - SELECT * FROM t_message WHERE update_date >= (NOW() - INTERVAL '20 SECONDS') \n {executed in 19 msec}\n"}
Grep필터를 이용해서 위의 예시와 같은 쿼리의 로그를 Exclude 하도록 conf 파일을 작성한다.
[FILTER]
Name grep
Match example.*
Exclude log \[INFO \].+\[scheduling\-1\] sqltiming \- SELECT \* FROM t\_message WHERE update\_date \>\= \(NOW\(\) \- INTERVAL \'20 SECONDS\'\)
Exclude 파라미터를 이용해서 "log" 키의 value가 지정된 표현식에 매치되는 데이터는 제외되고 수집된다.
'Data Engineering > Fluentd' 카테고리의 다른 글
Fluent Bit으로 쿠버네티스 컨테이너의 로그파일에서 로그 수집 (0) | 2022.11.27 |
---|---|
Fluent-bit에서 multiline parser 사용 (0) | 2022.10.30 |