Sun ONE logo      上一页      目录      索引      下一页     

Sun ONE Web Server 6.1 管理员指南

第 10 章
使用日志文件

您可以使用多种方法监视服务器的活动。本章介绍了通过记录和查看日志文件来监视服务器的方法。有关使用内置性能监视服务、服务质量功能或 SNMP 的信息,请参见“监视服务器”。

本章包括以下部分:


关于日志文件

服务器日志文件记录服务器的活动。使用这些日志可以监视服务器,并在诊断错误时为您提供帮助。错误日志文件(位于服务器根目录中的 https-server_name/logs/errors 下)列出了服务器曾遇到的所有错误。访问日志(位于服务器根目录中的 https-server_name/logs/access 下)记录了有关对服务器的请求以及服务器响应的信息。您可以配置 Sun ONE Web Server access 日志文件中记录的信息。使用日志分析程序可以生成服务器统计数据。通过归档可以将服务器的错误日志文件和访问日志文件进行备份。


由于操作系统的限制,Sun ONE Web Server 无法在 Linux 上处理大于 2GB 的日志文件。达到最大日志大小后,日志记录就会停止。



UNIX 和 Windows 平台上的日志

本节介绍如何创建日志文件。此外,还包括以下主题:

默认错误日志

在 UNIX 和 Windows 平台上,Administration Server 的日志存储在该服务器的 https-admserve/logs/ 目录下。服务器实例的日志存储在 https-server_name/logs/ 目录下。

可以设置整个服务器的默认日志级别,还可以将 stdout 和 stderr 重定向到服务器的事件日志以及将日志输出定向到操作系统的系统日志。此外,还可以将 stdout 和 stderr 的内容定向到服务器的事件日志。默认情况下,日志消息除了发送到指定的服务器日志文件以外,还将发送到 stderr。

另一个可用的功能是使用日志消息记录虚拟服务器 ID。当使用多个虚拟服务器将消息记录到同一个日志文件时,此功能很有用。可以选择将日志消息写入系统日志。执行此操作时,不会在错误日志文件中进行日志记录,而是使用 UNIX 中的 syslog 日志服务或 Windows 平台上的系统日志服务来生成和管理日志。

还可以使用 server.xml 的属性来控制此文件的内容。有关 server.xml 文件的详细信息,请参见《Sun ONE Web Server 6.1 Administrator's Configuration File Reference》。

使用 syslog 记录日志

syslog 适用于要求集中记录日志的稳定的可操作环境。在需要经常查看日志输出以进行诊断和调试的环境中,设置一个服务器实例或虚拟服务器日志可能比较容易管理。


  • 如果将服务器实例和 Administration Server 的所有日志数据都存储在一个文件中,可能难于读取和调试。建议将 syslog 主日志文件仅用于已部署且正在顺利运行的应用程序。
  • 日志消息与 Solaris 守护程序应用程序中的所有其他日志混合在一起。

通过将 syslog 日志文件与 syslogd 以及系统日志守护程序一起使用,可以将 syslog.conf 文件配置为:

因为将日志记录到 syslog 意味着 Sun ONE Web Server 以及其他守护程序应用程序的日志都存储在同一个文件中,所以日志消息中增加了以下信息,以便标识来自特定服务器或虚拟服务器实例中专用于 Sun ONE Web Server 的消息:

可以在 server.xml 文件中为 Administration Server 和服务器实例配置 LOG 元素。

要获得有关 UNIX 操作环境所使用的 syslog 记录机制的更多信息,请在出现终端提示后使用以下手册命令:

man syslog

man syslogd

man syslog.conf

使用 Windows 事件日志记录日志

有关 Windows 操作环境所使用的事件日志机制的更多信息,请在 Windows 帮助系统索引中查找关键字“事件日志”。


日志级别

下表按严重程度升序定义了 Sun ONE Web Server 中的日志级别和消息。

表 10-1 日志级别

日志级别

说明

finest

finer

fine

表明调试信息详尽程度的消息。其中 finest 最详尽。

info

