데이터 매핑 예외 관리
IBM Cloud Logs 우선순위 인사이트 데이터 파이프라인을 통해 수집된 데이터가 다른 유형의 다른 로그 레코드에서 전송된 동일한 필드를 감지하는 경우 데이터 매핑 예외를 얻을 수 있습니다.
예를 들어, 애플리케이션에서 수집된 로그에는 유형 문자열이 있는 필드가 표시되고 다른 애플리케이션에서 생성된 다른 로그에는 동일한 필드가 숫자 또는 다른 유형으로 표시됩니다. 이로 인해 맵핑 예외가 발생합니다.
새 로그 필드가 이전에 IBM Cloud Logs에서 수집한 필드 이름으로 수집되었지만 값 유형이 다른 경우 매핑 예외가 발생할 수 있습니다. IBM Cloud Logs가 수집된 데이터를 색인하면 다음 유형 중 하나에 필드를 매핑하려고 시도합니다:
StringNumericObjectArray
예를 들어 user 필드가 수집되었고 첫 번째 수신된 값이 "username"인 경우, IBM Cloud Logs는 user 필드에 대해 string 형식의 인덱스를 생성할 수 있습니다:
"user": “username”`
나중에 이와 같이 형식이 지정된 "user"라는 필드가 있는 새 로그가 수집되는 경우:
"user": {
“email”: “username@yourcompany.com”,
”login”: “username”`
}
매핑 예외는 IBM Cloud Logs에 생성됩니다. user 필드를 찾는 우선순위 인사이트 검색은 user 필드로 수집된 첫 번째 로그에 따라 string 값을 가질 것으로 예상됩니다.
array 유형(user.email 또는 user.login)으로 user 을 검색하는 우선순위 인사이트 은 매핑 예외로 인해 결과를 반환하지 않습니다.
맵핑 예외 수 확인
맵핑 예외의 수를 확인하려면 탐색줄에서 사용법 아이콘 > 맵핑 통계를 클릭하십시오. 맵핑 예외-오늘의 수 섹션에서 매일 총 맵핑 예외 수를 가져올 수 있습니다.
맵핑 예외가 있는 필드 식별
맵핑 예외의 원인이 되는 필드를 식별하기 위해 다음 조회를 실행할 수 있습니다.
_exists_:"coralogix.failed_reason"
매핑 예외가 포함된 데이터 검색
우선순위 인사이트 검색할 때 매핑 예외가 포함된 로그 레코드는 자유 텍스트 쿼리를 사용해야만 검색할 수 있습니다.
인스턴스에 연결된 데이터 버킷이 있는 경우 모든 로그를 통해 로그를 검색할 수 있습니다. 자유 텍스트 쿼리를 사용하거나 키:값 쌍을 사용하여 검색할 수 있습니다.
경보
알림은 데이터 매핑 예외의 영향을 받지 않으며 정상적으로 계속 트리거됩니다.
맵핑 예외가 있는 필드 수정
맵핑 예외를 수정하려면 맵핑 예외를 보고하는 필드와 다른 유형의 동일한 필드를 전송하는 애플리케이션을 식별하십시오. 그런 다음 소스에서 문제점을 수정하십시오.
매핑 예외를 식별하려면 다음 단계를 완료하세요:
-
로그 수 옆에 있는 아이콘이 있는 IBM Cloud Logs UI를 확인하세요.
매핑 예외 아이콘 아이콘 위에 마우스를 올리면 선택한 기간 내 쿼리 결과에서 매핑 예외가 있는 로그의 수가 표시됩니다.
-
적절하게 인덱싱되지 않은 특정 로그를 식별하려면
Show Mapping errors옵션을 활성화하세요.
매핑 오류를 표시하는 방법 선택 -
이 옵션을 활성화한 후 브라우저를 새로 고칩니다.
매핑 예외가 있고 인덱싱되지 않은 필드에는 느낌표가 표시됩니다.
매핑 예외가 있는 필드 플래깅 매핑 예외가 있는 필드를 빠르게 식별하는 또 다른 방법은
_exists_: coralogix.failed_reason쿼리를 실행하는 것입니다.
매핑 예외를 표시하는 쿼리입니다. 이 쿼리는 선택한 기간에 대한 매핑 예외가 있는 로그 줄만 반환합니다.
매핑 예외를 해결하는 방법은 두 가지가 있습니다.
-
옵션 1: 인덱싱 없이 검색
매핑 예외로 인해 쿼리 시 필드를 찾을 수 없는 경우,
All LogsPriority Insights' 대신 'code1'에서 검색할 수 있습니다.All Logs에서 검색할 때 인덱싱 및 매핑 예외는 검색을 통해 우회됩니다. -
옵션 2: 수집 시 로그 레코드를 수정합니다.
필드 이름은 같지만 데이터 유형이 다른 새 로그 레코드가 수집되는 것을 방지할 수 있습니다.
-
필드 이름을 적절한 접미사로 바꾸려면 RegEx 표현식을 만듭니다. 예를 들어, 다음과 같습니다.
field_obj- IBM Cloud Logs 이 문자열을 기대했지만 객체를 찾은 경우:
- 정규식:
("field"\s*:\s*{) - 바꿀 문자열:
"field_obj":{
- 정규식:
field_arr- IBM Cloud Logs 이 문자열을 기대했지만 배열을 찾은 경우:
- 정규식:
("field"\s*:\s*[) - 바꿀 문자열:
"field_arr":[
- 정규식:
field_str- IBM Cloud Logs 이 객체를 기대했지만 문자열을 찾은 경우:
- 정규식:
("field"\s*:\s*") - 바꿀 문자열:
"field_str":"
- 정규식:
-
RegEx 사용하여 새로운 로그를 수정하기 위한 구문 분석 바꾸기 규칙을 만듭니다.
-