大柚子

这世界不过如此

在平常的应急中,日志的分析的能起到很大的作用,但是由此也带来一个问题,如何查找到有效的日志?除了基本的系统日志、数据库日志、中间件日志,还有很多应用自带的各种格式的日志,本文旨在收集分析各类日志信息,以方便日后遇到应急时能迅速获取到关键日志。

一、系统类日志

1、windows系统

Windows的日志文件主要有系统日志、应用程序日志、安全日志这三类,另外,根据不同的系统服务配置可能还会产生其他的日志文件,如Powershell日志、WWW日志、FTP日志、DNS服务器日志等。这些日志文件由Windows的EventLog服务生成并记录,EventLog服务由Windows服务管理器(%SystemRoot%system32services.exe)启动并管理。

Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。每种日志默认大小20M,超过大小后会覆盖最早的日志记录

应用程序日志、系统日志,存储着故障排除信息,对于系统管理员更为有用;安全日志,记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于应急响应来说,更有帮助


日志位置:<strong>C:\Windows\System32\winevt\Logs</strong>
windows 2000/server2003/windowsxp日志位置:<strong>C:\WINDOWS\Sys</strong>tem32\config\
(1)安全日志

安全日志记录各种系统审核和安全处理,包括用户权限的变化、文件和目录的访问、打印以及用户系统登陆和注销,如有效或无效的登陆尝试、与资源使用有关的事件。管理员有按需要指定安全日志中要记录的事件类型,安全日志只有系统管理员可以访问。

位置:C:\Windows\System32\winevt\Logs\Secrurity.evty

常见登录类型:

2 
3 
4 
5 
7 
8 
9 
10 
11 
(Interactive) 
(Network) 
(Batch) 
(Service) 
(Unlock) 
(NetworkCleartext) 
(Newcredentials) 
iü*E, (Remote Interactive) 
(Cachedlnteractive) 
fiFTP.

