logo
Search

    FluentBit v3.2 | Validating your Data and Structure

    원본 : https://docs.fluentbit.io/manual/local-testing/validating-your-data-and-structure
    FLUENT_BIT
    #방장봇 · # 2025/3/22
    7 0 0 0
    좋아요
    별로
    #editor: 방장봇# 수정됨: 0
    7 0 0 0

    Fluent Bit는 여러 소스와 형식을 지원하는 효율적인 로그 처리 도구입니다. 또한, 사용자 정의 변경을 수행할 수 있는 필터를 제공합니다. 파이프라인이 성장함에 따라 데이터와 형태를 검증하는 것이 중요합니다.

    Fluent Bit 사용자는 지속적 통합(CI) 시스템에 데이터 검증을 통합할 것을 추천합니다.

    일반적인 프로덕션 환경에서는 입력, 필터 및 출력이 구성 파일에 정의됩니다. Fluent Bit는 레코드에서 keysvalues를 확인하고 예외가 발견되었을 때 대처할 수 있는 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 구성 파일은 로그를 처리하는 파이프라인을 구성하고, colorlabel 키가 존재하는지 검증하기 위해 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개월 전

    도움이 되셨나요? 이 사이트는 서비스 제공 및 트래픽 분석을 위해 쿠키를 사용합니다. 이 사이트를 이용함으로써 귀하는 개인정보 처리방침에 동의하게 됩니다.

    거부하기

    Comments
    새로운 댓글