skywalking 全链路监控

前言
这位同学,你比上一位面试者好多了,你的简历中做的几个项目都不错。既有业务项目,也有技术项目,看得出你对编程开发是有一定的经验积累的。那么我还想了解下,这些项目在运行中的一个数据效果是怎么样的。比如;tps、qps、响应时间、数据库负载等,都是什么情况,你用的什么监控工具。另外你这里还些了微服务的架构,那么微服务间的链路调用是怎么监控的。
需要达到的效果如下所示
在这里插入图片描述
通过 Docker 方式部署一套 skywalking 非入侵的全链路监控系统,并在对应的测试工程中通过 skywalking-agent 字节码增强组件,采集系统运行时的各项信息到 skywalking-ui 监控平台观察数据。

基本环境
Docker version 1.13.1
Docker compose - 用于在云服务器环境中执行的 docker-compose 文件
Portainer Docker 容器管理面板

监控配置
skywalking 的安装,需要 elasticsearch - 存放数据、skywalking-oap 接收数据、skywalking-ui 界面展示。以及还需要一个 skywalking-agent 用于配置到应用程序中,采集监控数据。
在进行下面的步骤前,请先下载 skywalking 监控工程; 请关注我后台发送获取skywalking 源代码

云服务器
通过 ssh 的 sftp 工具,把 skywalking/docs 全部上传到云服务器。
在这里插入图片描述
执行脚本
在这里插入图片描述

[root@dev-ops ~]# cd /docs/
[root@dev-ops docs]# ls
dev-ops  skywalking-agent  sql
[root@dev-ops docs]# cd dev-ops/
[root@dev-ops dev-ops]# ls
environment  skywalking
[root@dev-ops dev-ops]# cd skywalking/
[root@dev-ops skywalking]# ls
skywalking-docker-compose.yml
[root@dev-ops skywalking]# /usr/local/bin/docker-compose -f /docs/dev-ops/skywalking/skywalking-docker-compose.yml up -d
[+] Building 0.0s (0/0)                                                                          
[+] Running 3/3Container elasticsearch  Healthy                                                         0.5s 
 ✔ Container oap            Healthy                                                         1.0s 
 ✔ Container skywalking-ui  Running                                                         0.0s

安装完成记得开放端口;

1:9090 端口;skywalking-ui 界面端口
2:11800 端口;监控数据上报端口
3:安装完成后就可以访问监控界面了;http://IP.**:9090/ (opens new window)- 替换为你的IP地址

数据上报
监控数据的上报使用的是 Javaagent 技术,在程序加载时候通过字节码增强技术,在需要监控的位置自动加上额外的监控代码,来采集系统的运行数据。所以我们这里可以把 Javaagent 配置到程序启动上,也可以配置到 Docker 镜像打包上。

程序启动 - 加入探针
配置到 IDEA 程序启动中,VM Options 参数:-javaagent:/Users/fuzhengwei/1024/KnowledgePlanet/road-map/skywalking/docs/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking-app-dev -Dskywalking.collector.backend_service=127.0.0.1:11800
在这里插入图片描述

注意修改;地址、应用名、IP【如果是云服务,就配置云服务的IP地址】

镜像打包 - 加入探针
当程序需要运行在云服务的 Docker 容器了,就不能这样配置了,需要把配置打包到镜像里,更加方便执行。

# 基础镜像
FROM openjdk:8-jre-slim
# 作者
MAINTAINER xiaomingge
# 配置
ENV PARAMS=""
# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用
ADD /target/skywalking-app.jar /skywalking-app.jar
## 在镜像运行为容器后执行的命令
ENTRYPOINT ["java", "-Xmx512m", "-javaagent:/docs/skywalking-agent/skywalking-agent.jar", "-Dskywalking.agent.service_name=skywalking-app", "-Dskywalking.collector.backend_service=180.76.138.41:11800", "-jar", "/skywalking-app.jar"]

注意;/docs/skywalking-agent/skywalking-agent.jar 这个是通过 SFTP 工具上传到云服务器端的。但不在 Docker 容器里,等部署程序的时候还需要做一次文件映射。

启动服务
如果你希望在把应用程序部署到云服务端,一种是通过 IDEA 连接 Docker 服务,另外一种是把应用程序的镜像发布到Docker Hub。这里我们通过 IDEA 连接 Docker 服务

开通 2375 端口,用完记得关闭。

脚本:skywalking/src/bin/main/start.sh

CONTAINER_NAME=skywalking-app
IMAGE_NAME=fuzhengwei/skywalking-app:1.0
PORT=9091

echo "容器部署开始 ${CONTAINER_NAME}"

# 停止容器
docker stop ${CONTAINER_NAME}

# 删除容器
docker rm ${CONTAINER_NAME}

# 启动容器 skywalking-agent 下载:https://archive.apache.org/dist/skywalking/java-agent/8.9.0/apache-skywalking-java-agent-8.9.0.tgz
docker run --name ${CONTAINER_NAME} \
-p ${PORT}:${PORT} \
-v /docs/skywalking-agent/:/docs/skywalking-agent/ \
-d ${IMAGE_NAME}

#docker run --name skywalking-app \
#-p 9091:9091 \
#-v /docs/skywalking-agent/:/docs/skywalking-agent/ \
#-d fuzhengwei/skywalking-app:1.2

echo "容器部署成功 ${CONTAINER_NAME}"

docker logs -f ${CONTAINER_NAME}

1:你可以在云服务执行 start.sh 脚本,或者直接复制 docker run 命令,去执行启动。
2:注意;-v /docs/skywalking-agent/:/docs/skywalking-agent/ \ 是你的映射地址,只有这样才能拿到 skywalking-agent
3:另外记得按照 MySQL【environment-docker-compose.yml】 到云服务以及执行 road-map.sql 文件。

好了 至此 skywalking 全链路监控 点点关注不迷路 老铁们!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值