- 概述
- 尝试调整 apache 的日志模式
 
- 背景
- 初学 apache
 
- 环境
- 虚拟机 - OS
- VirtualBox6.0
- CentOS7.2
 
- apache
- 2.4.6-90
- yum 安装
 
- 宿主机 - OS
- Win10
 
- 网络
- 虚拟机使用 桥接模式
 
 
1. 书上说
- 很简单, 使用 组合日志模式 - CustomLog logs/access_log combined
 
2. 实际
- 实际情况
- 实际情况, 感觉好像一堆问题
- 我啥玩意不懂, 一上来被这句话直接搞懵逼
 
- 配置文件
- 首先, 需要明确一个问题
- 这个修改, 需要找到 配置文件
 
- 配置文件位置 - /etc/httpd/conf/httpd.conf
 
- 查找参数位置
- CustomLog 大概在 191 行左右
- 说着说, 在一个叫做  元素里
 
- 参数附近貌似有很多 注释, 我大概来 读一下
- 日志格式
- 第一组注解, 大概描述了 日志格式
- 定义了 三个日志格式, 并且每一个格式 都会有一个 nickname
 
- 第三组需要模块 logio_module
 
- 日志位置
- 如果不做其他配置, 日志以 制定 nickname 格式, 放置在 制定路径
- 如果在 虚拟服务器 里配置, 则会记录到 虚拟服务器 的路径之中
- 并且 默认日志 也不会有 内容
 
 
- 使用组合日志格式
- 联合日志格式, 比 通用日志格式, 内容丰富
 
 
 
- 实际情况
- 通用格式 被注解了
- 联合日志格式 正在被 使用
 
 
3. 尝试切换日志格式
- 概述
- 尝试将 联合日志格式, 切换为 通用日志格式
 
- 步骤
- 注释 - CustomLog "logs/access_log" combined
 
- 解开注释 - CustomLog "logs/access_log" common
 
- 重启 apache - > apachectl graceful
 
 
- 结果
- 重启成功
- 访问成功
- 日志格式变化
 
4. 通用日志格式
- 配置 - # LogFormat "<format>" <alias>
LogFormat "%h %l %u %t \"%r\" %>s %b" common
 
- 日志举例 - 192.168.2.158 - - [08/Mar/2020:22:27:06 +0800] "GET /hello.html HTTP/1.1" 304 -
 
- 解释
- %h - 192.168.2.158
- 远程主机名/IP
- 默认是 ip
- 主机名的话, 需要开启某些设置
- 具体支持 略
 
 
 
- %l - -
- 远程登录名
- 需要 mod_ident 支持, 且打开开关
- 具体支持略
 
- 否则显示 -
 
 
- $u - -
- 授权用户
- 前提: 开启 弱访问控制
- 具体操作略 - 我都不会...
 
 
 
- %t - [08/Mar/2020:22:27:06 +0800]
- 请求时间
- 格式暂时是这个格式
- 感觉应该是 可以定制 的
 
 
- "%r" - "GET /hello.html HTTP/1.1"
- 转义双引号
- 这个 format 本身就是定义在 双引号 里的, 所以必须转移
 
- 请求行内容
- request 的第一行
 
 
- %>s - 304
- 返回状态
- 这个我就不详细描述了
 
 
- %b - -
- 响应大小(不含头部)
- 单位是 bytes
- 200 的响应里, 是有大小的
- 没有发送数据, 则显示 -
- 这个 304 没有大小, 老实说, 我也不知道...
 
 
 
 
- 日志格式说明
- Apache Module mod_log_config
- 日志的格式, 其实很丰富
- 具体的内容, 就可以看官网怎么说了
 
 
5. 自定义
- 想了想
- 自带的格式, 总有不好用的时候
- 有了这么个文档, 要不试试自己定制
- 就算不好用, 也能改回来
 
- 需求
- 收到时间 - %t
- 客户端ip - %h
- 服务器ip - %A
- 服务器端口 - %p
- 请求第一行 - %r
- 请求处理时间 - %D/%T
- 连接状态 - %X
- 收到数据大小 - %I
- 发送数据大小 - %O
- 返回状态
- 分隔符的话, 我想用 \t
 
- 格式串 - LogFormat  "%t  %h  %A  %p  \"%r\" %D   %X  %I  %O %>s"  demo
 
- 结果 - # 基本成功
# 具体的内容, 我就不再去解释了, 请对照官网参数, 自行查看...
[08/Mar/2020:23:04:16 +0800]  192.168.2.158  192.168.2.6  80  "GET /hello.html HTTP/1.1" 133   +  630  177 304
 
ps
- ref
- Apache Cookbook
- Apache Module mod_log_config
 
- 后续
- log 的 rotate, apache 是否有方案
- virtualhost 是怎么回事, 这个...
- 日志如果是这样的话, 是否会有某些 日志分析工具 之类的玩意, 还是硬靠 awk 和 grep 来处理
- 日志应该还是有很多可以研究的东西吧
- 配置文件, ifModule 模块, 以及各种声明语句, 老实说, 我是真的不会
- apache 出现各种状态码 的条件, 和具体反应
- 感觉是个 大工程, 随缘做吧
 
 
Server - Apache - 日志 - 简单调整日志格式
原文:https://www.cnblogs.com/xy14/p/12445866.html