Zookeeper的服务器的log4j升级为log4j2的升级方案(忽略配置化兼容问题)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: Zookeeper的服务器的log4j升级为log4j2的升级方案(忽略配置化兼容问题)

Zookeeper的服务器的log4j升级为log4j2的升级方案(忽略配置化兼容问题)


目前希望可以升级将Zookeeper中log4j的版本升级到log4j2版本,并且要避开相关的log4j2的安全隐患问题,此时需要考虑的就是针对于如何将无缝衔接log4j2的版本jar包的安装呢?我们接下来观察一下看看问题所在。目前我采用的环境是windows环境,不过也同样对其他操作系统有效,毕竟万变不离其宗嘛。



Zookeeper的服务的基础目录


windows目录

image.png

Linux目录

image.png




寻找对应的目录


首先我们需要进行替换相关的lib包信息,我们需要将相关的zookeeper中所相关的log4j相关的jar先迁移走,如下图所示:


windows目录

image.png

Linux目录

image.png

下图为Linux版本的相关的jar包展示


替换的Jar包目录为:


  • log4j-1.2.17.jar log4j的本身的jar包服务
  • slf4j-api-1.7.30.jar slf4j的api官方抽象接口包
  • slf4j-log4j12-1.7.30.jar 主要用于桥接处理包(slf4j与log4j的桥接之用的包)


以上案例主要采用的是针对于log4j和slf4j的jar包进行相关的处理控制。版本制作参考之用。


参考相关的清理相关的jar包指令,可以采用rm / mv指令进行操作处理。

rm -rf slf4j-api-1.7.x.jar log4j-1.2.x.jar slf4j-log4j12-1.7.X.jar
复制代码
mv slf4j-api-1.7.X.jar log4j-1.2.X.jar slf4j-log4j12-1.7.x.jar /backup  路径也可
复制代码

注意具体的版本需要,可动态灵活进行调整对应的接口参数。




下载对应的Log4j2的资源包


下载对应slf4j包


wget --no-check-certificate https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar
复制代码

版本暂时统一为1.7.36,测试了一下目前属于最稳定版本



下载对应log4j2包

wget --no-check-certificate https://dlcdn.apache.org/logging/log4j/2.19.0/apache-log4j-2.19.0-bin.tar.gz
复制代码


解压对应log4j2包zookeeper的lib包目录下

tar -zxvf apache-log4j-2.19.0-bin.tar.gz
复制代码


转移jar包到对应的lib下之后。



转移指定的log4j2包到Zookeeper的lib包目录下

mv log4j-core-2.19.0.jar log4j-1.2-api-2.19.0.jar log4j-slf4j-impl-2.19.0.jar log4j-api-2.19.0.jar /{ZK_HOME}/lib
复制代码


转移指定的slf4j包到Zookeeper的lib包目录下

mv slf4j-api-1.7.36.jar /{ZK_HOME}/lib
复制代码



展示效果

image.png



开始重启Zookeeper服务,进行查看是否启动正常


可以通过:

ps -ef | grep zookeeper
复制代码
来查看是否正常启动服务

image.png

查看是否已经存在加载的对应的jar包服务

image.png


如果没有输出目录文件属于正常情况


当然一般情况下也可以执行查看/bin/zookeeper.out文件信息,打印log。




参考案例




参考配置(zoo.cfg)


# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true




相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
21天前
|
人工智能 Java 测试技术
就AI 基础设施的演进与挑战问题之ZooKeeper的稳定性提升配置优化的问题如何解决
就AI 基础设施的演进与挑战问题之ZooKeeper的稳定性提升配置优化的问题如何解决
|
27天前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
2月前
|
Java Spring
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
56 3
|
2月前
|
API
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
33 2
|
1月前
|
存储 运维 Java
SpringBoot使用log4j2将日志记录到文件及自定义数据库
通过上述步骤,你可以在Spring Boot应用中利用Log4j2将日志输出到文件和数据库中。这不仅促进了良好的日志管理实践,也为应用的监控和故障排查提供了强大的工具。强调一点,配置文件和代码的具体实现可能需要根据应用的实际需求和运行环境进行调优和修改,始终记住测试配置以确保一切运行正常。
239 0
|
2月前
|
缓存 Java
浅析JAVA日志中的性能实践与原理解释问题之AsyncAppender的配置方式的问题是如何解决的
浅析JAVA日志中的性能实践与原理解释问题之AsyncAppender的配置方式的问题是如何解决的
|
2月前
|
XML Java 测试技术
《手把手教你》系列基础篇(八十八)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-下篇(详解教程)
【7月更文挑战第6天】本文介绍了如何使用Log4j2将日志输出到文件中,重点在于配置文件的结构和作用。配置文件包含两个主要部分:`appenders`和`loggers`。`appenders`定义了日志输出的目标,如控制台(Console)或其他文件,如RollingFile,设置输出格式和策略。`loggers`定义了日志记录器,通过`name`属性关联到特定的类或包,并通过`appender-ref`引用`appenders`来指定输出位置。`additivity`属性控制是否继承父logger的配置。
32 0
|
2月前
|
XML Java 测试技术
《手把手教你》系列基础篇(八十七)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-上篇(详解教程)
【7月更文挑战第5天】Apache Log4j 2是一个日志框架,它是Log4j的升级版,提供了显著的性能提升,借鉴并改进了Logback的功能,同时修复了Logback架构中的问题。Log4j2的特点包括API与实现的分离,支持SLF4J,自动重新加载配置,以及高级过滤选项。它还引入了基于lambda表达式的延迟评估,低延迟的异步记录器和无垃圾模式。配置文件通常使用XML,但也可以是JSON或YAML,其中定义了日志级别、输出目的地(Appender)和布局(Layout)。
36 0
|
2月前
|
消息中间件 NoSQL Kafka
日志收集平台项目nginx、kafka、zookeeper、filebeat搭建的基本配置(2)
日志收集平台项目nginx、kafka、zookeeper、filebeat搭建的基本配置(2)
|
2月前
|
消息中间件 应用服务中间件 Kafka
日志收集平台项目nginx、kafka、zookeeper、filebeat搭建的基本配置(1)
日志收集平台项目nginx、kafka、zookeeper、filebeat搭建的基本配置(1)