负载平衡器插件使用 Web 服务器的日志记录机制来写入日志消息。Application Server 上的默认日志级别被设置为 Sun Java System Web Server (INFO)、Apache Web Server (WARN) 和 Microsoft IIS (INFO) 上的默认日志级别。应用服务器日志级别(FINE、FINER 和 FINEST)映射到 Web 服务器上的 DEBUG 级别。
这些日志消息将被写入 Web 服务器日志文件,其形式为可使用脚本进行解析或可被导入电子表格以计算所需的衡量标准的原始数据。
负载平衡器插件生成以下类型的日志消息:
使用幂等 URL 和错误页面设置时,将记录这些消息。
幂等 URL 模式配置的输出包含以下信息:
当日志级别被设置为详细时:
CONFxxxx: IdempotentUrlPattern configured <url-pattern> <no-of-retries> for web-module : <web-module>
当日志级别被设置为严重时:
CONFxxxx: Duplicate entry of Idempotent URL element <url-pattern> for webModule <web-module> in loadbalancer.xml."
当日志级别被设置为警告时:
CONFxxxx: Invalid IdempotentUrlPatternData <url-pattern> for web-module <web-module>
错误页面 URL 配置的输出包含以下信息(日志级别设置为警告):
CONFxxxx: Invalid error-url for web-module <web-module>
在对请求进行负载平衡和分发时,将生成这些日志消息。
每个方法开始的标准日志的输出均包含以下信息(日志级别设置为详细):
ROUTxxxx: Executing Router method <method_name>
每个方法开始的路由器日志的输出均包含以下信息(日志级别设置为信息):
ROUTxxxx: Successfully Selected another ServerInstance for idempotent request <Request-URL>
运行时日志的输出包含以下信息(日志级别设置为信息):
RNTMxxxx: Retrying Idempotent <GET/POST/HEAD> Request <Request-URL>
如果存在配置问题(例如,缺少引用的自定义错误页面),将显示这些错误消息。
日志级别设置为信息:
ROUTxxxx: Non Idempotent Request <Request-URL> cannot be retried
例如:ROUTxxxx: Non Idempotent Request http://sun.com/addToDB?x=11&abc=2 cannot be retried
日志级别设置为详细:
RNTMxxxx: Invalid / Missing Custom error-url / page: <error-url> for web-module: <web-module>
例如:RNTMxxxx: Invalid / Missing Custom error-url / page: myerror1xyz for web-module: test
负载平衡器插件记录以下信息:
每个请求的请求开始/停止信息。
当请求从异常实例故障转移到正常实例时的故障转移请求信息。
每个运行状况检查周期结束时的异常实例列表。
启用负载平衡器日志记录后,如果将 Web 服务器日志级别设置为 DEBUG 或设置为打印详细消息,负载平衡器会将 HTTP 会话 ID 写入 Web 服务器日志文件中。因此,如果托管负载平衡器插件的 Web 服务器位于 DMZ 中,请不要在生产环境中使用 DEBUG 或类似的日志级别。
如果必须使用 DEBUG 日志记录级别,请在 loadbalancer.xml 中将 require-monitor-data 属性设置为 false,以关闭负载平衡器日志记录。
设置 Web 服务器中的日志选项。此过程将取决于 Web Server:
将负载平衡器配置的 monitor 选项设置为 True。
使用 asadmin create-http-lb-config 命令在最初创建负载平衡器配置时将监视设置为 True,也可以在以后使用 asadmin set 命令将其设置为 True。默认情况下,监视处于禁用状态。
负载平衡器插件日志消息的格式如下所示:
HTTP 请求的开头处包含以下信息:
RequestStart Sticky(New) <req-id> <time-stamp> <URL>
时间戳值是从 1970 年 1 月 1 日开始的毫秒数。例如:
RequestStart New 123456 602983 http://austen.sun.com/Webapps-simple/servlet/Example1
HTTP 请求的结尾包含 RequestExit 消息,如下所示:
RequestExit Sticky(New) <req-id> <time-stamp> <URL> <listener-id> <response-time> Failure-<reason for error>(incase of a failure)
例如:
RequestExit New 123456 603001 http://austen.sun.com/Webapps-simple/servlet/Example1 http://austen:2222 18
在 RequestExit 消息中,response-time 表示从负载平衡器插件方面请求的往返总时间(以毫秒为单位)。
异常实例列表,如下所示:
UnhealthyInstances <cluster-id> <time-stamp> <listener-id>, <listener-id>...
例如:
UnhealthyInstances cluster1 701923 http://austen:2210, http://austen:3010
故障转移请求列表,如下所示:
FailedoverRequest <req-id> <time-stamp> <URL> <session-id> <failed-over-listener-id> <unhealthy-listener-id>
例如:
FailedoverRequest 239496 705623 http://austen.sun.com/Apps/servlet/SessionTest 16dfdac3c7e80a40 http://austen:4044 http://austen:4045