1. Skywalking安装
1.1 包下载
- Skywalking下载链接: https://skywalking.apache.org/downloads/
Skywalking主要是下载两个包:Skywalking APM
和Java Agent
,Skywalking APM提供后端服务和UI服务,Java Agent集成进应用进行数据收集传输。
1.2 SkyWalking APM说明
SkyWalking APM解压后得到apache-skywalking-apm-bin
文件,重点关注以下3个目录:
- bin目录下是启动脚本,一般用
startup
命令启动
- config目录下是配置文件,主要需要关注的是
application.yml
文件,里面有存储策略、服务端口及查询策略的配置信息。
1.3 Java Agent说明
Java Agent解压后得到skywalking-agent
文件:
- skywalking-agent.jar:探针包,使用了java agent技术,可以拦截java应用的执行。
- plugins目录:这个目录下主要放日志采集的插件,并且支持自定义插件。skywalking官方已经开发了大部分框架的插件,例如springmvc、dubbo等等。这个设计给skywalking赋予了极强的扩展性。
- optional-plugins:备用插件库,这里的插件在执行时不会被加载,只有放在plugins目录下的插件才会被加载。这个目录相当于仓库,需要启用什么功能的日志采集,就把对应的插件拷贝到plugins目录。同理,如果想要不采集某种日志,就把对应的插件从plugins目录中删掉即可。
- config目录:这里是探针和插件的配置。比如说配置应用名称(会体现在UI中)。
1.4 配置
这里介绍apache-skywalking-apm-bin/config/application.yml
的配置,首先要搭建一个es服务(当然也可以选择其他存储引擎,比如PostgreSQL/MySQL)。
storage:
# 配置存储方式为es
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
# 配置es存储地址
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9200}
core:
selector: ${SW_CORE:default}
default:
# 后端服务暴露的端口
gRPCPort: ${SW_CORE_GRPC_PORT:11800}
1.5 启动
启动前要保证存储服务是可用的。
直接执行sh startup.bat启动后端服务和UI服务。启动后,后端服务默认暴露的通信端口是11800,这个端口在agent中会用到。UI服务默认暴露的端口是8080,可以在apache-skywalking-apm-bin/webapp/webapp.yml
中修改。UI服务启动后如下:
2. 普通项目集成
探针配置:
skywalking-agent/config/agent.config
# 应用名称
agent.service_name=${SW_AGENT_NAME:itp-service-device}
# 命名空间,可以是项目的名称
agent.namespace=${SW_AGENT_NAMESPACE:itp}
# 后端地址
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
集成探针
在-jar命令前添加:-javaagent:D:\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=app
探针配置文件agent.config中的配置项支持在环境变量中配置,必须要以skywalking.开头,后面跟配置项,如:
-Dskywalking.agent.service_name=app。
3. Docker集成
3.1 Dockerfile文件
# jdk基础镜像
FROM harbor.catarc.ac.cn/library/openjdk:8u322-jre-buster
MAINTAINER souldomain.com
# 添加探针包
COPY ./skywalking-agent /skywalking-agent
# 添加应用程序jar包
ADD app.jar app.jar
# 暴露端口
EXPOSE 8080
# 启动命令
ENTRYPOINT [ "sh", "-c", "java -javaagent:/usr/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=app -jar /app.jar" ]
3.2 构建镜像
docker built -t app:1.0 ./
3.3 启动镜像
docker run --name app -p 8080:8080 -d app:1.0
转载: https://www.cnblogs.com/wind-wound/articles/17275408.html