zoukankan      html  css  js  c++  java
  • Apache、Nginx与IIS日志位置及内容分析

    Apache

    日志位置

    ​ 在linux系统中,apache也就是apache2,默认的位置是在/var/log/apache2目录下,错误日志为error.log,访问日志一般带有access.log。

    访问日志分析

    日志示例

    192.168.1.20 - - [22/Apr/2020:15:27:49 +0800] "GET /1/index.php HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
    

    依次各字段的含义为

    远端主机名+客户端日志名称(可空)+客户端用户名(可空)+服务器时间+请求内容(方法名、地址和http协议)+响应的http状态码的最终结果+服务器发送的字节数+来源页+客户端信息
    

    ​ apache的日志格式也可以去自定义,所在的配置文件在/etc/apache2/apache2.conf文件里的,可以使用vim打开,然后/Logformat进行查找,一般有下面五种格式,当然也可以根据自己的需要进行修改。

    LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined
    LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %O" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    

    具体的参数说明请参考阿里云Apache 日志文档,此次我的例子使用的是默认的combined格式。

    window下日志的目录在apache安装目录的logs下。

    Nginx

    日志位置

    ​ Nginx的配置文件的路径是/etc/nginx/nginx.conf,在配置文件中搜索access_log可找到日志的默认路径,一般为/var/logs/nginx目录下,访问日志名称为access.log。

    访问日志分析

    日志示例

    192.168.1.220 - - [10/Jul/2020:15:51:09 +0800] "GET /ubuntu.iso HTTP/1.0" 0.000 129 404 168 "-" "Wget/1.11.4 Red Hat modified"
    

    各字段的含义依次为:

    客户端ip地址 + - +客户端用户名称(可空)+通用日志格式下的本地时间 + 请求的URL和HTTP协议 + 请求处理时间 + 请求的长度 + 请求状态 + 发送给客户端的字节数(不包括响应头大小)+ 源页面 + 客户端信息
    

    ​ 当然,nginx的日志格式也是可以进行定义的,也是在配置文件中进行配置,打开配置文件后搜索log_format就能找到日志格式的定义。例子中的格式如下:

    log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$request_time $request_length '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent"';
    

    参考自阿里云Nginx日志文档,其他字段的名称及含义也可以进行查询。

    windows下Nginx日志默认在Nginx安装目录下的logs下。

    IIS

    日志位置

    ​ IIS的日志位置与IIS的版本号的不同也有不同,相关配置文件的位置也有不同。

    版本 日志位置 配置文件位置
    IIS6 C:WindowsSystem32LogFiles C:WINDOWSsystem32inetsrvMetaBase.xml
    IIS7 C:inetpublogsLogFiles C:WindowsSystem32inetsrvconfigapplicationHost.config

    由于手头没有IIS服务器,所以无法进行验证,如有错误请联系修改。

    日志字段

    #Software: Microsoft Internet Information Services 7.5
    #Version: 1.0
    #Date: 2013-08-21 01:00:00
    #Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
    

    date:表示记录访问日期;
    time:访问时间;
    s-sitename:客户端所访问的该站点的 Internet 服务和实例的号码。
    s-ip:服务器ip
    cs-method:表示访问方法,常见的有两种,一是GET,就是平常我们打开一个URL访问的动作,二是POST,提交表单时的动作;
    cs-uri-stem: 就是访问哪一个文件;
    cs-uri-query:是指访问地址的附带参数,如asp文件?后面的字符串id=12等等,如果没有参数则用-表示;
    s-port:访问的端口
    cs-username:对于通过身份验证的用户,格式是“域用户名”;对于匿名用户,是一个连字符 (-)。
    c-ip:访问服务器的客户端 IP 地址。(已过滤掉中间各种IP,是真实的客户端IP)
    cs(User-Agent):在客户端使用的浏览器。
    sc-status:状态,200表示成功,403表示没有权限,404表示打不到该页面,500表示程序有错;
    sc-substatus:跟数据缓存有关
    cs–win32-statu: 客户端传送到服务端的字节大小;
    time-taken: 处理所用的时间 ,单位毫秒
    日志字段内容参考自https://www.cnblogs.com/zjxbetter/p/8072187.html

    注:IIS日志位置未进行验证,配置文件位置参考自阿里云IIS日志文档。

  • 相关阅读:
    PHP里文件的查找方式及写法
    上传文件
    用ajax对数据进行查看人员信息
    ajax实现分页
    jquery做个日期选择适用于手机端
    PHP用ajia代码写三级联动下拉
    JSON数据的定义
    jquery做一些小的特效
    对jquery操作复选框
    使用 LUT 模拟光照
  • 原文地址:https://www.cnblogs.com/venoms/p/12756837.html
Copyright © 2011-2022 走看看