溪云阁:专注编程教学,架构,JAVA,Python,微服务,机器学习等领域,欢迎,一起学习。
现在很多的日志,在搭建的时候,都喜欢用Kafka+ELK来做,但是搭建起来就比较麻烦,就算不做高可用,做起来起码有4个组件需要,那做高可用的话,那就更多了,像zookeeper一般我们做集群,最低是3个节点。
前几天无意间发现了一个轻量级的日志平台,分享一下给大家。
Plumelog简介
1、基于Java的一个分布式日志系统,百亿级别
2、调用链的记录写入,方便进行链路追踪,如果接触过skywalking、zipkin、pinpoint等,应该就知道服务调用链追踪是很好的东西。
3、无侵入式操作,只需要引入包,更改一下日志配置文件即可。
Plumelog基础组件安装
1、安装kafka或者redis,按照官方建议,一般体量不大的公司,建议用redis的队列即可。
2、安装ES,官方推荐是6.8版本的,小编目前就安装官方推荐,下载的6.8版本
Plumelog服务安装
目前Plumelog有4个发行版,最新的发行版是plumelog2.2,我们下载最新的即可。
下载完之后,只需要更改配置文件plumelog-server/application.properties
由于小编原先已经安装了redis,又只需要做演示测试,这里就直接采用redis来作为消息传输中间件,以下就是我使用redis的基本配置,可以直接拿过去,更改一下IP地址,端口号
#定制服务器模式为redisplumelog.server.model=redis#配置redis的IP地址及端口号plumelog.server.redis.redisHost=127.0.0.1:6380#配置redis的密码plumelog.server.redis.redisPassWord=123456#elasticsearch相关配置plumelog.server.es.esHosts=127.0.0.1:9201#由于小编采用的事ES6.8,小于ES7版本,所以需要配置索引字段,如果安装的是ES7及以上,这个可以去掉plumelog.server.es.indexType=plumelog#ES设置密码,启用下面配置#plumelog.server.es.userName=elastic#plumelog.server.es.passWord=plumelog123456 #单次拉取日志条数 plumelog.server.maxSSize=5000 #拉取时间间隔,kafka不生效 plumelog.server.interval=1000Plumelog UI安装
Plumelog ui与Plumelog server一样,区别就在于一个是服务器,一个是前端的,但是同样的简单,只需要改一下配置文件即可,这个ui其实就是个springboot项目,目前的界面不是很好看,可以自行进行拓展
# 应用名称spring.application.name=plumelog-ui# 应用端口server.port=8182# 配置thymeleafspring.thymeleaf.mode=LEGACYHTML5# 配置页面的地址 spring.mvc.view.prefix=classpath:/templates/# 配置页面的后缀名spring.mvc.view.suffix=.html# 配置静态文件的路径spring.mvc.static-path-pattern=/plumelog/** #配置elasticsearch地址es.esHosts=172.16.251.196:9200#配置elasticsearch的账号es.userName=elasticsearch#配置elasticsearch的密码es.passWord=123456 #配置UI的删除密码admin.password=123456log4j项目引入
<depency> <groupId>com.plumelog</groupId> <artifactId>plumelog-log4j</artifactId> <version>2.2</version> </depency># 设置日志等级log4j.rootLogger = INFO,stdout,L# 设置日志输出类log4j.apper.stdout = org.apache.log4j.ConsoleApper# 设置日志目标地log4j.apper.stdout.Target = System.out# 设置日志的输出样式log4j.apper.stdout.layout = org.apache.log4j.PatternLayout# 设置日志时间样式log4j.apper.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%c.%t]%n%m%n# 设置日志发送到redislog4j.apper.L=com.plumelog.log4j.apper.RedisApper# 设置日志所属的应用名称log4j.apper.L.appName=plumelog# 设置redis的IP地址log4j.apper.L.redisHost=127.0.0.1# 设置redis的端口号log4j.apper.L.redisPort=6380# 设置redis的密码log4j.apper.L.redisAuth=123456# 设置redis在本地磁盘保留的时间admin.log.keepDays=15天logback项目引入
<depency> <groupId>com.plumelog</groupId> <artifactId>plumelog-logback</artifactId> <version>2.2</version> </depency><appers> <apper name="plumelog" class="com.plumelog.logback.apper.RedisApper"> <!-- 配置应用的名称 --> <appName>plumelog</appName> <!-- 配置redis的IP地址 --> <redisHost>127.0.0.1</redisHost> <!-- 配置redis的密码 --> <redisAuth>123456</redisAuth> <!-- 配置redis的端口号 --> <redisPort>6380</redisPort> </apper> </appers> <!-- 日志输出级别 --> <root level="INFO"> <apper-ref ref="plumelog" /> </root>log4j2项目引入
<depency> <groupId>com.plumelog</groupId> <artifactId>plumelog-log4j2</artifactId> <version>2.2</version> </depency> <appers> <!-- 配置redis的基本信息--> <RedisApper name="redis" appName="plumelog" redisHost="127.0.0.1" redisPort="6380" redisAuth="123456"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5p] {%F:%L} - %m%n" /> </RedisApper> </appers> <loggers> <root level="INFO"> <apper-ref ref="redis"/> </root> </loggers>加入链路追踪
这里不累赘,可以自行参考
h ttps://gitee.com/frankchenlong/plumelog/blob/master/plumelog-trace/README.md
运行
来源:PlumeLog官方截图
来源:PlumeLog官方截图
如果喜欢,各位同学可自行去研究,不做标准,不做推荐,只做技术分享。
----
作者:@溪云阁
原创作品,抄袭必究
如需要源码,转发,后私信我
部分图片或代码来源网络,如侵权请联系删除,谢谢!
历史文章:
springboot2.2.X手册:Eureka不更,Consul被禁,启用Nacos
springboot2.2.X手册:构建全局唯一的短链接数据中心
springboot2.2.X手册:放弃fastdfs,整合Minio做文件服务器真香
springboot2.2.X手册:分布式系统下,重复提交的解决方案
springboot2.2.X手册:Easypoi导出excel,最新版的手感香不香?
springboot2.2.X手册:项目从100M瘦身到100K,部署省事多了!
springboot2.2.X手册:redis的7种类型100个方法全解析
springboot2.2.X手册:是时候用Lettuce替换Jedis操作Redis缓存了
springboot2.2.X手册:构建多元化的API接口,我们这样子设计
springboot2.2.X手册:基于Jasypt的JavaConfig方式敏感信息加密
springboot2.2.X手册:整合最新版MybatisPlus 3.3.1版本
springboot2.2.X手册:对象复制哪种最快?7种复制方式性能对比
springboot2.2.X手册:基于OSS解决文件存储(一年9元^^,赚了)
springboot2.2.X手册:36个注解详细解析,一目了然