[单master节点k8s部署]43.全链路监控(二)
部署pinpoint服务端
这里安装的是pinpoint-docker,可以从GitHub - pinpoint-apm/pinpoint-docker: Officix
下载。通过readme可以看到,该项目提供的镜像:
- Pinpoint-Web Server
- Pinpoint-Collector
- Pinpoint-Agent
- Pinpoint-Flink
- Pinpoint-Hbase
- Pinpoint-QuickStart:示例应用(v1.8.1+)
- Pinpoint-Mysql
- Pinpoint-Batch(v2.4.0+)
可以将QuickStart应用替换为自己的应用程序以开始监控。
项目依赖的镜像列表
- Apache Zookeeper v3.4.13:用于HBase和Pinpoint集群
- Kafka:当前使用版本为3.1-22.04_beta
- Mysql(可选,v1.8.1+):用于启用“报警”功能‘
可以看到如下目录结构,里面有需要的镜像和文件夹
[root@pinpoint ~]# cd pinpoint-docker-2.0.1
[root@pinpoint pinpoint-docker-2.0.1]# ls
docker-compose.yml pinpoint-agent-attach-example pinpoint-mysql Readme.md
docs pinpoint-collector pinpoint-quickstart
License pinpoint-flink pinpoint-web
pinpoint-agent pinpoint-hbase pinpoint-zookeeper
compose
进行docker-compose,如果没有docker-compose的话需要下载。这里需要配置docker镜像加速,因为国内无法访问很多镜像仓库。
我最经常使用的加速网站是https://dockerpull.com。但是这次compose的时候发现很多镜像拉取失败,我访问这个网站,发现他的域名已经更改为https://cjie.eu.org。
修改我的docker/daemon.json文件:
[root@pinpoint pinpoint-docker-2.0.1]# cat /etc/docker/daemon.json
{
"registry-mirrors":["https://cjie.eu.org","https://rsbud4vc.mirror.aliyuncs.com","https://registry.dockercn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hubmirror.c.163.com","http://qtid6917.mirror.aliyuncs.com"],
"insecure-registries":["192.168.244.131","harbor"],
"exec-opts":["native.cgroupdriver=systemd"],
"log-driver":"json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver":"overlay2" }
随后docker-compose:
root@pinpoint pinpoint-docker-2.0.1]# docker-compose pull
zoo1 Skipped - Image is already being pulled by zoo3
zoo2 Skipped - Image is already being pulled by zoo3
jobmanager Skipped - Image is already being pulled by taskmanager
pinpoint-hbase Pulling
pinpoint-agent Pulling
zoo3 Pulling
taskmanager Pulling
pinpoint-quickstart Pulling
pinpoint-mysql Pulling
pinpoint-web Pulling
pinpoint-collector Pulling
pinpoint-web Pulled
pinpoint-collector Pulled
pinpoint-quickstart Pulled
taskmanager Pulled
zoo3 Pulled
pinpoint-agent Pulled
pinpoint-mysql Pulled
pinpoint-hbase Pulled
微服务
现在需要来监控之前安装的购物网站的微服务。复习一下之前的项目,有eureka微服务,gateway微服务,以及product,order,portal和stock四个微服务。
查看eureka(服务发现),这里查看的是ingress。
这里是映射到了ingress-controller所在的虚拟机的节点上
[root@master k8s]# kubectl get pods -n kube-system nginx-ingress-controller-67685fb594-j2qdt -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-ingress-controller-67685fb594-j2qdt 1/1 Running 1 (66d ago) 68d 192.168.244.129 node1 <none> <none>
由于我们在windows的hosts文件里面配置了这个ip网址为eureka的域名 ,所以直接可以访问:
同时访问portal.ctnrs.com,可以看到之前部署的购物网站。
pinpoint-agent
这个agent要具体安装到部署微服务的节点上。我们打开已经运行的pinpoint master端的UI界面,进行如下操作:
可以找到一个pinpoint-agent的github地址:
这个地址会下载一个jar包,把这个jar包放到哪一个服务的文件夹里面,这个agent就会收集哪个服务的数据。
新建pinpoint文件夹,然后把这个jar包解压到这里。
进入pinpoint.config文件,修改pinpoint服务端的ip:
按照以上顺序修改product/order和stock的pinpoint.config文件,就可以完成agent的部署。
数据库
如果要修改数据库文件的话,也要修改。
进行完上述步骤后,删除所有微服务,重新编译一遍项目。因为我们修改了一些配置文件,从而让pinpoint可以进行链路追踪。
root@master microservic-test-dev1]# mvn clean package -D maven.test.skip=true
就像上面一样,回到项目根目录下,然后执行maven代码编译。
然后重新进行镜像打包。