4.18. 为代理配置日志记录
AMQ Broker 使用 Log4j 2 logging 工具提供消息日志记录。部署代理时,它会使用默认的 Log4j 2 配置。如果要更改默认配置,您必须在 secret 或 configMap 中创建一个新的 Log4j 2 配置。将 secret 或 configMap 的名称添加到主代理自定义资源(CR)后,Operator 会将每个代理配置为使用新的日志记录配置,该配置存储在 Operator 在每个 Pod 上挂载的文件中。
前提条件
- 熟悉 Log4j 2 配置选项。
流程
准备包含您要用于 AMQ Broker 的 log4j 2 配置的文件。
代理使用的默认 Log4j 2 配置文件位于每个代理 Pod 上的
/home/jboss/amq-broker/etc/log4j2.properties文件中。您可以使用默认配置文件的内容作为在 secret 或 configMap 中创建新 Log4j 2 配置的基础。要获取默认 Log4j 2 配置文件的内容,请完成以下步骤。使用 OpenShift Container Platform Web 控制台:
-
单击
。 - 单击 ex-aao-ss Pod。
- 点击 Terminal 选项卡。
-
使用
cat命令显示代理 Pod 上的/home/jboss/amq-broker/etc/log4j2.properties文件的内容并复制其内容。 -
将内容粘贴到安装 OpenShift Container Platform CLI 的本地文件中,并将文件保存为
logging.properties。
-
单击
使用 OpenShift 命令行界面:
获取部署中的 Pod 名称。
oc get pods -o wide
$ 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.15Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
oc cp命令将日志配置文件从 Pod 复制到您的本地目录。oc cp <pod name>:/home/jboss/amq-broker/etc/log4j2.properties logging.properties -c <name>-container
$ oc cp <pod name>:/home/jboss/amq-broker/etc/log4j2.properties logging.properties -c <name>-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中,容器名称的 <name>
部分是Pod 名称的前面前缀。例如:oc cp ex-aao-ss-0:/home/jboss/amq-broker/etc/log4j2.properties logging.properties -c ex-aao-container
$ oc cp ex-aao-ss-0:/home/jboss/amq-broker/etc/log4j2.properties logging.properties -c ex-aao-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意从文件创建 configMap 或 secret 时,configMap 或 secret 中的键默认为文件名,值默认为文件内容。从名为
logging.properties的文件创建 secret,新日志记录配置所需的键将插入到 secret 或 configMap 中。
编辑
logging.properties文件,并创建您要与 AMQ Broker 搭配使用的 Log4j 2 配置。例如,使用默认配置,AMQ Broker 只将信息记录到控制台。您可能希望更新配置,以便 AMQ Broker 将信息记录到磁盘。
将更新的 Log4j 2 配置添加到 secret 或 ConfigMap 中。
以具有特权的用户身份登录 OpenShift,以便在项目中为代理部署创建 secret 或 ConfigMap。
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要在 secret 中配置日志设置,请使用
oc create secret命令。例如:oc create secret generic newlog4j-logging-config --from-file=logging.properties
oc create secret generic newlog4j-logging-config --from-file=logging.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要在 ConfigMap 中配置日志设置,请使用
oc create configmap命令。例如:oc create configmap newlog4j-logging-config --from-file=logging.properties
oc create configmap newlog4j-logging-config --from-file=logging.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow configMap 或 secret 名称必须具有后缀为
-logging-config,以便 Operator 可以识别 secret 包含新的日志记录配置。
将 secret 或 ConfigMap 添加到代理部署的自定义资源(CR)实例中。
使用 OpenShift 命令行界面:
以有权在代理部署的项目中部署 CR 的用户身份登录 OpenShift。
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 CR。
oc edit ActiveMQArtemis <CR instance name> -n <namespace>
oc edit ActiveMQArtemis <CR instance name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 OpenShift Container Platform Web 控制台:
- 以有权在代理部署的项目中部署 CR 的用户身份登录控制台。
-
在左侧窗格中,点
。 - 点 Red Hat Integration - AMQ Broker for RHEL 9 (Multiarch) operator。
- 点 AMQ Broker 选项卡。
- 单击 ActiveMQArtemis 实例名称
点 YAML 标签。
在控制台中,会打开 YAML 编辑器,允许您配置 CR 实例。
将包含 Log4j 2 日志记录配置的 secret 或 configMap 添加到 CR。以下示例显示了 secret 和添加到 CR 的 configMap。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 保存 CR。
在每个代理 Pod 中,Operator 挂载一个 logging.properties 文件,该文件包含您创建的 secret 或 configMap 中的日志记录配置。另外,Operator 将每个代理配置为使用挂载的日志配置文件,而不是默认的日志文件。
如果您在 configMap 或 secret 中更新日志记录配置,则每个代理会自动使用更新的日志记录配置。