Logstash espera \ n que procese un XML
Estoy tratando de analizar un archivo XML y leer solo una etiqueta de todo el XML usando los patrones de Grok.
Mi patrón grok se ve así. Es capaz de analizar un XML cuando está correctamente sangrado, ya que hay una nueva línea después de cada etiqueta de cierre. Pero cuando el archivo viene sin espacios entre etiquetas consecutivas, este patrón no funciona. ¿Alguien podría ayudar aquí?
input {
beats {
port => 5045
type => 'iis'
}
}
filter {
#ignore log comments
if [message] =~ "^#" {
drop {}
}
grok {
patterns_dir => "./patterns"
match => ["message", "%{DATA:extras}<LoadID%{DATA:extra}>%{DATA:ASNNumber}%{GREEDYDATA:behind}"]
}
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss" ]
locale => "en"
}
}
Second filter
filter {
if "_grokparsefailure" in [tags] {
drop { }
} else {
# on success remove the message field to save space
mutate {
remove_field => ["message", "timestamp", "extra", "extras", "behind"]
}
}
}
Esto falla:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><tns:ASNAck xmlns:tns='http://www.xyx.com/YYY/logistics/mxg/xnsds/V1_0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><MessageHeader><MessageID>3031999515</MessageID><MessageTimeStamp>2017-09-12T06:37:36Z</MessageTimeStamp><SenderID>XBHSNS</SenderID><ReceiverID>GOLF_DAO</ReceiverID><MessageType>ACKACKACK</MessageType><CorrelationID>2d323537383935353034383933383135</CorrelationID></MessageHeader><Masterbill>G829441</Masterbill><LoadID>Jitesh555</LoadID><Accept>true</Accept><ReasonCode/><ReasonDescription/></tns:ASNAck>
Esto funciona:
<tns:ASNAck xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://www.xyx.com/YYY/logistics/mxg/xnsds/V1_0">
<MessageHeader>
<MessageID>20170704080189</MessageID>
<MessageTimeStamp>2017-07-04T20:17:30Z</MessageTimeStamp>
<SenderID>KNN_DAO_MXC</SenderID>
<ReceiverID>GOLF_DAO</ReceiverID>
<MessageType>InboundASNAck</MessageType>
<CorrelationID>2d383736363033383337333530313338</CorrelationID>
</MessageHeader>
<MasterWaybill>C211</MasterWaybill>
<LoadID>10112275912A02</LoadID>
<Accept>true</Accept>
<ReasonCode>0</ReasonCode>
<ReasonDescription/>
</tns:ASNAck>
Esto también funciona:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><tns:ASNAck xmlns:tns='http://www.xyx.com/YYY/logistics/mxg/xnsds/V1_0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><MessageHeader><MessageID>3031999515</MessageID><MessageTimeStamp>2017-09-12T06:37:36Z</MessageTimeStamp><SenderID>XBHSNS</SenderID><ReceiverID>GOLF_DAO</ReceiverID><MessageType>ACKACKACK</MessageType><CorrelationID>2d323537383935353034383933383135</CorrelationID></MessageHeader><Masterbill>G829441</Masterbill><LoadID>Jitesh555</LoadID>
<Accept>true</Accept><ReasonCode/><ReasonDescription/></tns:ASNAck>