搜索

4.15. 为代理配置日志记录

download PDF

AMQ Broker 使用 Log4j 2 日志记录工具来提供消息日志记录。部署代理时,它会使用默认的 Log4j 2 配置。如果要更改默认配置,您必须在 secret 或 configMap 中创建一个新的 Log4j 2 配置。将 secret 或 configMap 的名称添加到主代理自定义资源(CR)后,Operator 会将每个代理配置为使用新的日志记录配置,该配置存储在 Operator 在每个 Pod 上挂载的文件中。

前提条件

  • 熟悉 Log4j 2 配置选项。

流程

  1. 准备包含您要用于 AMQ Broker 的 log4j 2 配置的文件。

    代理使用的默认 Log4j 2 配置文件位于每个代理 Pod 上的 /home/jboss/amq-broker/etc/log4j2.properties 文件中。您可以使用默认配置文件的内容作为在 secret 或 configMap 中创建新的 Log4j 2 配置的基础。要获取默认 Log4j 2 配置文件的内容,请完成以下步骤。

    1. 使用 OpenShift Container Platform Web 控制台:

      1. 单击 Workloads Pods
      2. ex-aao-ss Pod。
      3. 点击 Terminal 选项卡。
      4. 使用 cat 命令显示代理 Pod 上的 /home/jboss/amq-broker/etc/log4j2.properties 文件的内容并复制内容。
      5. 将内容粘贴到本地文件中,其中安装了 OpenShift Container Platform CLI,并将该文件保存为 logging.properties
    2. 使用 OpenShift 命令行界面:

      1. 获取部署中 Pod 的名称。

        $ oc get pods -o wide
        
        NAME                          STATUS   IP
        amq-broker-operator-54d996c   Running  10.129.2.14
        ex-aao-ss-0                   Running  10.129.2.15
      2. 使用 oc cp 命令将日志配置文件从 Pod 复制到您的本地目录。

        $ oc cp <pod name>:/home/jboss/amq-broker/etc/log4j2.properties logging.properties -c <name>-container

        其中,容器名称的 <name> 部分是 Pod 名称中的 -ss 字符串前的前缀。例如:

        $ oc cp ex-aao-ss-0:/home/jboss/amq-broker/etc/log4j2.properties logging.properties -c ex-aao-container
        注意

        当您从文件创建 configMap 或 secret 时,configMap 或 secret 中的键默认为文件名,值默认为文件内容。从名为 logging.properties 的文件创建 secret,新日志记录配置所需的键会插入到 secret 或 configMap 中。

  2. 编辑 logging.properties 文件并创建您要与 AMQ Broker 搭配使用的 Log4j 2 配置。

    例如,在默认配置中,AMQ Broker 仅会将信息记录到控制台。您可能需要更新配置,以便 AMQ Broker 也会将信息记录到磁盘。

  3. 将更新的 Log4j 2 配置添加到 secret 或 ConfigMap 中。

    1. 以具有特权在项目中创建 secret 或 ConfigMap 的用户身份登录 OpenShift,以进行代理部署。

      oc login -u <user> -p <password> --server=<host:port>
    2. 如果要在 secret 中配置日志设置,请使用 oc create secret 命令。例如:

      oc create secret generic newlog4j-logging-config --from-file=logging.properties
    3. 如果要在 ConfigMap 中配置日志设置,请使用 oc create configmap 命令。例如:

      oc create configmap newlog4j-logging-config --from-file=logging.properties

      configMap 或 secret 名称必须具有 -logging-config 后缀,以便 Operator 可以识别 secret 包含新的日志记录配置。

  4. 将 secret 或 ConfigMap 添加到代理部署的自定义资源(CR)实例中。

    1. 使用 OpenShift 命令行界面:

      1. 以具有特权在项目中为代理部署 CR 的用户身份登录 OpenShift。

        oc login -u <user> -p <password> --server=<host:port>
      2. 编辑 CR。

         oc edit ActiveMQArtemis <CR instance name> -n <namespace>
    2. 使用 OpenShift Container Platform Web 控制台:

      1. 以具有特权在项目中为代理部署 CR 的用户登录到控制台。
      2. 在左侧窗格中,点 Operators Installed Operator
      3. Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch) operator。
      4. AMQ Broker 选项卡。
      5. 单击 ActiveMQArtemis 实例名称的名称
      6. YAML 标签。

        在控制台中,会打开 YAML 编辑器,供您配置 CR 实例。

    3. 将包含 Log4j 2 日志记录配置的 secret 或 configMap 添加到 CR。以下示例显示了添加到 CR 中的 secret 和 configMap。

      apiVersion: broker.amq.io/v1beta1
      kind: ActiveMQArtemis
      metadata:
        name: ex-aao
      spec:
        deploymentPlan:
          ...
          extraMounts:
            secrets:
            - "newlog4j-logging-config"
          ...
      apiVersion: broker.amq.io/v1beta1
      kind: ActiveMQArtemis
      metadata:
        name: ex-aao
      spec:
        deploymentPlan:
          ...
          extraMounts:
            configMaps:
            - "newlog4j-logging-config"
          ...
  5. 保存 CR。

在每个代理 Pod 中,Operator 会挂载一个 logging.properties 文件,其中包含您创建的 secret 或 configMap 中的日志记录配置。另外,Operator 将每个代理配置为使用挂载的日志文件,而不是默认的日志配置文件。

注意

如果您更新 configMap 或 secret 中的日志记录配置,则每个代理都会自动使用更新的日志记录配置。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.