2016-10-06 10 views
0

Я использую Filebeat шаблон многострочный в filebeat.yml, который принимает входные данные из одного файла следующим образом:шаблон, чтобы соответствовать полное слово в Filebeat шаблон мульти линии

2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestStartIdentifier: Identifier 
 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestUri: 
 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : HttpServletRequest: 
 
\t ContentType: text/xml; charset=utf-8 
 
\t ContextPath: 
 
\t LocalAddr: 
 
\t LocalName: 
 
\t PathInfo: 
 
\t PathTranslated: 
 
\t QueryString: 
 
\t RequestURI: 
 
\t RequestURL: 
 
\t RemoteHost: 
 
\t ServletPath: 
 
\t Header: Host: 
 
\t Header: Content-Length: 
 
\t Header: Accept-Encoding: 
 
\t Header: SOAPAction: "" 
 
\t Header: User-Agent: Apache-HttpClient/4.2.1 
 
\t Header: Content-Type: text/xml; charset=utf-8 
 
\t Header: Connection: Keep-Alive 
 
\t Header: Accept: text/xml 
 
\t 
 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : uri: , request: 
 
<env:Envelope></env:Envelope> 
 

 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestStartIdentifier: Identifier 
 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestUri: 
 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : HttpServletRequest: 
 
\t ContentType: text/xml; charset=utf-8 
 
\t ContextPath: 
 
\t LocalAddr: 
 
\t LocalName: 
 
\t PathInfo: 
 
\t PathTranslated: 
 
\t QueryString: 
 
\t RequestURI: 
 
\t RequestURL: 
 
\t RemoteHost: 
 
\t ServletPath: 
 
\t Header: Host: 
 
\t Header: Content-Length: 
 
\t Header: Accept-Encoding: 
 
\t Header: SOAPAction: "" 
 
\t Header: User-Agent: Apache-HttpClient/4.2.1 
 
\t Header: Content-Type: text/xml; charset=utf-8 
 
\t Header: Connection: Keep-Alive 
 
\t Header: Accept: text/xml 
 
\t 
 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : uri: , request: 
 
<env:Envelope></env:Envelope>

filebeat. YML

multiline: 
 
pattern: Identifier 
 
negate: true 
 
match: after

Я использую приведенную выше конфигурацию для соответствия «Идентификатор» в строке. Вывод должен быть по желанию

event -1 : 
 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestStartIdentifier: Identifier 
 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestUri: 
 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : HttpServletRequest: 
 
\t ContentType: text/xml; charset=utf-8 
 
\t ContextPath: 
 
\t LocalAddr: 
 
\t LocalName: 
 
\t PathInfo: 
 
\t PathTranslated: 
 
\t QueryString: 
 
\t RequestURI: 
 
\t RequestURL: 
 
\t RemoteHost: 
 
\t ServletPath: 
 
\t Header: Host: 
 
\t Header: Content-Length: 
 
\t Header: Accept-Encoding: 
 
\t Header: SOAPAction: "" 
 
\t Header: User-Agent: Apache-HttpClient/4.2.1 
 
\t Header: Content-Type: text/xml; charset=utf-8 
 
\t Header: Connection: Keep-Alive 
 
\t Header: Accept: text/xml 
 
\t 
 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : uri: , request: 
 
<env:Envelope></env:Envelope> 
 

 
event -2 : 
 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestStartIdentifier: Identifier 
 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestUri: 
 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : HttpServletRequest: 
 
\t ContentType: text/xml; charset=utf-8 
 
\t ContextPath: 
 
\t LocalAddr: 
 
\t LocalName: 
 
\t PathInfo: 
 
\t PathTranslated: 
 
\t QueryString: 
 
\t RequestURI: 
 
\t RequestURL: 
 
\t RemoteHost: 
 
\t ServletPath: 
 
\t Header: Host: 
 
\t Header: Content-Length: 
 
\t Header: Accept-Encoding: 
 
