Fluent Bit는 여러 소스와 형식을 지원하는 효율적인 로그 처리 도구입니다. 또한, 사용자 정의 변경을 수행할 수 있는 필터를 제공합니다. 파이프라인이 성장함에 따라 데이터와 형태를 검증하는 것이 중요합니다.
Fluent Bit 사용자는 지속적 통합(CI) 시스템에 데이터 검증을 통합할 것을 추천합니다.
일반적인 프로덕션 환경에서는 입력, 필터 및 출력이 구성 파일에 정의됩니다. Fluent Bit는 레코드에서 keys
와 values
를 확인하고 예외가 발견되었을 때 대처할 수 있는 Expect 필터를 제공합니다.
데이터 처리 파이프라인의 간단한 구조는 다음과 같습니다:
구조 및 구성 이해하기
다음 파이프라인을 살펴보십시오. 데이터 소스는 JSON 콘텐츠가 포함된 파일이며 두 개의 필터가 있습니다:
-
특정 레코드를 제외하는 grep
-
특정 키를 추가 및 제거하여 레코드 내용을 변경하는 record_modifier.
각 단계 사이에 데이터 검증을 추가하여 데이터 구조가 정확한지 확인하십시오.
이 예시에서는 expect
필터를 사용합니다.
Expect
필터는 다음과 같은 기준을 확인하기 위한 규칙을 설정합니다:
-
레코드에 키
A
가 존재합니까? -
레코드에 키
A
가 포함되어 있지 않습니까? -
레코드의 키
A
값이 비어 있습니까? -
레코드의 키
A
값이 비어 있지 않습니까? -
레코드의 키
A
값이B
와 같은가요?
모든 expect
필터 구성은 구성 속성을 사용하여 레코드의 내용을 검증하는 규칙을 노출합니다.
구성 테스트
다음 내용을 포함하는 JSON 파일 data.log
를 살펴보십시오:
{"color": "blue", "label": {"name": null}} {"color": "red", "label": {"name": "abc"}, "meta": "data"} {"color": "green", "label": {"name": "abc"}, "meta": null}
다음 Fluent Bit 구성 파일은 로그를 처리하는 파이프라인을 구성하고, color
와 label
키가 존재하는지 검증하기 위해 expect
필터를 적용합니다:
[SERVICE] flush 1 log_level info parsers_file parsers.conf
[INPUT] name tail path ./data.log parser json exit_on_eof on
문서 내 헤드라인으로의 링크
첫 번째 'expect' 필터로 데이터가 올바르게 구조화되었는지 검증
[FILTER] name expect match * key_exists color key_exists label의 name 키 존재 여부 action exit
[OUTPUT] name stdout match *
JSON 파서가 실패하거나 tail
입력에서 누락된 경우(json 파서), expect
필터는 exit
동작을 트리거합니다.
파이프라인을 확장하기 위해 label
에 키 name
이 값 abc
인 레코드와 일치하는 grep 필터를 추가하고, 조건을 다시 검증하기 위해 expect
필터를 추가하십시오:
[SERVICE] flush 1 log_level info parsers_file parsers.conf
[INPUT] name tail path /absolute/path/to/data.log parser json exit_on_eof on
첫 번째 'expect' 필터를 통한 데이터 구조 확인
[FILTER] name expect match * key_exists color key_exists label action exit
데이터 레이블에 속성 'name' = 'abc'인 데이터와 일치
[FILTER] name 검색 일치 * 정규 표현식 $데이터 레이블['이름'] ^abc$
레코드의 'label' 필드 값 확인
[필터] 이름 예상 결과 일치하는 모든 항목 key-value 비교 $label['name'] abc 작업 종료
환경 변수 활용하여 기록에 새로운 키를 추가하는 방법
[FILTER]
name record_modifier
match *
record hostname ${HOSTNAME} # 호스트 이름
모든 레코드가 'hostname' 키를 포함하는지 확인
필터링 | 기대값 |
---|---|
이름 | expect |
일치 | * |
키 존재 확인 | hostname |
작업 | exit |
출력 | 표준 출력 |
---|---|
이름 | stdout |
일치 | * |
프로덕션 배포 문서 링크
프로덕션 배포 시 구성에서 expect
필터 제거를 고려하세요. 이러한 필터는 런타임에서 100% 검증이 필요하지 않다면 불필요합니다.
최종 업데이트: 5개월 전
도움이 되셨나요? 이 사이트는 서비스 제공 및 트래픽 분석을 위해 쿠키를 사용합니다. 이 사이트를 이용함으로써 귀하는 개인정보 처리방침에 동의하게 됩니다.
거부하기