可以把日志按小时滚动,采用php正则分析日志的方式进行解决
$logLine ='127.0.0.1 - - [22/May/2015:17:09:13 +0800] "GET /sale/images/y-select.png HTTP/1.1" 200 1095'; $pattern = '/^(?P<ip>[0-9.]+) - - \[(?P<time>[^\]]+)\]+ "GET (?P<url>[^ ]+) HTTP\/1.[1|0|2]" (?P<status>[0-9.]+) (?P<size>[0-9.]+)/i'; preg_match($pattern, $log, $match); //var_dump($match); $ip = $match['ip']; $time = strtotime($match['time']); $url = $match['url']; $status = $match['status']; $size = $match['size']; printf("IP:%s 访问时间:%s URL:%s 状态:%s 文件尺寸:%s",$ip,$time,$url,$status,$size);
也可是这样
运用正则表达式分隔Apache日志文件
www.MyException.Cn 网友分享于:2015-08-26 浏览:17次
通用日志格式的Apache日志文件示例:
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
组合日志格式的Apache日志文件示例:
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"
客户端的IP地址。
由客户端identd进程判断的RFC1413身份(identity),输出中的符号"-"表示此处的信息无效。
HTTP认证系统得到的访问该网页的客户标识(userid),如果网页没有设置密码保护,则此项将是"-"。
服务器完成请求处理时的时间。
客户的动作\请求的资源\使用的协议。
服务器返回给客户端的状态码。
返回给客户端的不包括响应头的字节数.如果没有信息返回,则此项应该是"-"。
"Referer"请求头。
"User-Agent"请求头。
用来提取信息的正则表达式组成:
^ :匹配每一行的开头。
([0-9.]+)\s :匹配IP地址。
([\w.-]+)\s :匹配identity,由数字字母下划线或点分隔符组成。
([\w.-]+)\s :匹配userid,由数字字母下划线或点分隔符组成。
(\[[^\[\]]+\])\s :匹配时间。
"((?:[^"]|\")+)"\s :匹配请求信息,双引号中可能出现转义的双引号\"。
(\d{3})\s :匹配状态码。
(\d+|-)\s :匹配响应字节数或-。
"((?:[^"]|\")+)"\s :匹配"Referer"请求头,双引号中可能出现转义的双引号\"。
"((?:[^"]|\")+)" :匹配"User-Agent"请求头,双引号中可能出现转义的双引号\"。
$ :匹配行尾。
最终的表达式如下:
^([0-9.]+)\s([\w.-]+)\s([\w.-]+)\s(\[[^\[\]]+\])\s"((?:[^"]|\")+)"\s(\d{3})\s(\d+|-)\s"((?:[^"]|\")+)"\s"((?:[^"]|\")+)"$
相关推荐
这段代码首先定义了一个正则表达式来解析Apache的访问日志格式,然后读取并解析文件中的每一行。`analyze_logs`函数计算了每种HTTP请求的次数,并返回最常见的请求及其出现次数。 此外,如果日志文件过大,我们可能...
Apache日志分析.php Apache日志分析 第17章(/17/) JSPExample1.jsp JSP页面中整型数据的使用 JSPExample2.jsp JSP页面中循环输出整型数据 JSPExample3.jsp 计算一光年的距离 ...
1. **PHP作为Apache模块**:理解如何将PHP集成到Apache中,通过LoadModule指令加载mod_php模块,使得Apache可以直接解析PHP文件。 2. **FastCGI模式**:了解另一种PHP与Apache的集成方式——FastCGI,提高服务器...
pcre-8.30.zip包含了版本8.30的源代码,允许Apache服务器在URL重写、日志格式化等场景中使用复杂的正则表达式。 在Linux上安装Apache的基本步骤如下: 1. **解压文件**:首先,你需要将所有压缩文件解压到一个目录...
例如,`mod_php`模块用于在Apache服务器内部直接解析和执行PHP代码,提高性能。 2. **线程支持**:Apache 2.2支持多线程模型(MPM,Multi-Processing Modules),如`prefork`和`worker` MPM,其中`worker`模式是...
7. **MIME类型**:通过AddType指令,可以将不同扩展名的文件与特定的MIME类型关联,确保浏览器正确解析内容。 8. **URL重写**:mod_rewrite模块允许通过正则表达式实现URL重写,这在SEO优化和隐藏真实路径时非常...
2. **数据解析**:PHP提供了强大的字符串处理和正则表达式功能,可以解析日志文件中的各种格式,提取出关键信息。 3. **数据库存储**:为了便于后续的分析和查询,PHP可以将日志信息存储到数据库(如MySQL)中。...
**3.1 日志文件解析** 在Web服务器的日志文件中,每条日志记录通常包含时间戳、客户端IP地址等信息。假设我们要从BEA WebLogic服务器的日志文件中提取客户端的IP地址,可以使用以下的正则表达式: ``` \b(?:\d{1,3}...
1. **配置文件**:Apache的主要配置文件是`httpd.conf`,其中定义了服务器的基本设置,如端口号、服务器根目录、日志文件位置等。通过修改此文件,我们可以定制服务器的行为。 2. **虚拟主机**:Apache支持虚拟主机...
- 说明:rotatelogs用于日志文件的滚动操作,方便日志文件管理和分析。 21. **--enable-static-logresolve** - 用途:启用静态版本的logresolve工具。 - 说明:logresolve能够将日志文件中的IP地址转换为域名...
在Apache中,PCRE用于解析和执行URL重写规则、访问日志格式和其他与HTTP请求相关的正则表达式。版本8.35包含了该库的一组功能和修复,确保了高效和准确的正则表达式匹配。 3. **apr-1.4.5**:APR(Apache Portable ...
可以利用`ErrorLog`等日志文件来追踪Rewrite引擎的工作过程,以便发现问题并及时调整。 通过上述介绍,我们可以看到Apache Rewrite Module提供了非常灵活且强大的URL重写功能,但同时也需要开发者具备一定的正则...
实际内容可能包括PHP源文件、数据库配置文件、HTML/CSS/JavaScript前端文件、配置文件、日志文件、数据采集脚本等。 【详细知识点】 1. **PHP基础**:理解PHP语法,变量声明、控制结构(如if-else、switch)、函数...
1. **文件操作**:LogAnalyzer首先需要读取日志文件,这就涉及到PHP的文件系统函数,如`file_get_contents()`或`fopen()`、`fgets()`等,用于逐行读取和处理大量日志数据。 2. **日志解析**:不同的日志格式(如...
6. **异常处理**:处理可能遇到的各种错误情况,如日志文件不存在、格式不正确等。 7. **安全性考虑**:确保跟踪器不会对服务器性能造成影响,并防止恶意用户的滥用。 8. **代码结构与设计模式**:良好的代码组织和...
【压缩包子文件的文件名称列表】: 132699464387979704 这个文件名可能是项目中的一个主文件或者日志文件,但由于没有提供具体的文件类型或详细信息,我们只能推测。通常在PHP项目中,这样的数字字符串可能代表时间戳...
2. 错误日志监控:系统可能会读取服务器的日志文件,如PHP错误日志、Apache日志或Nginx日志,寻找可能的错误信息,如语法错误、警告或致命错误。这可以通过file()或file_get_contents()函数读取文件内容,然后使用...
这允许Apache服务器解析`.htaccess`文件,从而应用重写规则。请注意,这一步骤可能需要根据你的具体环境进行调整,比如在某些配置中,重写规则可能需要在全局配置文件而不是虚拟主机配置文件中启用。 创建`....
1. **配置文件管理**:基于minixml库,框架提供了格式化的配置文件读取和解析,使得配置更加直观和易于维护。 2. **参数处理**:利用cgicc库,框架能够解析和提取HTTP请求中的参数,支持格式化处理。 3. **参数...