HTTPD::Log::Filter

本文介绍了一个Perl脚本,利用HTTPD::Log::Filter模块高效分析Apache日志。通过实例展示了如何过滤并提取请求和主机等关键信息。

如果我们工作中经常需要分析Apache日志,这个模块可以提供一些方便。

创建对象实例以后,用filter方法来过滤,没有正确匹配的行将返回false,然后用相应的方法print出我们需要的数据。(host,request,date...等等方法,由capture选项以参数引入)

可以用re方法打印出作者所使用的匹配模式:

use HTTPD::Log::Filter;

print HTTPD::Log::Filter->new(format=>"CLF",capture=>['request'])->re;

详见perldoc HTTPD::Log::Filter。

#!/usr/bin/perl 
use strict; 
use HTTPD::Log::Filter; 

my $filter = HTTPD::Log::Filter->new(format => "CLF", 
                           capture => ['request', 'host']); 

foreach(`cat access_log`) 
{ 
   chomp; 
   unless( $filter->filter($_) ) 
   { 
      print "[$_]\n"; 
      next; 
   } 
   print $filter->request, "\n"; 
} 
exit 0;


Process name:[compshell] Thread name:[opTask_6186] Thread stack address:[0xffff89e71000] Thread stack size:[2228224] dump time: 2025-08-29 00:07:58 segmentation fault trace: info.si_signo = 6 info.si_errno = 0 info.si_code = -6(SEGV_MAPERR, address not mapped to object) ---------------------------------------------------------------------------- Register dump: r0: 0000000000000000 r1: 0000ffff8a08b730 r2: 0000000000000000 r3: 0000000000000008 r4: 0000000000000000 r5: 0000ffff8a08b730 r6: ffffffffffffffff r7: ffffffffffffffff r8: 0000000000000087 r9: ffffffffffffffff r10: ffffffffffffffff r11: ffffffffffffffff r12: ffffffffffffffff r13: ffffffffffffffff r14: 0000000000000000 r15: 0000ffff740008d0 r16: 0000ffff8cf6e9c8 r17: 0000ffff8cbbcab8 r18: 0000000000000000 r19: 0000000000000006 r20: 0000ffff8a0901e0 r21: 0000ffff89e6f000 r22: 0000ffff8a08b960 r23: 0000000000000002 r24: 0000000000000001 r25: 0000ffff8cc6b078 r26: 0000000000000002 r27: 0000ffff8a08b990 r28: 0000ffff8d055000 r29: 0000ffff8a08b710 r30: 0000ffff8cb78110 pc: 0000ffff8cb78184 fp: 0000ffff8a08b710 pstate: 0000000000000000 ---------------------------------------------------------------------------- Backtrace: [503.482][INFO][body is data=%7B%22method%22%3A%22get%22%2C%22params%22%3A%7B%7D%7D][httpConvertForm2Json:89][httpd,6158,2671374352] [503.482][INFO][decode is {"method":"get","params":{}}][httpConvertForm2Json:93][httpd,6158,2671374352] [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlFilteringListHandle()/521>] +++++++++++++++++method: get******************** [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlFilteringListHandle()/531>] +++++++++++++++++URL FIND HANDLDER get+++++++++++++++ [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/88>] +++++++++++++++++URL GET HANDLDER+++++++++++++++ [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/99>] +++++++++++++++++URL GET NUM SUCCESS+++++++++++++++ [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/107>] +++++++++++++++++URL GET CFGS SUCCESS+++++++++++++++ [</fep/bin/httpd>:<httpd>:<uilibUrlFilter.c>:<cfgUrlFilterListGet()/96>] Url Filter List Get [</fep/bin/httpd>:<httpd>:<uilibUrlFilter.c>:<cfgUrlFilterListGet()/122>] get ZSET pKey = [CFG_K_URL_FILTER_LIST_TBL:1000] [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/109>] +++++++++++++++++URL GET LIST FILTER+++++++++++++++ [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/135>] +++++++++++++++++URL GET ANSWER 0+++++++++++++++ [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/198>] +++++++++++++++++URL ADD CATEGORY TOKEN exchange+++++++++++++++ <0>:[0x0000ffff8ce76030]:(/fep/lib/libtpDbg.so.1.0+0x6030):{dbgSignalHandler+0xd44} [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/198>] +++++++++++++++++URL ADD CATEGORY TOKEN lifestyle+++++++++++++++ [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/198>] +++++++++++++++++URL ADD CATEGORY TOKEN misc+++++++++++++++ [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/205>] +++++++++++++++++URL GET ANSWER CATEGORY 0+++++++++++++++ [</fep/bin/httpd>:<httpd>:<src/firewall/url_filtering/urlFilteringListHandler.c>:<urlListGet()/220>] +++++++++++++++++URL GET RSP+++++++++++++++ [503.817][INFO][body is data=%7B%22method%22%3A%22get%22%2C%22params%22%3A%7B%7D%7D][httpConvertForm2Json:89][httpd,6158,2671374352] [503.817][INFO][decode is {"method":"get","params":{}}][httpConvertForm2Json:93][httpd,6158,2671374352] 报错解析,我该去哪里找bug
08-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值