SkyWalking由3个部分组成
1、Agent(探针): 运行在各个服务实例中,负责采集服务实例的 Trace 、Metrics 等数据,然后通过 gRPC方式上报给SkyWalking后端。
2、OAP: SkyWalking 的后端服务
其主要责任有两个:
1 )、是负责接收 Agent 上报上来的 Trace、Metrics 等数据,交给 Analysis Core (涉及SkyWalkingOAP 中的多个模块)进行流式分析,最终将分析得到的结果写入持久化存储中。SkyWalking 可以使用ElasticSearch、H2、MySQL等作为其持久化存储,一般线上使用ElasticSearch 集群作为其后端存储。
2)、另一个是负责响应 SkyWalking UI 界面发送来的查询请求,将前面持久化的数据查询出来,组成正确的响应结果返回给 UI界面进行展示。
3、UI 界面: SkyWalking 前后端进行分离,该 UI 界面负责将用户的查询操作封装为 GraphQL 请求提交给 OAP后端触发后续的查询操作,待拿到查询结果之后会在前端负责展示。
docker run -itd --privileged \
--restart=always \
-p 9200:9200/tcp \
-p 9300:9300/tcp \
-v /usr/local/docker_es:/usr/local/elasticsearch \
--name=es \
centos7_ssh:latest /usr/sbin/init
#es容器自定义
docker run --name skywalking-oap-server --restart always \
-p 11800:11800 \
-p 12800:12800 \
-d -e TZ=Asia/Shanghai \
-e SW_ES_USER= \
-e SW_ES_PASSWORD= \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.3.202:9200 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server:8.9.1
启动SkyWalking UI界面。
docker run -d \
--name skywalking-ui \
--restart always \
-p 8080:8080 \
--link skywalking-oap-server:skywalking-oap-server \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=http://192.168.3.202:12800 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-ui:8.9.1
访问SkyWalking UI界面
在浏览器上输入http://192.168.3.202:8080即可访问SkyWalking UI界面。
注:
这里也可以不用docker (要先安装es)
wget -c https://archive.apache.org/dist/skywalking/8.3.0/apache-skywalking-apm-es7-8.3.0.tar.gz
tar -xf apache-skywalking-apm-es7-8.3.0.tar.gz
cd apache-skywalking-apm-bin-es7
3、启动服务
修改 webapp/webapp.yml 文件,更改端口号及后端服务地址
server:
port: 8080
collector:
path: /graphql
ribbon:
ReadTimeout: 10000
# Point to all backend's restHost:restPort, split by ,
listOfServers: 0.0.0.0:12800
启动服务
bin/startup.sh
或者分别依次启动
bin/oapService.sh
bin/webappService.sh
查看logs目录下的日志文件,看是否启动成功
netstat -tnlp|grep java
tcp6 0 0 :::8080 :::* LISTEN 468/java
tcp6 0 0 :::9200 :::* LISTEN 29494/java
tcp6 0 0 :::9300 :::* LISTEN 29494/java
tcp6 0 0 :::11800 :::* LISTEN 429/java
tcp6 0 0 :::12800 :::* LISTEN 429/java
浏览器访问 http://x.x.x.x:8080