일반적인 프로세서 사용 사례
다음은 프로세서 조합에 대한 일반적인 시나리오 및 구성 예제입니다.
예로그 형식 표준화 및 메타데이터 추가
JSON 로그를 구문 분석하고, 필드 이름을 표준화하고, 환경 정보를 추가합니다.
processor: - parse_json: {} - rename_keys: entries: - from_key: "timestamp" to_key: "@timestamp" - from_key: "log_level" to_key: "level" - add_entries: entries: - key: "environment" value: "production" - key: "application" value: "payment-service"
예필드 값 정리 및 정규화
상태 코드를 표준화하고 민감한 데이터를 제거합니다.
processor: - uppercase_string: with_keys: ["status", "method"] - delete_entries: with_keys: ["credit_card", "password"] - substitute_string: entries: - source: "status" from: "SUCCESS" to: "OK"
예특정 필드 추출 및 변환
분석을 위한 사용자 정보 및 형식 추출:
processor: - extract_value: entries: - source: "user_agent" target: "browser" from: "(?<browser>Chrome|Firefox|Safari)" to: "${browser}" - lowercase_string: with_keys: ["browser"] - move_keys: entries: - from_key: "browser" to_key: "user_data.browser"
예항목 수준 조건을 사용한 조건부 처리
항목 수준 when 조건을 사용하여 로그 심각도를 기반으로 다른 메타데이터 추가:
processor: - add_entries: entries: - key: "alert_level" value: "critical" when: "log.level == 'ERROR'" - key: "alert_level" value: "info" when_else: "log.level == 'ERROR'"
예원치 않는 로그 항목 삭제
타사 소스에서 디버그 및 트레이스 로그 항목을 필터링하여 노이즈 및 스토리지 비용 절감:
processor: - drop_events: when: "log.level in {'DEBUG', 'TRACE'}" handle_expression_failure: "skip"
예 delete_entries 포함 프로세서 수준 조건부
환경이 프로덕션인 경우에만 민감한 필드 제거:
processor: - delete_entries: with_keys: ["password", "api_key", "ssn"] when: "environment in {'prod', 'staging'}"