在使用分布式微服务的时候,咱们经常会涉及到使用到分布式链路日志,在以前我们使用过tlog(详见:《微服务实战spring cloud alibaba(十五)全局链路日志追踪》)。但是基于tlog来说,我们需要手动去建立elk的日志采集方案,这组与第三方进行解耦的方式在高并发的大型系统里面是比较合适的,但是一般公司用不到,而且新增加第三方系统增加了运维的复杂性,所以我们在项目里面后来给他改成了plumelog的方式来进行使用,最近可能会涉及到新的项目使用,所以这里我们重新把plumelog相关的全链路日志基础的方案的文章补回来,方便团队的培训使用。下面直接开始。
前置说明
使用plumelog的话,我们一般是单独部署在一台服务器上,避免与业务服务器进行混搭,这样子方便管理,同时方便切换等操作。这里准备的机器至少是一台4h8g的服务器。同时最好我们的存储使用elasticsearch,这样子方便检索,同时相应速度较快,并且可以存储大量的数据。最后我们一般使用docker进行部署即可。所以本文我们使用docker进行部署。
一、docker部署
这里我们既然使用docker部署,那么我们需要在服务器上安装docker和docker-compose,本站对于这块的介绍比较多,详情可参考:
《docker部署》
二、redis部署
这里在部署的时候,所有的日志不是直接吞吐到elasticsearch中的,而是先把日志吐到redis中,然后通过redis再把数据吐到elasticsearch中,所以这里我们还需要使用docker部署一份redis,详情可参考:《redis部署》。
三、elasticsearch部署
这里最后我们把日志是存储在elasticsearch中的,所以需要部署一个elasticsearch,这里的elasticsearch使用7.x的版本即可,不用安装太高,安装版本太高的话,对服务器的要求也较高,所以这里一般使用个7.x版本的elasticsearch即可。详情可参考:《elasticsearch部署》。
以上我们的依赖环境就部署好了,这里我们弄个演示服务器做下演示,如下图:
当然这里还要测试下elasticsearch的访问是否能成功,访问地址:
http://ip:9200/
四、plumelog部署
接下来我们准备部署plumelog了,这里还是使用docker进行部署,步骤如下:
1)创建conf文件
#创建conf文件夹 mkdir -p /home/pubserver/plumlog #进入到plumlog cd /home/pubserver/plumlog #创建plumlog.yml文件 touch docker-compose.yml
然后把下面的内容复制到docker-compose.yml文件中去
version: '3' services: plumelog: #此镜像是基于plumelog-3.5.3版本 image: registry.cn-hangzhou.aliyuncs.com/k8s-xiyan/plumelog:3.5.3 container_name: plumelog ports: - "8891:8891" environment: plumelog.model: redis plumelog.queue.redis.redisHost: 172.19.0.14:6379 plumelog.queue.redis.redisPassWord: 123456 plumelog.queue.redis.redisDb: 10 plumelog.es.esHosts: 172.19.0.14:9200 #日志保留天数,配置0或者不配置默认永久保留 admin.log.keepDays: 30 #链路保留天数,配置0或者不配置默认永久保留 admin.log.trace.keepDays: 30 #plumelog-ui的地址 如果不配置,报警信息里不可以点连接 plumelog.ui.url: http://172.19.0.14:8891 #管理密码,手动删除日志的时候需要输入的密码 admin.password: 123456 #登录配置,配置后会有登录界面 login.username: admin login.password: admin
2)使用docker-compose启动plumelog
这里直接使用docker-compose命令启动即可
docker-compose up -d
到此我们的plumelofg就部署好了,从docker ps里面可以看到我们开放了8891端口,所以这里我们可以直接在浏览器上访问8891端口,会出现对应的登录界面:
这里的账号密码这块我们是在plumelog的docker-compose.yml文件中的environment上配置的:
我们配置的是admin/admin,所以使用这里的admin进行登录即可
成功的访问到了plumelog的系统。
以上就是我们的plumelog的部署情况,备注:
1、整个plumelog由于数据是放在redis和elasticsearch中的,所以这里我们的plumelog不需要做持久化和宿主机文件映射,直接使用docker-compose这种无状态的形式进行部署即可。








还没有评论,来说两句吧...