2016-09-29 4 views
0

Я пытаюсь разобрать этот Elb журналы с свиньей, и я могу разобрать его успешного использования этого сценариясвинья скрипт для разбора AWS ELB войти

+++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++ 2016-07-16T00: 00: 41.700161Z testelb 11.11.17.2:50883 192.168.1.94:80 0.00002 0.001392 0.000019 200 200 0 43 "GET http://test.example.com:80/bac?aid=b5cf542d74&cid=etrsewtp&bid=23c45c543&dte=Sat%20Jul%2016%202016%2008:00:41%20GMT+0800%20(HKT) HTTP/1.1" "Mozilla/5.0 (iPhone, iPhone OS OS 9_3_2, как Mac OS X) AppleWebKit/601.1.46 (KHTML, например, Gecko) Mobile/13F69 "- - +++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++

*************************************************************** 
A = LOAD '/tmp/one.log' USING TextLoader AS (line:chararray); 

B = FOREACH A GENERATE FLATTEN (
    REGEX_EXTRACT_ALL(
      line,'^(\\S+) (\\S+) (\\S+) (\\S+) (\\S+) (\\S+) (\\S+) (\\S+) (\\S+) (\\S+) (\\S+) "(.+?)" "(.+?)" (\\S+) (\\S+)') 
    ) AS (
    timestamp:chararray, elb:int, client_port:chararray, backend_port:chararray, request_processing_time:float, backend_processing_time:float, response_processing_time:float, elb_status_code:int, backend_status_code:int, received_bytes:int, sent_bytes:int, request:chararray, user_agent:chararray, ssl_cipher:chararray, ssl_protocol:chararray 
); 

DUMP B; 

Теперь я хочу извлечь запрос URL, помощь, ставку, cid и т. Д., Но не в состоянии соответствовать регулярному выражению. Может ли кто-нибудь помочь мне получить эти данные?

Помимо вышеописанного метода регулярных выражений, если есть какой-либо другой метод, чтобы получить полную информацию журнала локтя, то я хотел бы знать.

ПРИМЕЧАНИЕ. Позиция помощи, ставки и cid не фиксируется в журнале запросов.

ответ

Смежные вопросы