SkyWalking APM8.1.0 搭建與專案整合使用
阿新 • • 發佈:2020-08-05
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介面檢視相應資訊