信息类型的消息,通常与服务器配置或服务器状态相关。这些消息不是指需要立即采取行动的错误。

warning

表明警告的消息。这种消息可能伴有异常情况。

failure

表明严重故障的消息,故障可能会妨碍应用程序的正常执行。

config

与各种静态配置信息相关的消息,可以帮助用户调试可能与特定配置有关的问题。

security

表明安全问题的消息。

catastrophe

表明致命错误的消息。


关于虚拟服务器和日志

Sun ONE Web Server 可以拥有虚拟服务器实例。Sun ONE Web Server 实例中的每个虚拟服务器都具有自己的标识,也可以具有自己的日志文件。可以使用每台虚拟服务器的单个日志文件追踪特定事务和资源的服务器活动。

也可以将来自多台虚拟服务器的日志消息定向到一个服务器日志文件。执行此操作时,用户可能需要启用 logvsid(位于 server.xml 文件中的 LOG 元素内)。这有助于区分来自不同虚拟服务器的日志消息。

<SERVER>

...

<LOG file="/export//https-iws-files2.red.iplanet.com/logs/errors" loglevel="finest" logtoconsole="true" usesyslog="false" createconsole="false" logstderr="true" logstdout="true" logvsid="true"/>

</SERVER>

在本实例中,<LOG logvsid="true"> 的作用是将虚拟服务器 ID 包含在每个日志消息中。这样可以区分来自不同虚拟服务器的消息。如果 VS 元素中不包含 errorlog 属性,那么所有虚拟服务器上的消息都将记录到一个文件中。


重定向应用程序和服务器日志输出

对于开发者来说,在进行 Web 应用程序组件和 J2EE 应用程序的部件测试时,可以随时访问应用程序日志和服务器日志非常重要。在 Windows 平台上,开发者更希望看到日志消息显示在桌面命令窗口中。在 UNIX 平台上,只需将日志消息分发到从中启动了服务器实例的终端窗口中的 stderr,或使用命令 tail -f 就可以查看写入日志文件的日志消息给许多开发者带来了很大的方便。

server.xml 文件中包含了可以为 stdout 和 stderr 设置的属性,以将日志消息定向到日志文件或终端窗口等位置。有关使用 stdout 和 stderr 的详细信息,请参见《Sun ONE Web Server 6.1 Administrator's Configuration File Reference》。


归档日志文件

可以将访问日志文件和错误日志文件设置为自动归档。在某一时间或在指定的时间间隔后,用户的日志将被轮转。Sun ONE Web Server 将保存旧的日志文件,并使用包含保存日期和时间的名称标记所保存的文件。

例如,可以将访问日志文件设置为每小时旋转一次,而 Sun ONE Web Server 将保存该文件并将其命名为 "access.200307152400",其中将日志文件名、年月日和 24 小时制时间合成一个字符串。根据所设置的日志轮转类型,日志归档文件的实际格式会有所不同。

Sun ONE Web Server 为归档文件提供了两种日志轮转类型:内部守护程序日志轮转和基于守护程序的日志轮转。

内部守护程序日志轮转

此类型的日志轮转发生在 HTTP 守护程序内,且只能在启动时进行配置。使用内部守护程序日志轮转,服务器可以在内部轮转日志,而无需重新启动。使用此方法轮转的日志将被保存为以下格式:

access.<YYYY><MM><DD><HHMM>

error.<YYYY><MM><DD><HHMM>

可以指定用来轮转日志文件和开始新日志文件的基准时间。例如,如果轮转开始时间为 12:00 a.m.,并且轮转间隔为 1440 分钟(一天),那么当您保存并应用更改时,系统将立即创建一个新的日志文件,而不管当前的时间。日志文件在每天的 12:00 a.m. 进行轮转,而访问日志将被标记为 12:00 a.m. 并保存为 access.200307152400。同样,如果将间隔设置为 240 分钟(4 小时),开始时间为 12:00 a.m.,则访问日志文件将包含从 12:00 a.m. 到 4:00 a.m.,从 4:00 a.m. 到 8:00 a.m. 等时间段内收集到的信息。

