Skywalking(8.7)安装以及docker镜像打包
Skywalking安裝以及docker鏡像打包
Skywalking版本:apache-skywalking-apm-es7-8.7.0
ES版本:7.17.2
一.下載Skywalking的安裝包
下載地址:Index of /dist/skywalking/8.7.0 (apache.org)
上傳到服務(wù)器安裝目錄并解壓
#這里選擇的安裝目錄是/usr/local
cd /usr/local
tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz
二.查看并修改配置文件
#進(jìn)入解壓好的目錄
cd apache-skywalking-apm-bin-es7
#編輯配置文件
vi config/application.yml
在配置文件中找到圖片所在的位置
此處修改的地方為
SW_STORAGE:elasticsearch7,elasticsearch7是該文檔中的一個(gè)es數(shù)據(jù)存儲(chǔ)的配置項(xiàng)。
然后修改es存儲(chǔ)的地址,在圖片中如下位置修改:
然后退出保存
- storage.elasticsearch7,配置項(xiàng),設(shè)置使用 Elasticsearch 7.X 版本作為存儲(chǔ)器,本次安裝選用的es7,所以需要配置es的地址。
- storage.elasticsearch,配置項(xiàng),設(shè)置使用 Elasticsearch 6.X 版本作為存儲(chǔ)器。所以無(wú)需做任何改動(dòng)。
- storage.h2,配置項(xiàng),設(shè)置使用 H2 作為存儲(chǔ)器。
如服務(wù)器出現(xiàn)端口占用,還可以選擇更改Skywalking的端口。
vi webapp/webapp.yml
三.啟動(dòng)Skywalking
cd bin/
ls
這里可以看見有三個(gè)啟動(dòng)腳本,分別是oap啟動(dòng)腳本,webServer的啟動(dòng)腳本,和同時(shí)啟動(dòng)兩個(gè)服務(wù)的腳本startup.sh。
因?yàn)槭鞘状伟惭b,所以先啟動(dòng)oap,執(zhí)行oapService.sh,然后看日志輸出。打開 logs/skywalking-oap-server.log 日志文件,查看是否有錯(cuò)誤日志。首次啟動(dòng)時(shí),因?yàn)?SkyWalking OAP 會(huì)創(chuàng)建 Elasticsearch 的索引,所以會(huì)一直打印日志,如下圖。
最終,我們看到如下日志,基本可以代表 SkyWalking OAP 服務(wù)啟動(dòng)成功:
org.eclipse.jetty.server.Server - 444 [main] INFO [] - Started
因?yàn)槭状螁?dòng)oap會(huì)創(chuàng)建大量索引,所以需要花費(fèi)較長(zhǎng)時(shí)間。
然后啟動(dòng)webappServer,執(zhí)行webappService.sh,然后通過ip加配置的端口訪問UI頁(yè)面,能成功進(jìn)入就算安裝成功。
四.使用Nginx,配置oap-server 域名
在配置SkyWalking Agent的時(shí)候,oap在接收代理數(shù)據(jù)的時(shí)候報(bào)錯(cuò)。所以需要通過Nginx配置grpc 通信
在Nginx中作如下配置:
# grpc 代理配置
server {
listen 11800 http2; # grpc方式對(duì)外暴露端口
server_name localhost;
# access_log logs/access.log main;
location / {
grpc_pass grpc://<Sktwalking主機(jī)IP>:11800; # 此處配置grpc服務(wù)的ip和端口
}
}
需要注意http2 和 http的端口不能重復(fù)。
一般Nginx安裝的時(shí)候默認(rèn)是沒有ngx_http_v2_module模塊的,所以需要安裝,教程地址。
五.配置SkyWalking Agent
此處選擇使用Dockerfile,在打包的時(shí)候把探針打入Java后端的鏡像。
Dockerfile文件:
# 配置了sky-walking的dockerfile
FROM <jdk11基礎(chǔ)鏡像>
MAINTAINER uni
WORKDIR /usr/app
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
ARG APP_NAME="app"
ARG PORT=10001
ENV JAVA_OPTS="-Xms512m -Xmx512m" \
SPRING_PROFILES_ACTIVE=$PROFILE \
APPLICATION_NAME=$APP_NAME \
SW_AGENT_COLLECTOR_BACKEND_SERVICES="<通過Nginx代理后的地址>:11800"
ADD ./target/${APPLICATION_NAME}.jar ${APPLICATION_NAME}.jar
# 將agent文件夾放入容器,jenkins配置里,docker build前一步,cp到target文件夾下的
ADD ./target/agent/ /usr/local/agent
EXPOSE ${EXPORT}
ENTRYPOINT exec java ${JAVA_OPTS} -javaagent:/usr/local/agent/skywalking-agent.jar -Dskywalking.agent.service_name=$APPLICATION_NAME -Dskywalking.collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES} -jar -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} ${APPLICATION_NAME}.jar
APPLICATION_NAME=$APP_NAME是docker打包時(shí)傳入的后端服務(wù)名稱的值,SPRING_PROFILES_ACTIVE=$PROFILE用于指定運(yùn)行環(huán)境。文檔中的target/agent/,這個(gè)agent文件是,apache-skywalking-apm-bin-es7目錄下的agent文件夾,我這里是提前cp到,Dockerfile打包目錄下的target目錄下的。同樣,請(qǐng)確保你的后端Jar包文件和agent處于同一目錄。
執(zhí)行打包命令
docker build --build-arg APP_NAME=<自己的項(xiàng)目名> --build-arg PROFILE=test --build-arg PORT=8080 -f Dockerfile -t <自己的harbor私服地址>/<自己的項(xiàng)目名>:test-1 .
這里的APP_NAME換成自己的項(xiàng)目名,PROFILE是你的運(yùn)行環(huán)境,這邊默認(rèn)為test,-t后面是自己的鏡像名,一般默認(rèn)是私服地址+項(xiàng)目名+tag
#然后上傳自己打包的鏡像到私服
docker push <自己的harbor私服地址>/<自己的項(xiàng)目名>:test-1
然后在目標(biāo)服務(wù)器用docker運(yùn)行測(cè)試,看項(xiàng)目是否啟動(dòng)。成功配置的結(jié)果,如下圖:
總結(jié)
以上是生活随笔為你收集整理的Skywalking(8.7)安装以及docker镜像打包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尊嘟假嘟?三行代码提升接口性能600倍
- 下一篇: 轻量化动态编译库 Natasha v8.