常用事件ID(可参考:https://www.cnblogs.com/chddt/p/13262385.html)

事件id含义
4624账户成功登录
4625账户登录失败
4634账户已注销
4647用户启动的注销
4672使用超级用户(如管理员)进行登录
4673特权服务被召唤
4720已创建用户账户
4698已创建计划任务
4702计划任务已更新
4723 试图更改帐户密码
4724试图重置帐户密码
(2)系统日志

系统日志包含由Windows系统组件记录的事件,记录系统进程和设备驱动程序的活动。由它审核的系统事件包括启动失败的设备驱动程序、硬件错误、重复的IP地址以及服务启动、暂停和停止。系统日志也记录启动期间要加载的驱动程序或其他系统组件的故障,记录的事件类型也是预先确定的。

位置:C:\Windows\System32\winevt\Logs\System.evtx

(3)应用程序日志

应用程序日志包含计算机系统中的用户程序和商业程序在运行时出现的错误活动,它审核的事件包括所有应用程序产生的错误以及其他报告的信息,如性能监视审核的事件或一般程序事件。记录事件的种类大致有:硬盘使用情况、数据库文件的文件错误、设备驱动程序加载失败、用户登录系统失败计数等.

位置:C:\Windows\System32\winevt\Logs\Application.evtx

(4)Powershell日志

在执行任何PowerShell命令或脚本时,无论是本地还是通过远程处理,Windows都会将事件写入以下三个日志文件:


<strong>%SystemRoot%\System32\Winevt\Logs\Windows PowerShell.evtx
%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-PowerShell/Operational.evtx
%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-PowerShell/Anal</strong>ytic.etl

常用事件id:600、51、4100

(5)windows远程管理日志(WinRM)

Windows远程管理(WinRM)日志记录了Windows远程管理服务的所有操作:


<strong>%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-WinRM/Operational.evtx
%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-WinRM/Analytic.etl
%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/perational.evtx
%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TerminalServices-RemoteConnectionManager/perational.evtx
%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TerminalServices-LocalSessionManager/perational.evtx</strong>

TerminalServices-RemoteConnectionManager事件id分析(记录当前主机被哪些主机远程登录过):主要是1149

Microsoft-Windows-TerminalServices-LocalSessionManager事件id分析(作用同上):主要关注事件ID :21 22

2、Linux系统

Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息

日志默认存放位置:/var/log/

查看日志配置情况:more /etc/rsyslog.conf

日志文件说明
/var/log/cron记录了系统定时任务相关的日志
/var/log/cups记录打印信息的日志
/var/log/dmesg记录系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog记录邮件信息
/var/log/message记录系统重要信息的日志,这个日志文件中会记录linux系统是绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令查看
/var/log/utmp记录当前用户已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w、who、users等命令来查询
/var/log/secure记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如ssh登录、su切换用户、sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
日志文件位置及说明

比较重要的几个日志:


登录失败记录:/var/log/btmp    ---lastb
最后一次登录:/var/log/lastlog    ----lastlog
登录成功记录: /var/log/wtmp     ----last
登录日志记录:/var/log/secure
目前登录用户信息:/var/run/utmp //w、who、users
历史命令记录:history
​仅清理当前用户: history -c

二、数据库类日志

1、Oracle

Oracle日志文件是Oracle数据库存储信息的重要文件,主要用来存储数据库变化的操作信息。

Oracle日志文件可以分为两种:重做日志文件(redo log file)、归档日志文件,其中重做日志文件主要记录了数据库的操作过程,可以在进行数据库恢复时,将重做日志文件在还原的数据库上进行执行,以达到数据库的最新状态。

Oracle数据库在运行时,可以选择是否开启归档日志,在非归档日志的情况下,Oracle所有的操作日志都写在重做日志当中,当所有重做日志文件写满时(Oracle重做日志是分组的,默认是分为三组),那么就把前面的日志文件覆盖继续写入。而在开启归档日志模式情况下,当重做日志都写满时,继续要写入日志时,会把要覆盖的日志文件写入归档日志当中,然后再对重做日志进行覆盖,因此使用归档日志利于后期进行数据恢复。

(1)查看日志文件:

Oracle 11g之前:<strong>$ORACLE/rdbms/log</strong>目录下
Oracle 11g之后:
登录:sqlplus “/as sysdba”
查看日志文件路径:<strong>select member from v$logfile;</strong>
(2)Oracle日志文件包含的内容:(数量可能略有不同)

control01.ctl example01.dbf redo02.log sysaux01.dbf undotbs01.dbf
control02.ctl redo03.log system01.dbf users01.dbf
control03.ctl redo01.log SHTTEST.dbf temp01.dbf
(3)Oracle日志查看方法

SQL&gt;select * from v$sql (#查看最近所作的操作)
SQL&gt;select * fromv $sqlarea(#查看最近所作的操作)

Oracle 数据库的所有更改都记录在日志中,从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,因为原始的日志信息我们根本无法看懂,Oracle8i后续版本中自带了LogMiner,而LogMiner就是让我们看懂日志信息的工具,通过这个工具可以:查明数据库的逻辑更改,侦察并更正用户的误操作,执行事后审计,执行变化分析。

2、MSSQL

按照主体把错误日志分为SQL Server、SQL Server Agent、Database Mail,以及 Windows NT。SQL Server使用日志记录数据库引擎启动和运行过程中产生的信息,这些信息不一定是“错误”的消息,按照消息的严重程度,分为三个级别,分别是:信息(Information),警告(Warning)和错误(Error),SQL Server日志会按照消息发生的时间顺序记录消息。SQL Server日志用于记录SQL Server 引擎产生的消息,SQL Server Agent错误日志用于记录Agent运行过程中产生的信息。

(1)SQL Server 日志和代理的错误日志

存放位置:


SQL Server日志:
<strong>C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\</strong>
代理错误日志:
<strong>C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\</strong>

系统维护7个SQL Server日志文件,文件名分别是:ErrorLog,ErrorLog.n(n=1,2,3,4,5,6),其中,ErrorLog 文件是当前活跃的文件,包含最新的信息,ErrorLog.6 文件记录最早产生的消息。SQL Server每次都把消息记录在最新的文件ErrorLog中。生产环境中,ErrorLog文件的大小(Size)可能会很大,因此,需要定期清理这个错误日志文件,更新的方式是循环更新(Cycle),所谓循环更新的流程,是指:删除 ErrorLog.6 文件,将ErrorLog.5重命名为ErrorLog.6,依次类推,直到将ErrorLog重命名为ErrorLog.1,最后新建一个ErrorLog文件,用于记录SQL Server 运行过程中产生的信息。

系统维护10个SQL Server Agent 错误日志文件,文件名分别是:SQLAgent.out、SQLAgent.n(n=1、2、3、4、5、6、7、8、9),其中SQLAgent.out记录代理当前的消息,其更新方式和SQL Server日志文件相同

(2)日志查看

MSSQL数据库应启用日志记录功能,默认配置仅限失败的登录,需修改为失败和成功的登录,这样就可以对用户登录进行审核

登录到SQL Server Management Studio,依次点击 管理–SQL Server 日志

双击日志存档文件即可打开日志文件查看器,并可以对日志进行筛选或者导出等操作。

另外,MSSQ提供了一个工具SQL Server Profiler ,方便查找和发现SQL执行的效率和语句问题。

3、Mysql

MySQL有四种类型的日志:Error Log、General Query Log、Binary Log 和 Slow Query Log。
第一种错误日志,记录MySQL运行过程ERROR,WARNING,NOTE等信息,系统出错或者某条记录出问题可以查看ERROR日志。
第二种日常运行日志,记录MySQL运行中的每条请求数据。
第三种二进制日志,包含了一些事件,这些事件描述了数据库的改动,如建表、数据改动等,也包括一些潜在改动,主要用于备份恢复、回滚等操作。
第四种慢查询日志,用于MySQL性能调优。
后两者在日常应急中很少使用,咱不做分析。

(1)Error Log

MySQL错误日志默认以

<strong>hostname.err</strong>
存放在MySQL日志目录,如果不知道MySQL当前的错误日志目录可以使用查询语句:

mysql&gt; show variables like 'log_error';
+---------------+--------------------------------------+
| Variable_name | Value                                |
+---------------+--------------------------------------+
| log_error     | /usr/local/var/mysql/mysql-error.log |
+---------------+--------------------------------------+

示例:
2015-09-12 16:03:20 2624 &#91;ERROR] InnoDB: Unable to lock ./ibdata1, error: 35
2015-09-12 16:03:20 2624 &#91;Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2015-09-13 00:03:21 2183 &#91;Note] InnoDB: Shutdown completed; log sequence number 426783897
(2)General Query Log

general query log能记录成功连接和每次执行的查询,我们可以将它用作安全布防的一部分,为故障分析或黑客事件后的调查提供依据。


1、查看log配置信息
<strong>show variables like '%general%';</strong>
2、开启日志
<strong>SET GLOBAL general_log = 'On';</strong>
3、指定日志文件路径
<strong>#SET GLOBAL general_log_file = '/var/lib/mysql/mysql.log';</strong>

示例 :


当访问 /test.php?id=1,此时得到这样的日志:
190604 14:46:14       14 Connect    root@localhost on
           14 Init DB    test
           14 Query    SELECT * FROM admin WHERE id = 1
           14 Quit

按列解析:
第一列:Time,时间列,前面一个是日期,后面一个是小时和分钟,有一些不显示的原因是因为这些sql语句几乎是同时执行的,所以就不另外记录时间了。
第二列:Id,就是show processlist出来的第一列的线程ID,对于长连接和一些比较耗时的sql语句,你可以精确找出究竟是那一条那一个线程在运行。
第三列:Command,操作类型,比如Connect就是连接数据库,Query就是查询数据库(增删查改都显示为查询),可以特定过虑一些操作。
第四列:Argument,详细信息,例如 Connect    root@localhost on 意思就是连接数据库,如此类推,接下面的连上数据库之后,做了什么查询的操作。

注:不同的数据库连接工具,它在连接数据库初始化的过程中是不同的。通过这样的差别,我们可以简单判断出用户是通过连接数据库的方式。

4、Postsql

(1)获取日志文件位置(默认路径$PGDATA/pg_log)

查看postgresql.conf文件,得到日志文件位置:
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = o
(2)日志的分类

(1)pg_log(数据库运行日志) 内容可读 默认关闭的,需要设置参数启动
(2)pg_xlog(WAL 日志,即重做日志) 内容一般不具有可读性 强制开启
(3)pg_clog(事务提交日志,记录的是事务的元数据) 内容一般不具有可读性 强制开启

① pg_log(数据库运行日志)

pg_log 这个日志一般是记录服务器与DB的状态,比如各种Error信息,定位慢查询SQL,数据库的启动关闭信息,发生checkpoint过于频繁等的告警信息,诸如此类。该日志有.csv格式和.log。建议使用.csv格式,因为它一般会按大小和时间自动切割,毕竟查看一个巨大的日志文件比查看不同时间段的多个日志要难得多。pg_log是可以被清理删除,压缩打包或者转移,同时并不影响DB的正常运行。

② pg_xlog(重做日志)

pg_xlog 这个日志是记录的Postgresql的WAL信息,也就是一些事务日志信息(transaction log)。默认单个大小是16M,源码安装的时候可以更改其大小(./configure –with-wal-segsize=target_value 参数,即可设置)这些日志会在定时回滚恢复(PITR), 流复制(Replication Stream)以及归档时能被用到,这些日志是非常重要的,记录着数据库发生的各种事务信息,不得随意删除或者移动这类日志文件,

5、Redis

默认情况下,redis是不会生成日志文件的,需要在配置文件redis.conf中配置,配置参数为“logfile“和”loglevel“

如果是查看性能日志,使用redis-cli连上后执行INFO命令就行,如果是错误日志的话根据配置文件中配置查看对应文件即可。

三、中间件类日志

1、Nginx

Nginx用两种类型的日志记录其事件:访问日志和错误日志。访问日志记录有关客户端请求的信息,错误日志记录有关服务器和应用程序问题的信息。

访问日志和错误日志的配置都在Nginx配置文件中定义,具体配置如下:

(1)访问日志

默认情况下,所有虚拟主机的访问日志将存储在同一配置文件中。
<code>http {
      ...
      access_log  /var/log/nginx/access.log;
      ...
}
可以通过记录到新的单独文件中来分开所有虚拟主机的访问日志 http { ... ... access_log /var/log/nginx/access.log; server { listen 80; Server_name example.com access_log /var/log/nginx/example.access.log; ... ... } } 默认情况下,访问日志以组合日志格式记录。因此,您可以使用gzip response的值扩展预定义格式的压缩率。 http { log_format custom '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; server { gzip on; ... access_log /var/log/nginx/example.access.log custom; ... } }
参数说明
$remote_addr客户端地址
$remote_user客户端用户名称
$time_local访问时间和时区
$time_iso8601ISO8601标准格式本地时间
$request请求的URI和HTTP协议
$http_host请求地址,即浏览器中你输入的地址(IP或域名)
$statusHTTP请求状态
$upstream_statusupstream状态
$body_bytes_sent发送给客户端文件内容大小
$http_refererurl跳转来源
$http_user_agent用户终端浏览器等信息
$ssl_protocolSSL协议版本
$ssl_cipher交换数据中的算法
$upstream_addr后台upstream的地址,即真正提供服务的主机地址
$request_time 整个请求的总时间
$upstream_response_time请求过程中,upstream的响应时间
$connection_requests当前连接发生请求数
$connection所用连接序号
$msec日志写入时间.单位为秒,精度是毫秒
$pipe如果请求是通过HTTP流水线(ppipelined)发送,pipe值为’p’,否则为’.’
访问日志格式参数说明
(2)错误日志

如果NGINX突然停止运行或无法正常工作,它将在错误日志中记录所有事件。因此,使用错误日志,您可以找到更多详细信息。它还记录警告,但无法识别已发生的问题,在日常的应急中,这也可以作为一个分析项。


错误日志在配置文件中的配置如下:
http {
       ...
       ...
       error_log  /var/log/nginx/error_log;
       server {
                listen 80;
                server_name example1.com;
                    error_log  /var/log/nginx/example1.error_log  warn;
                        ...
       }
       server {
                listen 80;
                server_name example2.com;
                    error_log  /var/log/nginx/example2.error_log  debug;
                        ...
   }
}

当需要禁用错误日志时,请将日志文件的名称分配给/dev/null。
error_log/dev/null;

错误日志的安全级别:


merg:当系统不稳定时,用于紧急消息
alert:生成严重问题的警报消息。
crit:用于紧急情况下立即处理。
error:处理页面时,可能会发生错误。
warn:用于警告消息
notice:您也可以忽略的通知日志。
info:有关信息,消息
debug:指向用于调试信息的错误位置

2、apache

apache中日志记录格式主要有两种,普通型(common)和复合型(combined),安装时默认使用普通型(common)类型日志记录访问信息

apache存在两个日志文件,分别是访问日志access_log(Windows上是access.log)和错误日志error_log(windows上是error.log)。如果使用SSL服务的话,还可能存在ssl_access_log和ssl_error_log和ssl_request_log三种日志文件。

日志文件位置:通过apache配置文件”httpd.conf”查找日志文件存放位置,一般在Apache安装目录的logs子目录中。

(1)访问日志

示例:
1.1.1.1 - - &#91;19/Aug/2000:14:47:37 -0400] "GET / HTTP/1.0" 200 654
日志各字段所代表的内容:
①远程主机地址
②空白(E-mail)
③空白(登录名)
④请求时间
⑤方法+资源+协议
⑥状态代码
⑦发送字节数
(2)错误日志

示例:
 &#91;Fri Jan 13 14:32:52 2017] &#91;error] &#91;client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
 第一项是错误发生的日期和时间;
 第二项是错误的严重性:LogLevel
 指令使只有高于指定严重性级别的错误才会被记录;
 第三项是导致错误的IP地址;
 此后是信息本身,在此例中,服务器拒绝了这个客户的访问。服务器在记录被访问文件时,用的是文件系统路径,而不是Web路径。

3、Tomcat

(1)日志统计

(1)Tomcat ⽇志⽬录,包括服务器⽇志、 HTTP 访问⽇志、 Web 应⽤⽇志。
a、服务器⽇志- catalina.out : 当前⽇志输出⽂件; catalina.${date}.log : 包含归档的⽇志⽂件
b、HTTP 访问⽇志 - localhost_access_log.${date}.txt
c、Web 应⽤⽇志 - localhost.${date}.log

(2)一般的web服务器有两部分日志:
一是运行中的日志catalina.out,它主要记录运行的一些信息,尤其是一些异常错误日志信息。
二是访问日志信息access.`date +%F`.log,它记录的访问的时间,IP,访问的资料等相关信息。
(2)日志名和介绍

①localhost_access_log.Y-M-D.txt
tomcat访问日志记录,需要配置,应急排查的主要日志

②catalina.out
catalina.out其实是tomcat的标准输出(stdout)和标准出错(stderr),
这是在tomcat的启动脚本里指定的,如果没有修改的话stdout和stderr会重定向到这里。所以我们在应用里使用System.out打印的东西都会到这里来。
另外,如果我们在应用里使用其他的日志框架,配置了向Console输出的,则也会在这里出现。
比如以logback为例,如果配置ch.qos.logback.core.ConsoleAppender则会输出到catalina.out

③catalina.Y-M-D.log
主要是记录tomcat启动时候的信息,类似于我们在eclipse中启动服务的时候在控制台看到的信息。在里面可以看到启动的JVM参数以及操作系统等日志信息。如果没有使用log4j等日志机制,系统的的错误信息与打印语句也在这个日志文件中记录。(linux下所有的日志都在catalina.out中)

④manager.Y-M-D.log
管理的日志

⑤localhost.Y-M-D.log
经常用到的文件之一 ,程序异常没有被捕获的时候抛出的地方
Tomcat下内部代码丢出的日志(jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,日志信息就在该文件!)
应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,而这些未处理异常最终会导致应用无法启动。

(3)logging.properties 配置解释(日志部分)

#可配置项(5类日志):catalina、localhost、manager、admin、host-manager
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
 
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
#catalina文件输出位置
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#catalina日志前缀为catalina
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
#localhost文件输出位置
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#localhost日志前缀为localhost
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
 
#配置文件使manager日志输出级别为FINE
3manager.org.apache.juli.AsyncFileHandler.level = FINE
#manager文件输出位置
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#manager日志前缀为manager
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
 
#配置文件使host-manager日志输出级别为FINE
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
#host-manager文件输出位置
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#host-manager日志前缀为host-manager
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

4、IIS

用户每打开一次网页,iis 都会记录用户IP、访问的网页地址、访问时间、访问状态等信息,这些信息保存在 iis日志文件里,方便网站管理员掌握网页被访问情况和 iis 服务器运行情况。如果网页被恶意访问(如注入数据库),日志中会有相应的记录,并且能看到注入者用什么代码注入,便于分析网站漏洞。

(1)日志查看方法

a、Windows默认文件夹
由于不同的 Windows 版本,iis日志路径不一样,所以分别介绍如下:
Windows Server 2003 iis6日志路径:C:\Windows\System32\LogFiles
Windows Server 2008 R2、2012、2016、2019 iis7以上日志路径:C:\inetpub\logs\LogFile

b、IIS服务器查看
择“开始”菜单 → 管理工具(或 Windows 管理工具) → Internet 信息服务(IIS)管理器(或 Internet Information Services (IIS)管理器),打开 iis 服务器窗口,依次展开要查看日志的网站,Windows Server 2008 R2、2012、2016、2019 系统,双击“日志”图标,如图1所示:

Windows Server 2008 R2、2012、2016、2019 系统:双击“日志”图标;

Windows Server 2003:右键要查看日志的网站 → 属性 → “网站”选项卡 → 属性 → “常规”选项卡。

(2)日志分析

示例:


#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2020-09-08 09:30:26
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 192.0.2.0 Baiduspider+(+http://www.example.com)200 0 64 185173 296 0

字段前缀:

前缀说明
s-服务器操作
c-客户端操作
cs-客户端到服务器的操作
sc-服务器到客户端的操作

字段说明:

字段说明
date客户端发送请求的日期.。
time客户端发送请求的时间。
s-sitename服务名,表示客户端所访问的站点的Internet服务和实例的号码。
s-computername服务器名,表示生成日志的服务器名称。
s-ip服务器IP地址,表示生成日志的服务器的IP地址。
cs-method请求​方法,例如:GET、POST。
cs-uri-stem​URI资源,表示请求访问的地址。
cs-uri-queryURI查询,表示查询HTTP请求中问号(?)后的信息。
s-port服务器端口,表示连接客户端的服务器端口号。
cs-username通过验证的域或用户名。对于通过身份验证的用户,格式为
域\用户名
;对于匿名用户,显示短划线(-)。
c-ip客户端IP地址,表示访问服务器的客户端真实IP地址。
cs-version协议版本,例如:HTTP 1.0、HTTP 1.1。
cs(User-Agent)用户代理,表示在客户端使用的浏览器。
CookieCookie,表示发送或接受的Cookie内容,如果没有Cookie,则显示短划线(-)。
referer引用站点,表示用户访问的前一个站点。
cs-host主机信息。
sc-status​协议返回状态,表示HTTP或FTP的操作状态。
sc-substatusHTTP子协议的状态。
sc-win32-status​win32状态,表示操作状态。
sc-bytes​服务器发送的字节数。
cs-bytes​服务器接收的字节数。
time-taken​操作所花费的时间,单位:毫秒。

参考:


https:&#47;&#47;www.jianshu.com/p/cef46618bf95
http://dbappsecurity.cloud/index.php/archives/81/
https://www.cnblogs.com/ljhdo/p/4651087.html
https://blog.csdn.net/ty_hf/article/details/55504719
https://blog.csdn.net/fly910905/article/details/78463909
http://www.liangshunet.com/ca/201408/282538776.htm
http://www.liangshunet.com/ca/201408/282538776.htm
Print Friendly, PDF & Email

发表回复

您的电子邮箱地址不会被公开。