apache启用web访问日志

一、在apache中配置日志记录

1. 在conf/httpd.conf中配置对应的日志规则

在该配置文件中,使用 : / 搜索LogFormat。就可以搜索到日志打印的格式设置

	...
	# 这种是组合日志格式
	LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    # 这种是通用格式
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
	...

当我们的系统单独设置了不同的端口,需要在不同的端口配置文件中(httpd.conf)分别设置日志格式

httpd.conf_10.221.128.109_8180

httpd.conf_10.221.157.131_8180

注意:conf/extra/httpd-vhosts.conf文件需要首先在httpd.conf中引入,引入方式如下:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

2. 将对应的虚拟机中添加日志使用配置

在文件conf/extra/httpd-vhosts.conf中,添加日志的使用

# 对应的端口号
<VirtualHost *:8580>
# 网站文件
DocumentRoot "/opt/app/apache/htdocs/xxx8580"
ServerName localhost
Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Credentials true
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
# 添加此项配置
CustomLog "| /opt/app/apache/bin/rotatelogs logs/apg_acs_8580_logs/%Y_%m_%d_assert_log 86400 480" combined
#Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
</VirtualHost>

<VirtualHost *:8480>
DocumentRoot "/opt/app/apache/htdocs/xxx8480"
ServerName localhost
Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Credentials true
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
# 添加此项配置
CustomLog "| /opt/app/apache/bin/rotatelogs logs/apg_acs_8480_logs/%Y_%m_%d_assert_log 86400 480" combined
#Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
</VirtualHost>


其中配置 CustomLog的使用方式:

CustomLog "| /opt/app/apache/bin/rotatelogs logs/apg_acs_8480_logs/%Y_%m_%d_assert_log 86400 480" combined 的意思

CustomLog 日志打印命令
| /opt/app/apache/bin/rotatelogs  通过通道指定日志分割器
logs/apg_acs_8480_logs/%Y_%m_%d_assert_log  日志的打印目录,其中%Y %m %d表示年月日
86400 指定分割时间:86400  默认单位为s。也就是24小时
480 指定分区时差:480  默认单位m,也就是8小时
combined 使用的日志规则,使用在1中定义的规则

3. 修改完配置后

1. 校验配置是否正确
bin/apachectl configtest
2. 重启apache服务后生效
bin/apachectl restart
3. 查看打印出来的日志

logs/apg_acs_8480_logs目录下的对应日期日志文件中可以看到相关日志

172.26.3.212 - - [29/Jul/2020:15:47:41 +0800] "GET / HTTP/1.1" 200 387 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
172.26.3.212 - - [29/Jul/2020:15:47:41 +0800] "GET /app.js HTTP/1.1" 200 973218 "http://10.221.157.129:8480/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
172.26.3.212 - - [29/Jul/2020:15:47:43 +0800] "POST /apg-acs/system/indexcode HTTP/1.1" 200 180 "http://10.221.157.129:8480/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
172.26.3.212 - - [29/Jul/2020:15:47:43 +0800] "GET /static/fonts/element-icons.535877f5.woff HTTP/1.1" 200 28181 "http://10.221.157.129:8480/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
172.26.3.212 - - [29/Jul/2020:15:47:43 +0800] "GET /static/img/background.9d8620c8.png HTTP/1.1" 200 563274 "http://10.221.157.129:8480/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
172.26.3.212 - - [29/Jul/2020:15:47:44 +0800] "GET /favicon.ico HTTP/1.1" 200 5030 "http://10.221.157.129:8480/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
172.26.3.212 - - [29/Jul/2020:15:48:07 +0800] "POST /apg-acs/rbac/apg.authentication/v1.1 HTTP/1.1" 200 1217 "http://10.221.157.129:8480/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
172.26.3.212 - - [29/Jul/2020:15:48:21 +0800] "GET /?imageView2/1/w/80/h/80 HTTP/1.1" 200 387 "http://10.221.157.129:8480/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"

二、关于日志的规则配置

就以我们上面配置的规则为例

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

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

%…a: 远程IP地址

%…A: 本地IP地址

%…B: 已发送的字节数,不包含HTTP头

%…b: CLF格式的已发送字节数量,不包含HTTP头。例如当没有发送数据时,写入‘-’而不是0。

%…{FOOBAR}e: 环境变量FOOBAR的内容

