第 9 章 监控数据网格服务器


9.1. 使用 Data Grid 服务器日志

Data Grid 使用 Apache Log4j 2 提供可配置的日志机制,用于捕获环境和记录缓存操作的详细信息,以进行故障排除和根本原因分析。

9.1.1. Data Grid 日志文件

Data Grid 将日志消息写入以下目录:
$RHDG_HOME/${infinispan.server.root}/log

server.log
以人类可读格式的消息,包括与服务器启动相关的引导日志。
在启动服务器时,Data Grid 默认创建此文件。
server.log.json
JSON 格式的消息,允许您解析和分析 Data Grid 日志。
在启用 JSON-FILE 附加程序时,Data Grid 会创建此文件。

9.1.2. 配置数据网格日志属性

您可以使用 log4j2.xml 配置 Data Grid 日志,该日志在 Log4j 2 manual 中进行了描述。

流程

  1. 使用任何文本编辑器打开 $RHDG_HOME/${infinispan.server.root}/conf/log4j2.xml
  2. 根据需要更改日志记录配置。
  3. 保存并关闭 log4j2.xml

9.1.2.1. 日志级别

日志级别表示消息的性质和严重性。

日志级别描述

TRACE

细粒度调试消息,通过应用程序捕获单个请求的流。

DEBUG

常规调试消息,与单个请求无关。

INFO

有关应用程序整体进度的消息,包括生命周期事件。

WARN

可能导致错误或降低性能的事件。

ERROR

可能会阻止操作或激活成功但不会阻止应用程序运行的错误条件。

FATAL

可能导致关键服务失败和应用程序关闭的事件。

除了上面提供的单个消息级别外,配置还允许另外两个值: ALL 包含所有消息,OFF 排除所有消息。

9.1.2.2. Data Grid Log Categories

Data Grid 为 INFO,WARN,ERROR,FATAL 级别提供按功能区域组织日志的类别。

org.infinispan.CLUSTER
特定于 Data Grid 集群的消息,其中包括状态传输操作、重新平衡事件、分区等。
org.infinispan.CONFIG
特定于 Data Grid 配置的消息。
org.infinispan.CONTAINER
特定于过期和驱除操作的数据容器、缓存侦听器通知、事务等。
org.infinispan.PERSISTENCE
特定于缓存加载程序和存储的消息。
org.infinispan.SECURITY
特定于 Data Grid 安全性的消息。
org.infinispan.SERVER
特定于 Data Grid 服务器的消息。
org.infinispan.XSITE
特定于跨站点复制操作的消息。

9.1.2.3. 日志应用程序

日志附加程序定义 Data Grid 记录日志消息的方式。

控制台
将日志消息写入主机标准输出(stdout)或标准错误(stderr)流。
默认使用 org.apache.logging.log4j.core.appender.ConsoleAppender 类。
FILE
将日志消息写入文件。
默认使用 org.apache.logging.log4j.core.appender.RollingFileAppender 类。
JSON-FILE
将日志消息写入 JSON 格式的文件。
默认使用 org.apache.logging.log4j.core.appender.RollingFileAppender 类。

9.1.2.4. 日志模式

CONSOLEFILE 附加程序使用 PatternLayout 来根据 模式 格式化日志消息。

例如,FILE appender 中的默认模式:
%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%t)[%c Array] %m%throwable%n

  • %d{yyyy-MM-dd HH:mm:ss,SSS} 添加当前时间和日期。
  • %-5p 指定日志级别,与右侧一致。
  • % T 添加当前线程的名称。
  • %c consumption 添加日志记录类别的短名称。
  • % M 添加日志消息。
  • %throwable 添加异常堆栈追踪。
  • %n 添加新行。

PatternLayout 文档 完全描述了模式。

9.1.2.5. 启用并配置 JSON 日志处理程序

Data Grid 提供了一个 JSON 日志处理程序,以 JSON 格式写入消息。

前提条件

确保 Data Grid 未在运行。您无法动态启用日志处理程序。

流程

  1. 使用任何文本编辑器打开 $RHDG_HOME/${infinispan.server.root}/conf/log4j2.xml
  2. 取消注释 JSON-FILE 附加程序并注释掉 FILE 附加器:

          <!--<AppenderRef ref="FILE"/>-->
          <AppenderRef ref="JSON-FILE"/>
  3. (可选)配置 JSON 附加器 和布局
  4. 保存并关闭 logging.properties

当您启动 Data Grid 时,它会在以下文件中将每个日志消息写为 JSON 映射:
$RHDG_HOME/${infinispan.server.root}/log/server.log.json

9.1.3. 访问日志

热 Rod 和 REST 端点可使用以下类别将所有入站客户端请求记录为日志条目:

  • org.infinispan.HOTROD_ACCESS_LOG 日志记录类别用于 Hot Rod 端点。
  • org.infinispan.REST_ACCESS_LOG 日志记录类别用于 REST 端点。

9.1.3.1. 启用访问日志

默认情况下,禁用 Hot Rod 和 REST 端点的访问日志。要启用任一日志记录类别,请在 Data Grid 日志记录配置中将级别设置为 TRACE,如下例所示:

<Logger name="org.infinispan.HOTROD_ACCESS_LOG" additivity="false" level="TRACE">
   <AppenderRef ref="HR-ACCESS-FILE"/>
</Logger>

9.1.3.2. 访问日志属性

访问日志的默认格式如下:

%X{address} %X{user} [%d{dd/MMM/yyyy:HH:mm:ss Z}] &quot;%X{method} %m
%X{protocol}&quot; %X{status} %X{requestSize} %X{responseSize} %X{duration}%n

以上格式会创建日志条目,如下所示:

127.0.0.1 - [DD/MM/YYYY:HH:MM:SS +0000] "PUT /rest/v2/caches/default/key HTTP/1.1" 404 5 77 10

日志记录属性使用 %X{name} 表示法,并允许您修改访问日志的格式。以下是默认的日志记录属性:

属性描述

address

X-Forwarded-For 标头或客户端 IP 地址。

user

主体名称,如果使用身份验证。

方法

使用的方法。PUTGET 等等。

protocol

使用的协议。HTTP/1.1HTTP/ 2、WildROD/2.9 等。

status

REST 端点的 HTTP 状态代码。Hot Rod 端点的 OK 或例外。

requestSize

请求的大小,以字节为单位。

responseSize

响应的大小(以字节为单位)。

duration

服务器处理请求的毫秒数。

提示

使用前缀为 h: 的标头名称来记录请求中包含的标头;例如: %X{h:User-Agent}

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.