• 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)

    image-20240105110418630

    上传到服务器安装目录并解压

    #这里选择的安装目录是/usr/local
    cd /usr/local
    tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz
    

    image-20240105115542247

    二.查看并修改配置文件

    #进入解压好的目录
    cd apache-skywalking-apm-bin-es7
    #编辑配置文件
    vi config/application.yml
    

    在配置文件中找到图片所在的位置

    image-20240108093627399

    此处修改的地方为SW_STORAGE:elasticsearch7elasticsearch7是该文档中的一个es数据存储的配置项。

    然后修改es存储的地址,在图片中如下位置修改:

    image-20240108093857684

    然后退出保存

    • storage.elasticsearch7,配置项,设置使用 Elasticsearch 7.X 版本作为存储器,本次安装选用的es7,所以需要配置es的地址。
    • storage.elasticsearch,配置项,设置使用 Elasticsearch 6.X 版本作为存储器。所以无需做任何改动。
    • storage.h2,配置项,设置使用 H2 作为存储器。

    如服务器出现端口占用,还可以选择更改Skywalking的端口。

    vi webapp/webapp.yml
    

    image-20240108100011551

    三.启动Skywalking

    cd bin/
    ls
    

    image-20240108100054090

    这里可以看见有三个启动脚本,分别是oap启动脚本,webServer的启动脚本,和同时启动两个服务的脚本startup.sh。

    因为是首次安装,所以先启动oap,执行oapService.sh,然后看日志输出。打开 logs/skywalking-oap-server.log 日志文件,查看是否有错误日志。首次启动时,因为 SkyWalking OAP 会创建 Elasticsearch 的索引,所以会一直打印日志,如下图。

    image-20240108102440907

    最终,我们看到如下日志,基本可以代表 SkyWalking OAP 服务启动成功:

    org.eclipse.jetty.server.Server - 444 [main] INFO  [] - Started
    

    因为首次启动oap会创建大量索引,所以需要花费较长时间。

    然后启动webappServer,执行webappService.sh,然后通过ip加配置的端口访问UI页面,能成功进入就算安装成功。

    image-20240108103429497

    四.使用Nginx,配置oap-server 域名

    在配置SkyWalking Agent的时候,oap在接收代理数据的时候报错。所以需要通过Nginx配置grpc 通信

    image-20240108161636711

    在Nginx中作如下配置:

    # grpc 代理配置
    server {
    	listen 11800 http2; # grpc方式对外暴露端口
    	server_name localhost;
    	# access_log logs/access.log main;
    	location / {
    		grpc_pass grpc://:11800; # 此处配置grpc服务的ip和端口
    	}
    }
    

    需要注意http2 和 http的端口不能重复。

    一般Nginx安装的时候默认是没有ngx_http_v2_module模块的,所以需要安装,教程地址

    五.配置SkyWalking Agent

    此处选择使用Dockerfile,在打包的时候把探针打入Java后端的镜像。

    Dockerfile文件:

    # 配置了sky-walking的dockerfile
    FROM 
    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打包时传入的后端服务名称的值,SPRING_PROFILES_ACTIVE=$PROFILE用于指定运行环境。

    文档中的target/agent/,这个agent文件是,apache-skywalking-apm-bin-es7目录下的agent文件夹,我这里是提前cp到,Dockerfile打包目录下的target目录下的。同样,请确保你的后端Jar包文件和agent处于同一目录。

    执行打包命令

    docker build --build-arg APP_NAME=<自己的项目名> --build-arg PROFILE=test --build-arg PORT=8080 -f Dockerfile -t <自己的harbor私服地址>/<自己的项目名>:test-1 .
    

    这里的APP_NAME换成自己的项目名,PROFILE是你的运行环境,这边默认为test,-t后面是自己的镜像名,一般默认是私服地址+项目名+tag

    #然后上传自己打包的镜像到私服
    docker push <自己的harbor私服地址>/<自己的项目名>:test-1
    

    然后在目标服务器用docker运行测试,看项目是否启动。成功配置的结果,如下图:

    image-20240104180902903


    __EOF__

  • 本文作者: 山有扶苏
  • 本文链接: https://www.cnblogs.com/blogof-fusu/p/17956503
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    PCL 视图变换(OpenGL)
    LVS+Keepalived 高可用集群
    mysql事务
    DGIOT数字工厂整体结构介绍
    Redis-高性能原理剖析
    Prompt Tuning训练过程
    EvaluatorFilter简介说明
    cvpr24写作模板pdfLaTex编译器注意点小结
    创新案例 | 本地生活服务数字化,高德品牌升级的增长战略
    763. Partition Labels
  • 原文地址:https://www.cnblogs.com/blogof-fusu/p/17956503