logstash - 用于 XML 输入 Logstash 的数组时的条件拆分
问题描述
我正在尝试解析 XML 文件并想要拆分。但拆分字段并不总是数组。XML结构:
<A a="1">
<B b="1" q="10">
<C c="1" r="20"></C>
</B>
<B b="2" q="11">
<C c="2" r="21"></C>
<C c="3" r="22">
<M m="1" />
</C>
<B>
</A>
当我尝试拆分为
xml {
source => "message"
target => "doc"
force_array => false
}
split {
field => "doc[B][C]"
}
我收到错误,因为拆分只能在字符串或数组中完成。如何将字符串变异为数组,或者有其他方法可以解决这个问题吗?
预期输出:
{
C => {
c => 1,
r => 20,
}
B => {
b => 1,
q => 10,
}
}
{
C => {
c => 2,
r => 20,
}
B => {
b => 2,
q => 11,
}
}
{
C => {
c => 3,
r => 22,
M => {
m => 1
}
}
B => {
b => 2,
q => 11,
}
}
每个嵌套都充当一个单独的事件,并在弹性搜索中存储为不同的事件(行)。