개요
이 프로세서는 Extensible Markup Language(XML)를 구문 분석하여 해당 데이터를 처리하고 서로 다른 대상으로 전송할 수 있도록 합니다. XML은 구조화된 데이터를 저장하고 전송하는 데 사용되는 로그 형식입니다. 이는 트리 구조로 구성되어 중첩된 정보를 나타내며 태그와 특성을 사용하여 데이터를 정의합니다. 예를 들어, 다음은 태그(<recipe>, <type>, <name>)만 사용하고 특성은 사용하지 않는 XML 데이터입니다.
<recipe>
<type>pasta</type>
<name>Carbonara</name>
</recipe>
다음은 태그 recipe가 특성 type을 가지는 XML 예시입니다.
<recipe>
<recipe type="pasta">
<name>Carbonara</name>
</recipe>
다음 이미지에서는 XML 형식의 Windows 이벤트 4625 로그와 구문 분석되어 JSON으로 출력된 동일한 로그를 나란히 보여줍니다. XML 로그를 구문 분석함으로써 로그 이벤트 크기가 약 30% 감소했습니다.
설정
이 프로세서를 설정하려면 다음 단계를 따르세요.
- filter query를 정의합니다. 자세한 내용은 로그 검색 구문을 참조하세요.
- 필터와 일치하는 로그만 처리됩니다.
- 모든 로그는 필터 쿼리와 일치하는지 여부에 관계없이 파이프라인의 다음 단계로 전송됩니다.
- XML을 구문 분석하려는 로그 필드의 경로를 입력합니다. 하위 필드를 일치시키려면
<OUTER_FIELD>.<INNER_FIELD> 경로 표기법을 사용하세요. 아래의 경로 표기법 예시를 참조하세요. - 필요시
Enter text key 필드에 XML 특성이 추가될 때 텍스트 노드에 사용할 키 이름을 입력합니다. 텍스트 키 예시를 참조하세요. 필드를 비워 두면 value가 키 이름으로 사용됩니다. - 필요시 특성이 없는 경우에도 텍스트 키를 사용하여 객체 내부에 텍스트를 저장하려면 Always use text key를 선택합니다.
- 필요시 XML 특성을 포함하려면 Include XML attributes를 켭니다. 그런 다음 사용하려는 특성 접두사를 추가하도록 선택할 수 있습니다. 특성 접두사 예시를 참조하세요. 필드를 비워 두면 원본 특성 키가 사용됩니다.
- 필요시 데이터 유형을 숫자, 불리언 또는 null로 변환할지 선택합니다.
- Numbers를 선택하면 숫자가 정수 및 부동 소수점으로 구문 분석됩니다.
- Booleans를 선택하면
true 및 false가 불리언으로 구문 분석됩니다. - Nulls를 선택하면 문자열
null이 null로 구문 분석됩니다.
경로 표기법 예시
For this log structure example:
{
"outer_key": {
"inner_key": "inner_value",
"a": {
"double_inner_key": "double_inner_value",
"b": "b value"
},
"c": "c value"
},
"d": "d value"
}
Follow these reference rules:
- Use
outer_key.inner_key to reference the key with the value inner_value. - Use
outer_key.a.double_inner_key to reference the key with the value double_inner_value.
To specify a nested field with a literal . in the attribute key, wrap the key in escaped quotes in the search query. For example, the search query "service.status":disabled matches the event {"service.status": "disabled"}.
Always use text key 예시
Always use text key를 선택하면 텍스트 키가 기본값(value)이 되며, 다음 XML이 생성됩니다.
<recipe>
<recipe type="pasta">
<name>Carbonara</name>
</recipe>
XML은 다음과 같이 변환됩니다.
{
"recipe": {
"type": "pasta",
"value": "Carbonara"
}
}
텍스트 키 예시
키가 text이고 다음과 같은 XML이 있는 경우
<recipe>
<recipe type="pasta">
<name>Carbonara</name>
</recipe>
XML은 다음과 같이 변환됩니다.
{
"recipe": {
"type": "pasta",
"text": "Carbonara"
}
}
특성 접두사 예시
Include XML attributes를 활성화하면 특성이 각 XML 특성의 접두사로 추가됩니다. 예를 들어, 특성 접두사가 @이고 다음과 같은 XML이 있는 경우
<recipe type="pasta">Carbonara</recipe>
XML은 JSON으로 변환됩니다.
{
"recipe": {
"@type": "pasta",
"<text key>": "Carbonara"
}
}
상태 메트릭
모든 프로세서에서 내보내는 구성 요소 메트릭 및 프로세서 버퍼 메트릭에 대한 자세한 내용은 파이프라인 사용량 메트릭 설명서를 참조하세요. Parse 프로세서 메트릭별로 필터링하거나 그룹화하려면 component_type:parse 태그를 사용하세요.
추가 자료