近几日闲来无事,工作摸鱼之时在码云上发现一个更加轻量级的分布式日志系统 PlumeLog ,就研究了一下,写了一个demo,做个记录
一、PlumeLog简介
-
无入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志
-
基于elasticsearch作为查询引擎
-
高吞吐,查询效率高
-
全程不占应用程序本地磁盘空间,免维护;对于项目透明,不影响项目本身运行
-
无需修改老项目,引入直接使用,支持dubbo,支持springcloud
二、准备工作
服务端安装
-
首先是消息队列,PlumeLog适配了redis或kafka,一般项目redis足够了,我这边也是直接用redis,redis 官网: https://redis.io
-
然后需要安装elasticsearch,官网下载地址: https://www.elastic.co/cn/downloads/past-releases
-
最后下载Plumelog的程序包,plumelog-server,下载地址: https://gitee.com/frankchenlong/plumelog/releases
服务启动
-
启动redis,确保本地可以连接redis(服务器安全组开放端口,redis配置可访问ip)
-
启动elasticsearch,默认启动端口是9200,直接访问显示这个就代表启动成功了
三、修改配置
Plumelog的压缩包解压后有这些文件
编辑切换为居中
添加图片注释,不超过 140 字(可选)
修改application.properties,这边贴上我的配置,主要要改的就是redis和es的配置
spring.application.name=plumelog_server server.port=8891 spring.thymeleaf.mode=LEGACYHTML5 spring.mvc.view.prefix=classpath:/templates/ spring.mvc.view.suffix=.html spring.mvc.static-path-pattern=/plumelog/** #值为4种 redis,kafka,rest,restServer #redis 表示用redis当队列 #kafka 表示用kafka当队列 #rest 表示从rest接口取日志 #restServer 表示作为rest接口服务器启动 #ui 表示单独作为ui启动 plumelog.model=redis #如果使用kafka,启用下面配置 #plumelog.kafka.kafkaHosts=172.16.247.143:9092,172.16.247.60:9092,172.16.247.64:9092 #plumelog.kafka.kafkaGroupName=logConsumer #redis配置,3.0版本必须配置redis地址,因为需要监控报警 plumelog.redis.redisHost=127.0.0.1:6379 #如果使用redis有密码,启用下面配置 plumelog.redis.redisPassWord=123456 plumelog.redis.redisDb=0 #如果使用rest,启用下面配置 #plumelog.rest.restUrl=http://127.0.0.1:8891/getlog #plumelog.rest.restUserName=plumelog #plumelog.rest.restPassWord=123456 #elasticsearch相关配置 plumelog.es.esHosts=127.0.0.1:9200 #ES7.*已经去除了索引type字段,所以如果是es7不用配置这个,7.*以下不配置这个会报错 #plumelog.es.indexType=plumelog #索引分片数量设定,建议值:单日日志大小/ES节点机器jvm内存大小 合理的分片大小保证ES写入效率和查询效率 plumelog.es.shards=5 plumelog.es.replicas=0 plumelog.es.refresh.interval=30s #日志索引建立方式day表示按天、hour表示按照小时 plumelog.es.indexType.model=day #ES设置密码,启用下面配置 #plumelog.es.userName=elastic #plumelog.es.passWord=FLMOaqUGamMNkZ2mkJiY #单次拉取日志条数 plumelog.maxSendSize=5000 #拉取时间间隔,kafka不生效 plumelog.interval=1000 #plumelog-ui的地址 如果不配置,报警信息里不可以点连接 plumelog.ui.url=http://127.0.0.1:8891 #管理密码,手动删除日志的时候需要输入的密码 admin.password=123456 #日志保留天数,配置0或者不配置默认永久保留 admin.log.keepDays=30 #登录配置 #login.username=admin #login.password&