用于解析 aws elb 日志的猪脚本

Posted

技术标签:

【中文标题】用于解析 aws elb 日志的猪脚本【英文标题】:pig script to parse aws elb log 【发布时间】:2016-09-29 16:33:34 【问题描述】:

我正在尝试用 pig 解析这个 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 @987654321 like@Mac (iPhone CPU OS) (iPhone CPU OS 1.1" "Mozilla/5. OS X) AppleWebKit/601.1.46 (Khtml, like 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、aid、bid、cid 等,但无法匹配正则表达式。有人可以帮我获取这些详细信息吗?

除了上述正则表达式方法之外,如果还有其他方法可以获取完整的 elb 日志详细信息,那么我想知道。

注意:请求日志中的aid、bid和cid的位置不固定。

【问题讨论】:

【参考方案1】:

您的问题已经回答here

Alternate way to do the same task 需要自定义加载器。

【讨论】:

以上是关于用于解析 aws elb 日志的猪脚本的主要内容,如果未能解决你的问题,请参考以下文章

ENI 已注册到 Elastic Load Balancer - AWS

从 AWS Beanstalk 检索 Apache 日志文件

python 用于解析IIS6服务器日志的时间戳,URL和端口的脚本。

如何将 AWS Redshift 用户活动日志解析为对象?

将 aws ELB 用于另一个托管实例

用于从文本日志文件中提取/检索值的 Shell 脚本(sqlcode 字段值)