阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Apache自定义虚拟主机日志格式

510次阅读
没有评论

共计 2998 个字符,预计需要花费 8 分钟才能阅读完成。

有时为了方便,我们需要自定义 apache 各虚拟主机的日志,以方便后续的日志分析工作。

常用的访问日志格式

通用日志格式(Common Log Format)

这是一个典型的记录格式:

LogFormat “%h %l %u %t \”%r\” %>s %b” common

CustomLog logs/access_log common

它定义了一种特定的记录格式字符串,并给它起了个别名叫 common,其中的 ”%” 指示服务器用某种信息替换,其他字符则不作替换。引号 (“) 必须加反斜杠转义,以避免被解释为字符串的结束。格式字符串还可以包含特殊的控制符,如换行符 ”\n”、制表符 ”\t”。

CustomLog 指令建立一个使用指定别名的新日志文件,除非其文件名是以斜杠开头的绝对路径,否则其路径就是相对于 ServerRoot 的相对路径。

组合日志格式(Combined Log Format)

另一种常用的记录格式是组合日志格式,形式如下:

LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-agent}i\”” combined

CustomLog log/access_log combined

多文件访问日志

可以简单地在配置文件中用多个 CustomLog 指令来建立多文件访问日志。如下例,既记录基本的 CLF 信息,又记录提交网页和浏览器的信息,最后两行 CustomLog 示范了如何模拟 ReferLog 和 AgentLog 指令的效果。

LogFormat “%h %l %u %t \”%r\” %>s %b” common

CustomLog logs/access_log common

CustomLog logs/referer_log “%{Referer}i -> %U”

CustomLog logs/agent_log “%{User-agent}i”

此例也说明了,记录格式可以直接由 CustomLog 指定,而并不一定要用 LogFormat 起一个别名。

因此我们就可以在 httpd.conf 的 <VirtualHost *:80></VirtualHost> 标签里自定义自己的日志格式,而不需要系统的通用的日志格式。

管道日志

Apache httpd 可以通过管道将访问记录和出错信息传递给另一个进程,而不是写入一个文件,由于无须对主服务器进行编程,这个功能显著地增强了日志的灵活性。只要用管道操作符 ”|” 后面跟一个可执行文件名,就可以使这个程序从标准输入设备获得事件记录。Apache 在启动时,会同时启动这个管道日志进程,并且在运行过程中,如果这个进程崩溃了,会重新启动这个进程(所以我们称这个技术为 ” 可靠管道日志 ”)。

管道日志进程由其父进程 Apache httpd 产生,并继承其权限,这意味着管道进程通常是作为 root 运行的,所以保持这个程序简单而安全极为重要。

管道日志的一种重要用途是,允许日志滚动而无须重新启动服务器。为此,服务器提供了一个简单的程序 rotatelogs。每 24 小时滚动一次日志的例子如下:

CustomLog “|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400” common

注意:引号用于界定整个管道命令行。虽然这是针对访问日志的,但是其用法对于其他日志也一样。

在其他站点,有一个类似但更灵活的日志滚动程序叫 cronolog。

如果有较简单的离线处理日志的方案,就不应该使用条件日志和管道日志,即使它们非常强大。

同样我们也可以自定义日志格式如:

CustomLog “| /usr/sbin/rotatelogs -l /var/www/logs/my_access_log.%Y-%m-%d-%H_%M_%S 1800”  “%h %l %u %t \”%r\” %D  %>s %b \”%{Referer}i\””

另附日志格式中常用字符串:

格式字符串描述
%%百分号(Apache2.0.44 或更高的版本)
%a远端 IP 地址
%A本机 IP 地址
%B除 HTTP 头以外传送的字节数
%b以 CLF 格式显示的除 HTTP 头以外传送的字节数,也就是当没有字节传送时显示 ’-‘ 而不是 0。
%{Foobar}C在请求中传送给服务端的 cookieFoobar的内容。
%D服务器处理本请求所用时间,以微为单位。
%{FOOBAR}e环境变量 FOOBAR 的值
%f文件名
%h远端主机
%H请求使用的协议
%{Foobar}i发送到服务器的请求头 Foobar: 的内容。
%l远端登录名(由 identd 而来,如果支持的话),除非 IdentityCheck 设为 ”On“,否则将得到一个 ”-“。
%m请求的方法
%{Foobar}n来自另一个模块的注解 Foobar 的内容。
%{Foobar}o应答头 Foobar: 的内容。
%p服务器服务于该请求的标准端口。
%P为本请求提供服务的子进程的 PID。
%{format}P服务于该请求的 PID 或 TID(线程 ID),format的取值范围为:pidtid(2.0.46 及以后版本) 以及hextid(需要 APR1.2.0 及以上版本)
%q查询字符串(若存在则由一个 ”?“ 引导,否则返回空串)
%r请求的第一行
%s状态。对于内部重定向的请求,这个状态指的是 原始 请求的状态,—%>s则指的是最后请求的状态。
%t时间,用普通日志时间格式(标准英语格式)
%{format}t时间,用 strftime(3) 指定的格式表示的时间。(默认情况下按本地化格式)
%T处理完请求所花时间,以秒为单位。
%u远程用户名 (根据验证信息而来;如果返回 status(%s) 为 401,可能是假的)
%U请求的 URL 路径,不包含查询字符串。
%v对该请求提供服务的标准 ServerName
%V根据 UserCanonicalName 指令设定的服务器名称。
%X请求完成时的连接状态:

X=连接在应答完成前中断。
+=应答传送完后继续保持连接。
-=应答传送完后关闭连接。

(在 1.3 以后的版本中,这个指令是 %c,但这样就和过去的 SSL 语法:%{var}c 冲突了)

%I接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用 mod_logio 模块。
%O发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用 mod_logio 模块。

相关阅读

日志分析工具 Awstats 实战之 Apache 篇 - 多站点日志分析 http://www.linuxidc.com/Linux/2013-11/92273.htm

在 Ubuntu 13.10 下安装支持 SSL 的 Apache http://www.linuxidc.com/Linux/2013-11/92266.htm

再谈伪装 Apache 版本防止入侵 Web 服务器 http://www.linuxidc.com/Linux/2013-10/91179.htm

Apache Python 模块 mod_wsgi 的编译安装 http://www.linuxidc.com/Linux/2013-09/90637.htm

企业 Shell 脚本分析及切割 Apache 日志实战 http://www.linuxidc.com/Linux/2013-09/90627.htm

Linux 网站架构系列之 Apache—- 部署篇 http://www.linuxidc.com/Linux/2013-11/92304.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2998字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7959810
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...