\t Header: SOAPAction: "" 
 
\t Header: User-Agent: Apache-HttpClient/4.2.1 
 
\t Header: Content-Type: text/xml; charset=utf-8 
 
\t Header: Connection: Keep-Alive 
 
\t Header: Accept: text/xml 
 
\t 
 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : uri: , request: 
 
<env:Envelope></env:Envelope>

ответ

0

Основываясь на ваших образцов, это выглядит, как мы можем использовать строки, содержащие requestStartIdentifier: Identifier, чтобы сигнализировать о начале нового события. Я использовал https://play.golang.org/p/BZ2ujeOZZ- для проверки различных многострочных параметров.

Filebeat конфигурации:

filebeat: 
    prospectors: 
    - input_type: log 
     paths: 
     - input.txt 
     multiline: 
     pattern: 'requestStartIdentifier: Identifier$' 
     negate: true 
     match: after 

output: 
    console: 
    pretty: true 

Filebeat выход (с новой строкой вспененных):

{ 
    "@timestamp": "2016-10-06T21:51:27.244Z", 
    "beat": { 
    "hostname": "host", 
    "name": "host" 
    }, 
    "input_type": "log", 
    "message": "2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestStartIdentifier: Identifier 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestUri: 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : HttpServletRequest: 
    ContentType: text/xml; charset=utf-8 
    ContextPath: 
    LocalAddr: 
    LocalName: 
    PathInfo: 
    PathTranslated: 
    QueryString: 
    RequestURI: 
    RequestURL: 
    RemoteHost: 
    ServletPath: 
    Header: Host: 
    Header: Content-Length: 
    Header: Accept-Encoding: 
    Header: SOAPAction: \"\" 
    Header: User-Agent: Apache-HttpClient/4.2.1 
    Header: Content-Type: text/xml; charset=utf-8 
    Header: Connection: Keep-Alive 
    Header: Accept: text/xml 

2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : uri: , request: 
\u003cenv:Envelope\u003e\u003c/env:Envelope\u003e 
", 
    "offset": 962, 
    "source": "input.txt", 
    "type": "log" 
} 
{ 
    "@timestamp": "2016-10-06T21:51:27.244Z", 
    "beat": { 
    "hostname": "host", 
    "name": "host" 
    }, 
    "input_type": "log", 
    "message": "2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestStartIdentifier: Identifier 
2016-10-06 14:36:00.419 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : requestUri: 
2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : HttpServletRequest: 
    ContentType: text/xml; charset=utf-8 
    ContextPath: 
    LocalAddr: 
    LocalName: 
    PathInfo: 
    PathTranslated: 
    QueryString: 
    RequestURI: 
    RequestURL: 
    RemoteHost: 
    ServletPath: 
    Header: Host: 
    Header: Content-Length: 
    Header: Accept-Encoding: 
    Header: SOAPAction: \"\" 
    Header: User-Agent: Apache-HttpClient/4.2.1 
    Header: Content-Type: text/xml; charset=utf-8 
    Header: Connection: Keep-Alive 
    Header: Accept: text/xml 

2016-10-06 14:36:00.420 DEBUG 29695 --- [XNIO-2 task-2] c.a.a.s.endpoint.endone.server : uri: , request: 
\u003cenv:Envelope\u003e\u003c/env:Envelope\u003e", 
    "offset": 1923, 
    "source": "input.txt", 
    "type": "log" 
} 
+0

привет AJ .. это не сработало. мой файл журнала не разделяется на события в зависимости от шаблона '\ $ \ $ \ $'. Можете ли вы предложить мне сделать это со словом .. 'requestStartIdentifier' – lakshmi

+0

Не могли бы вы предоставить более крупный журнал образцов с несколькими строками. И, пожалуйста, укажите, каков ожидаемый результат (покажите, что принадлежит каждому событию). Я не понимаю, как выглядят ваши журналы. –

+0

Я отредактировал сообщение с нужной информацией – lakshmi