11.5.7. 配置套接字日志处理程序


本节介绍如何使用管理 CLI 配置套接字日志处理程序,它可用于通过套接字发送消息。这可以是 TCP 或 UDP 套接字。您还可以使用管理控制台配置套接字日志处理程序,方法是导航到 Configuration Subsystems Logging Configuration,点 View,然后选择 Handler Socket Handler

注意

如果服务器以 admin-only 模式启动,则会丢弃日志消息。

配置套接字日志处理器时要执行的主要任务有:

重要

如果您要为日志记录配置集配置此日志处理程序,则命令的开头为 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/

此外,如果您在受管域中运行,请在命令前加上 /profile=PROFILE_NAME

添加 Socket Binding

定义 remote-destination-outbound-socket-bindinglocal-destination-outbound-socket-binding,作为 要使用的套接字绑定

/socket-binding-group=SOCKET_BINDING_GROUP/remote-destination-outbound-socket-binding=SOCKET_BINDING_NAME:add(host=HOST, port=PORT)
添加日志格式

定义要使用的日志格式器,如 JSON 格式器。

/subsystem=logging/json-formatter=FORMATTER:add
添加套接字日志处理程序

在添加套接字日志处理程序时,您必须指定要使用的套接字绑定和格式化器。

/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:add(outbound-socket-binding-ref=SOCKET_BINDING_NAME,named-formatter=FORMATTER)
配置套接字日志处理程序设置

根据您的需要,您可能需要设置以下一个或多个套接字日志处理程序属性:有关可用套接字日志处理程序属性及其描述的完整列表,请参阅 Socket Log Handler Attributes

  • 设置协议.

    设置要使用的协议。默认值为 TCP

    /subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=protocol,value=PROTOCOL)
  • 设置日志级别。

    为处理程序设置适当的日志级别。默认值为 ALL有关所有可用选项,请参阅日志级别

    /subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
    注意

    在服务器启动期间,套接字日志处理程序处理的日志消息排入队列,直到配置了套接字绑定并且初始化 logging 子系统。如果日志级别设置为低级别,如 TRACEDEBUG,这可能会导致启动时消耗大量内存。

  • 设置编码.

    设置处理程序的编码,如 utf-8

    /subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
  • 设置自动刷新.

    设置是否在每次写入后自动清空。默认值为 true

    /subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
  • 设置过滤器表达式。

    设置表达式,以过滤处理程序的日志消息。务必用引号转义任何逗号和引号。例如,对于过滤器表达式 not (match("WFLY"),需要将以下 FILTER_EXPRESSION 可替换变量替换为"not(match(\" WFLY\")"。

    /subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    有关可用过滤器表达式的更多信息,请参阅 Filter Expressions 部分。

将 Socket Log Handler 分配给 Logger

要激活日志处理程序,您必须将其分配到日志记录器。

以下管理 CLI 命令将套接字日志处理程序分配到根日志记录器:

/subsystem=logging/root-logger=ROOT:add-handler(name=SOCKET_HANDLER_NAME)

以下管理 CLI 命令将套接字日志处理程序分配给名称由 CATEGORY 指定的日志记录器:

/subsystem=logging/logger=CATEGORY:add-handler(name=SOCKET_HANDLER_NAME)
删除套接字日志处理程序

可以使用 remove 操作移除日志处理程序。如果当前分配给日志记录器或异步日志处理程序,则无法移除日志处理程序。

/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:remove
使用 SSL/TLS 通过套接字发送日志消息

下列步骤演示了如何设置套接字日志处理程序以使用 SSL_TCP 协议通过套接字发送日志消息的示例。本例在 elytron 子系统中配置密钥存储、信任管理器和客户端 SSL 上下文,供套接字日志处理程序使用。来自根日志记录器的日志消息通过指定的套接字发送,格式为 JSON 格式。

有关配置 Elytron 组件的更多信息,请参阅如何为 JBoss EAP 配置服务器安全性的 Elytron Subsystem

  1. 配置 Elytron 设置。

    1. 添加 密钥存储。

      /subsystem=elytron/key-store=log-server-ks:add(path=/path/to/keystore.jks, type=JKS, credential-reference={clear-text=mypassword})
    2. 添加信任管理器。

      /subsystem=elytron/trust-manager=log-server-tm:add(key-store=log-server-ks)
    3. 添加客户端 SSL 上下文。

      /subsystem=elytron/client-ssl-context=log-server-context:add(trust-manager=log-server-tm, protocols=["TLSv1.2"])
  2. 添加套接字绑定。

    /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=log-server:add(host=localhost, port=4560)
  3. 添加 JSON 格式器。

    /subsystem=logging/json-formatter=json:add
  4. 添加 socket 日志处理程序。

    /subsystem=logging/socket-handler=log-server-handler:add(named-formatter=json, level=INFO, outbound-socket-binding-ref=log-server, protocol=SSL_TCP, ssl-context=log-server-context)
  5. 将日志处理程序分配到根日志记录器。

    /subsystem=logging/root-logger=ROOT:add-handler(name=log-server-handler)
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.