如果启用了日志轮转,将在服务器启动时开始进行日志文件轮转。第一个要轮转的日志文件将收集从当前时间至下次轮转时间之间的信息。以上一个例子为例,如果将开始时间设置为 12:00 a.m.,并将轮转间隔设置为 240 分钟,而当前的时间为 4:00 a.m.,则第一个要轮转的日志文件将包含从 4:00 a.m. 至 8:00 a.m 之间收集到的信息,下一个日志文件将包含 8:00 a.m. 至 12:00 p.m.(中午)的信息,并依此类推。

基于调度程序的日志轮转

此类型的日志轮转将基于存储在 scheduler.conf 文件中的时间(该文件位于 server_root/https-admserv/config/ 目录下)。此方法可用于将日志文件立即归档,或使服务器在特定日期中的特定时间将日志文件归档。服务器的调度程序配置选项存储在 schedulerd.conf 文件中(位于 server_root/https-admserv/config/ 目录下)。使用基于调度程序的方法轮转的日志将被保存为以下格式:

<original_filename>.<YYYY><MM><DD><HHMM>

例如,当在 4:30 p.m 轮转文件时,access 将变成 access.200307151630

日志轮转在服务器启动时进行初始化。如果开启了轮转,Sun ONE Web Server 将创建一个用时间标记的访问日志文件并在服务器启动时开始进行轮转。

轮转开始以后,如果存在需要记录到访问日志文件或错误日志文件的请求或错误,Sun ONE Web Server 将在预先调度的“下次旋转时间”之后创建用新时间标记的日志文件。


您应该在运行日志分析程序之前将服务器日志归档。


要将日志文件归档以及指定是采用内部守护程序方法还是采用基于调度程序的方法,请使用 Server Manager 中的 "Archive Log Files" 页面


设置访问日志首选项

在安装过程中,将为服务器创建名为 access 的访问日志文件。通过指定是否记录访问、记录时使用的格式,以及当客户机访问资源时服务器是否要查找客户机的域名,用户可以自定义任意资源的访问日志。

要将 %vsid% 添加到日志文件格式字符串:

  1. 访问 Server Manager 并选择 "Logs" 选项卡。
  2. 单击 "Access Log Preferences" 链接。
  3. 在 "Log File:" 文本框中输入新的日志文件位置和文件名。
  4. 单击 "Only Log:" 单选按钮。
  5. 单击 "Virtual Server Id" 复选框。也可以单击 "Custom Format:" 单选按钮并添加字符串 '%vsid%

  6. 添加自定义格式字符串 '%vsid% 时,必须使用新的访问日志文件。


更改现有日志文件的格式时,应首先删除/重命名现有的日志文件,也可以使用不同的文件名。

服务器访问日志可以使用通用日志文件格式、灵活日志格式或用户可自定义的格式。通用日志文件格式是普遍受支持的格式,可提供服务器的固定信息。灵活的日志格式使您可以选择(从 Sun ONE Web Server)要记录的内容。可自定义的格式使用参数块,用户可以指定这些参数块来控制记录的内容。有关可自定义的格式参数的列表,请参见 NSAPI Programmer's Guide。

创建某个资源的访问日志后,将无法更改日志的格式,除非对它进行归档或为该资源创建一个新的访问日志文件。

您可以使用 Server Manager 中的 "Access Log Preferences" 来指定日志首选项,也可以手动配置 obj.conf 文件中的以下指令。在 magnus.conf 中,服务器将调用函数 flex-init 初始化灵活日志系统,并调用函数 flex-log 以灵活日志格式记录专用于请求的数据。要使用通用日志文件格式记录请求,服务器将调用 init-clf 初始化通用日志子系统(该子系统在 obj.conf 中使用),并调用 common-log 以通用日志格式(大多数 HTTP 服务器采用的格式)记录专用于请求的数据。

有关 NSAPI 日志函数(包括有效的指令和参数)的详细信息,请参见 NSAPI Programmer's Guide。

简易 Cookie 日志

