SkyWalking介紹

SkyWalking是什么?
SkyWalking是一個可觀測性分析平台和應用性能管理系統,提供分布式跟蹤、服務網格遙測分析、度量聚合和可視化一體化解決方案,並支持多種開發語言。
官網:http://skywalking.apache.org/ 兩天前即2020年8月3號 8.1.0正式發布

安裝
SkyWalking支持單機與集群部署(默認standalone),並支持多種數據存儲(默認H2),如mysql,Elasticsearch,Elasticsearch7等。
本文以SkyWalking8.1.0並使用Elasticsearch來存儲數據進行講解
ElasticSearch搭建請參考我的另外一篇文章
SkyWalking
點擊tar后選擇一個地址即可開始下載

相關操作命令如下:
cd /usr/local/src
wget https://mirror.bit.edu.cn/apache/skywalking/8.1.0/apache-skywalking-apm-es7-8.1.0.tar.gz
tar -xvf apache-skywalking-apm-es7-8.1.0.tar.gz
cd /usr/local/src/apache-skywalking-apm-bin-es7
修改相關配置:
1.web訪問端口 8080->38080 (本機8080已被其它服務占用)
vi /usr/local/src/apache-skywalking-apm-bin-es7/webapp/webapp.yml
#將server.port: 8080 改為38080
#或者使用sed命令 sed -i 's$8080$38080$g' /usr/local/src/apache-skywalking-apm-bin-es7/webapp/webapp.yml
2.修改使用Elasticsearch(默認使用h2)

注意:nameSpace要和Elasticsearch集群的cluster_name一致
name" : "elk02",
"cluster_name" : "es-cluster",
"cluster_uuid" : "GnUvYMcGRK2GVJsvkwM7FQ",
"version" : {
"number" : "7.2.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "508c38a",
"build_date" : "2019-06-20T15:54:18.811730Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
/usr/local/src/apache-skywalking-apm-bin-es7/bin/startup.sh
#加入到開機啟動
cat "/usr/local/src/apache-skywalking-apm-bin-es7/bin/startup.sh" >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local
#確認應用啟動成功端口正常監聽

#如果出錯可以查看日志並根據錯誤類型進行處理

#然后可以打開瀏覽器進行查看 ip地址:38080

一開始是沒數據的,待項目集成后再刷新頁面就可以看到數據了。
項目集成
- jar運行
java -javaagent:/opt/skywalking/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=xiao_test
-Dskywalking.collector.backend_service=XXX.XXX.XXX.XXX:11800
-jar xxxx.jar
#javaagent agent包路徑
#skywalking.agent.service_name 服務名稱
#skywalking.collector.backend_service 采集信息的服務地址 agent.config配置了就可以不用指定
- docker運行
#1.在打包插件中增加entrypoint並注意替換最后一部分和mainClass相同,然后打包
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.7.0</version>
<configuration>
<from>
<!-- 把agent拷貝到基礎鏡像去/opt/skywalking/agent/skywalking-agent.jar基礎鏡像去-->
<image>hub.dev.zycloud.info/cx/oracle-jdk-with-skywalking:8</image>
<auth>
<username>xxxxxxxx</username>
<password>xxxxxxxx</password>
</auth>
</from>
<to>
<image>hub.dev.zycloud.info/his/${project.artifactId}:${git.commit.id.abbrev}</image>
<auth>
<username>xxxxxxxx</username>
<password>xxxxxxxx</password>
</auth>
</to>
<allowInsecureRegistries>true</allowInsecureRegistries>
<container>
<useCurrentTimestamp>true</useCurrentTimestamp>
<labels>
<authors>${env.USERNAME}</authors>
<version>${project.version}</version>
<git-branch>${git.branch}</git-branch>
<git-commit-id>${git.commit.id.abbrev}</git-commit-id>
<git-commit-message>${git.commit.message.short}</git-commit-message>
<git-commit-user>${git.commit.user.name}</git-commit-user>
</labels>
<environment>
<SPRING_PROFILES_ACTIVE>pro</SPRING_PROFILES_ACTIVE>
<SW_AGENT_NAME>${project.name}</SW_AGENT_NAME>
<SW_LOGGING_DIR>/var/log/${project.artifactId}</SW_LOGGING_DIR>
<SW_LOGGING_MAX_HISTORY_FILES>50</SW_LOGGING_MAX_HISTORY_FILES>
</environment>
<mainClass>
info.zycloud.sass.application.nacos.user.NacosUserApplication
</mainClass>
<jvmFlags>
<jvmFlag>-javaagent:/opt/skywalking/agent/skywalking-agent.jar</jvmFlag>
</jvmFlags>
</container>
</configuration>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
#2.docker運行
docker run -d --env SW_AGENT_COLLECTOR_BACKEND_SERVICES="192.168.38.100:11800" -p 29502:9502 hub.dev.zycloud.info/his/user:v1
或者將變量信息統一存放到env文件中
cat config.env
SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.38.100:11800
docker run -d --env-file=config.env -p 29502:9502 hub.dev.zycloud.info/his/user:v1
#3.訪問應用中服務后訪問skywalking UI界面查看相應信息