%…f: 文件名字

%…h: 客户端主机ip

%…H 请求的协议

%…{Foobar}i: Foobar的内容,发送给服务器的请求的标头行。

%…l: 远程登录名字(来自identd,如提供的话)

%…m 请求的方法 %…{Foobar}n: 来自另外一个模块的注解“Foobar”的内容

%…{Foobar}o: Foobar的内容,应答的标头行

%…p: 服务器响应请求时使用的端口

%…P: 响应请求的子进程ID。

%…q 查询字符串(如果存在查询字符串,则包含“?”后面的部分;否则,它是一个空字符串。)

%…r: 请求的第一行 %…s: 状态。对于进行内部重定向的请求,这是指原来请求 的状态。如果用%…>s,则是指后来的请求。

%…t: 以公共日志时间格式表示的时间(或称为标准英文格式)

%…{format}t: 以指定格式format表示的时间

%…T: 为响应请求而耗费的时间,以秒计

%…u: 远程用户(来自auth;如果返回状态(%s)是401则可能是伪造的)

%…U: 用户所请求的URL路径

%…v: 响应请求的服务器的ServerName

%…V: 依照UseCanonicalName设置得到的服务器名字

{Referer}是链接到此URL的页面

{User-Agent} 是浏览器标识字符串

三、日志过滤

可以根据不同的请求将日志进行过滤,比如根据url 请求端ip等存储到不同的文件里

配置方式一

直接在httpd.conf文件中配置:

以下是过滤一些图片等文件的请求

<IfModule log_config_module>
    LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    <FilesMatch "\.(ico|gif|jpg|png|swf|css|js)">
    SetEnv IMAG 1
    </FilesMatch>
    # 不让含有图片的请求写入日志中
    CustomLog logs/access.log common env=!IMAG
</IfModule>

配置方式二

在conf/extra/httpd-vhosts.conf配置文件中配置如下:

<VirtualHost *:8480>
DocumentRoot "/opt/app/apache/htdocs/apg-acs-8480"
ServerName localhost
Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Credentials true
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
# CustomLog "logs/apg_acs_8480_logs/assert_log" combined
# 配置关键 设置环境变量
SetEnvIf Request_URI ^/webMonitor\/.* webMonitor
# 在正常文件中过滤掉该条件的日志
CustomLog "| /opt/app/apache/bin/rotatelogs logs/apg_acs_8480_logs/%Y_%m_%d_assert_log 86400 480" combined env=!webMonitor
# 当env满足条件时,就记录日志到某个文件中
CustomLog "| /opt/app/apache/bin/rotatelogs logs/apg_acs_8480_logs/%Y_%m_%d_monitor_log 86400 480" combined env=webMonitor
#Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
</VirtualHost>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DVWA (Damn Vulnerable Web Application) 是一个用于漏洞测试和练习的开源网站,它本身不提供入侵者访问日志记录功能,但是你可以通过服务器系统日志或者Web服务器日志来查看与DVWA相关的访问记录。 1. 服务器系统日志 使用Linux或Unix操作系统的服务器,可以通过查看系统日志来查找相关的访问记录。系统日志通常包含有关系统事件的所有信息,包括网络连接、登录尝试和访问尝试等。 在Ubuntu系统上,可以使用以下命令查看系统日志: ``` sudo tail -f /var/log/syslog ``` 这将实时输出系统日志内容,你可以使用Ctrl+C停止输出。 2. Web服务器日志 DVWA运行在Web服务器上,因此你可以通过Web服务器的访问日志来查看与DVWA相关的访问记录。Web服务器日志记录了每个请求的详细信息,包括访问时间、请求方法、请求URL、响应状态码和来源IP地址等。 Apache服务器的访问日志通常存储在以下位置: ``` /var/log/apache2/access.log ``` Nginx服务器的访问日志通常存储在以下位置: ``` /var/log/nginx/access.log ``` 你可以使用以下命令来查看Web服务器日志: ``` sudo tail -f /var/log/apache2/access.log ``` 或 ``` sudo tail -f /var/log/nginx/access.log ``` 这将实时输出Web服务器日志内容,你可以使用Ctrl+C停止输出。 请注意,在生产环境中,应该启用Web服务器日志记录功能,并且只有授权用户可以查看和分析这些日志文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值