使用 flexlog 功能,Sun ONE Web Server 可以很容易地记录特定的 cookie。在配置文件 obj.conf 中,将 "Req->headers.cookie.cookie_name" 添加到用于初始化 flex-log 子系统的行中。如果请求标头中存在 cookie 变量,则将记录 cookie 变量 cookie_name 的值;如果不存在该变量,将记录 "-"。


设置错误日志选项

Sun ONE Web Server 6.1 使您可以配置要记录到服务器错误日志中的信息。

对于 Administration Server 实例

  1. 访问 Administration Server。
  2. 选择 "Preferences" 选项卡。
  3. 单击 "Access Logging Options" 链接。
  4. 输入所需的信息。
  5. 依次单击 "OK" 和 "Apply" 来保存并应用更改。

对于服务器实例

  1. 访问服务器实例。
  2. 选择 "Logs" 选项卡。
  3. 单击 "Error Log Preferences" 链接。
  4. 输入所需的信息。
  5. 依次单击 "OK" 和 "Apply" 来保存并应用更改。


配置 LOG 元素

下表说明了可以在 server.xml 文件中配置的 LOG 元素:

表 2 LOG 属性

属性

默认值

说明

file

errors

指定用来存储来自默认虚拟服务器消息的文件。来自其他已配置虚拟服务器的消息也存储在该文件中,除非在 VS 元素中明确指定了 errorlog 属性。

loglevel

info

控制由其他元素记录到错误日志中的消息的默认类型。允许的值如下所示(从高到低排列):

finestfinefineinfowarningfailureconfig、securitycatastrophe

logvsid

false

(可选)如果为 true,虚拟服务器日志中将显示虚拟服务器 ID。如果有多个 VS 元素共享同一个日志文件,这些属性会很有用。

请注意,在 Sun ONE Web Server 6.1 中,无法在 magnus.conf 文件中配置 logvsid 元素。

logstdout

true

(可选)如果为 true,则将 stdout 输出重定向到错误日志。有效值为 onoffyesno10truefalse

logstderr

true

(可选)如果为 true,则将 stderr 输出重定向到错误日志。有效值为 onoffyesno10truefalse

logtoconsole

true

(可选,仅限 UNIX)如果为 true,则将日志消息重定向到控制台。

createconsole

false

(可选,仅限 Windows)如果为 true,则为 stderr 输出创建一个 Windows 控制台。有效值为 onoffyesno10truefalse

usesyslog

false

(可选)如果为 true,则使用 UNIX syslog 服务或 Windows 事件日志来生成和管理日志。有效值为 onoffyesno10truefalse


查看访问日志文件

您可以查看服务器的活动访问日志文件和已归档的访问日志文件。

要从 Administration Server 查看其访问日志,请依次选择 "Preferences" 选项卡和 "View Access Log" 页面

要通过 Server Manager 查看服务器实例的访问日志,请依次选择 "Logs" 选项卡和 "View Access Log" 页面

要从 Class Manager 查看单个虚拟服务器的访问日志,请先从突出显示的 "Manage Virtual Servers" 页面中选择要管理的虚拟服务器,然后在 "Virtual Server Manager" 页面中单击 "Access Log" 标题下的链接。您可以指定要查看的条目数或具有所选条件限定词的条目数。

以下是使用通用日志文件格式的访问日志的实例(此格式在 "Log Preferences" 窗口中指定,有关详细信息,请参见“设置访问日志首选项”):

wiley.a.com - - [16/Feb/2001:21:18:26 -0800] "GET / HTTP/1.0" 200 751

wiley.a.com - - [17/Feb/2001:1:04:38 -0800] "GET /docs/grafx/icon.gif HTTP/1.0" 204 342

wiley.a.com - - [20/Feb/2001:4:36:53 -0800] "GET /help HTTP/1.0" 401 571

arrow.a.com - john [29/Mar/2001:4:36:53 -0800] "GET /help HTTP/1.0" 401 571

表 10-3 对该访问日志样例中的最后一行进行了说明。

表 10-3 样例访问日志文件中最后一行的字段 

访问日志字段

实例

客户机的主机名或 IP 地址

arrow.a.com。(在这种情况下,显示主机名是因为启用了进行 DNS 查找的 Web 服务器的设置;如果禁用了 DNS 查找,将显示客户机的 IP 地址。)

RFC 931 信息

-(RFC 931 标识未实现)

用户名

john(客户输入的用于验证的用户名)

请求的日期/时间

29/Mar/1999:4:36:53 -0800

请求

GET /help

协议

HTTP/1.0

状态代码

401

传送的字节数

571

以下是使用灵活日志格式的访问日志的实例(此格式在 "Log Preferences" 中指定,详细信息请参见“设置访问日志首选项”):

wiley.a.com - - [25/Mar/2001:12:55:26 -0800] "GET /index.htm HTTP/1.0" "GET" "/?-" "HTTP/   1.0" 304 0 - Mozilla/2.0 (WinNT; I)

wiley.a.com - - [25/Mar/2001:12:55:26 -0800] "GET / HTTP/1.0" "GET" "/?-" "HTTP/1.0" 304 0    - Mozilla/2.0 (WinNT; I)

wiley.a.com - - [25/Mar/2001:12:55:26 -0800] "GET / HTTP/1.0" "GET" "/?-" "HTTP/1.0" 304 0    - Mozilla/2.0 (X11; I; IRIX 5.3 IP22)


查看错误日志文件

错误日志文件包含该文件创建以来服务器遇到的错误;还包含有关服务器的提示性信息(例如服务器的启动时间)。失败的用户验证也记录在此错误日志中。使用错误日志可以查找中断的 URL 路径或丢失的文件。

要从 Administration Server 查看其错误日志文件,请依次选择 "Preferences" 选项卡和 "View Error Log" 页面

要从 Server Manager 查看服务器实例的错误日志文件,请依次选择 "Logs" 选项卡和 "View Error Log" 页面

要通过 Class Manager 查看单个虚拟服务器的错误日志,请先从突出显示的 "Manage Virtual Servers" 页面中选择要管理的虚拟服务器,然后在 "Virtual Server Manager" 页面中单击 "Error Log" 标题下的链接。您可以指定要查看的条目数或具有所选条件限定词的条目数。

以下是两个错误日志中条目的实例:第一个实例显示的是一条表明服务器成功启动的提示性信息,第二个实例表明的是客户机 wiley.a.com 对文件 report.html 进行请求,但是该文件却未在服务器的主文档目录下。

[[22/Jan/2001:14:31:41] info (39700):successful server startup [22/Jan/2001:14:31:41] info (39700):SunONE-WebServer/6.1 BB1-01/22/2001 01:45

[22/Jan/2001:14:31:42] warning (13751):for host wiley.a.com trying to GET /report.html, send-file reports:can't find /usr1/irenem/ES60-0424/docs/report.html (File not found)


运行日志分析程序

server-root/extras/log_anly 目录包含通过 Server Manager 用户界面运行的日志分析工具。此日志分析程序仅分析通用日志格式的文件。log_anly 目录下的 HTML 文档中介绍了此工具的参数。server-root/extras/flex_anlg 目录中包含适用于灵活日志文件格式的命令行日志分析程序。但在默认情况下,Server Manager 使用灵活日志文件报告工具,而不管您是否已选择了通用日志文件格式或灵活日志文件格式。

使用日志分析程序可以生成有关默认服务器的统计数据,例如活动摘要、最常访问的 URL、一天中访问服务器的高峰时段等等。可以从 Sun ONE Web Server 或命令行运行日志分析程序。除了可以生成默认服务器的统计数据以外,日志分析程序不能生成任何虚拟服务器的统计数据。但是,可以查看每个虚拟服务器的统计数据,如“查看访问日志文件”中所述。

在尝试运行 flexanlg 命令行实用程序之前必须设置库路径。各种平台的设置如下所示:

Solaris 和 Linux:

LD_LIBRARY_PATH=server_root/bin/https/lib:$LD_LIBRARY_PATH

AIX:

LIBPATH=server_root/bin/https/lib:$LIBPATH

HP-UX:

SHLIB_PATH=server_root/bin/https/lib:$SHLIB_PATH

Windows:

path=server_root\bin\https\bin;%path%


在运行日志分析程序之前,应将服务器日志归档。有关将服务器日志归档的更多信息,请参见“归档日志文件”。


要从 Server Manager 运行日志分析程序,请执行以下步骤:

  1. 在 Server Manager 中单击 "Logs" 选项卡。
  2. 单击 "Generate Report"。
  3. 填写各个字段。
  4. 单击 "OK"。
  5. 报告将显示在新窗口中。

有关详细信息,请参见联机帮助中的 "Generate Report" 页面

要从命令行分析访问日志文件,请运行工具 flexanlg(位于目录 server-install/extras/flex_anlg 下)。

要运行 flexanlg,请在出现命令提示后键入以下命令和选项:

flexanlg [ -P ] [-n name] [-x] [-r] [-p order] [-i file]* [ -m metafile ]* [ o file][ c opts] [-t opts] [-l opts]

下面将介绍语法。

 

flexanlg -h.):

-P:代理日志格式 默认值:no

-n servername:服务器的名称

-x:HTML 中的输出 默认值:no

-r:将 IP 地址解析到主机名 默认值:no

-p [c,t,l]:输出顺序(计数、时间统计和列表) 默认值:ctl

-i filename:输入日志文件 默认值:none

-o filename:输出日志文件 默认值:stdout

-m filename:元文件 默认值:none

-c [h,n,r,f,e,u,o,k,c,z]:对这些项目进行计数 - 默认值:hnreuokc

    h:找到的总数

    n:304 未修改的状态代码(使用本地副本)

    r:302 找到的状态代码(重定向)

    f:404 未找到的状态代码(未找到文档)

    e:500 服务器错误状态代码(配置错误)

    u:唯一 URL 的总数

    o:唯一主机的总数

    k:传送的千字节总数

    c:高速缓存中保存的千字节总数

    z:不对任何项目进行计数

-t [sx,mx,hx, xx,z]:查找常规统计数据 - 默认值:s5m5h24x10

    s(数目):查找日志的最大(数目)秒钟数

    m(数目):查找日志的最大(数目)分钟数

    h(数目):查找日志的最大(数目)小时数

    u(数目):查找日志的最大(数目)用户数

    a(数目): 查找日志的最大(数目)用户代理数

    r(数目):查找日志的最大(数目)参考数

    x(数目):查找最大(数目)的杂项关键字

    z:不查找任何常规统计数据

-l [cx,hx]:创建列表 - 默认值:c+3h5

    c(x,+x):最常访问的 URL

            (x:仅列出 x 项)

             (+x:仅当访问超出 x 次时列出)

    h(x,+x):最常访问用户服务器的主机(或 IP 地址)

             (x:仅列出 x 项)

             (+x:仅当访问超出 x 次时列出)

    z:不创建任何列表


查看事件 (Windows)

除了将错误记录到服务器错误日志之外(请参见“查看错误日志文件”),Sun ONE Web Server 还将严重的系统错误记录到事件查看器中。事件查看器可用于监视系统中发生的事件。在打开错误日志之前,可以使用事件查看器查看因基础配置问题而引起的错误。

要使用事件查看器,请执行以下步骤:

  1. 从“开始”菜单中依次选择“程序”和“管理工具”。在“管理工具”程序组中选择“事件查看器”。
  2. 从“日志”菜单中选择“应用程序”。
  3. 应用程序日志将显示在事件查看器中。Sun ONE Web Server 产生的错误具有 https-serveridWebServer6.1 的源标签。

  4. 从“查看”菜单中选择“查找”,在日志中搜索这类标签之一。从“查看”菜单中选择“刷新”,查看更新后的日志条目。
  5. 有关事件查看器的详细信息,请参见系统文档。



上一页      目录      索引      下一页     


版权所有 2004 Sun Microsystems, Inc. 保留所有权利。