• docker-compose安装skywalking进行日志收集,性能监控和链路追踪!


    安装docker-compose

    我使用的的系统是centos7的系统,已安装过的可以忽略这一步。

    方式1:

    github.下载:

    curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
    
    • 1

    添加权限:

    chmod +x /usr/local/bin/docker-compose
    
    • 1

    查看是否安装成功:

    docker-compose --version
    
    • 1

    方式2:

    PIP安装:
    安装pip:

    yum install -y python3 python3-devel 
    
    • 1

    创建软链接

    ln -sf /usr/bin/python3 /usr/bin/python
    
    • 1

    执行以下命令升级pip

    pip3 install --upgrade pip
    
    • 1

    执行以下命令查看pip版本

    pip  --version
    
    • 1

    执行以下命令安装Docker Compose:

    pip install docker-compose
    
    • 1

    编辑配置文件

    创建文件夹/home/skywalking

    将下面的 docker-compose.yml 文件保存到这个目录

    touch docker-compose.yml
    
    • 1
    vi docker-compose.yml
    
    • 1
    version: '3.8'
    services:
      elasticsearch:
        image: nanlist/elasticsearch7.14.1:v1.0
        container_name: elasticsearch
        restart: always
        ports:
          - 9222:9200
        healthcheck:
          test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
          interval: 30s
          timeout: 10s
          retries: 3
          start_period: 40s
        environment:
          - discovery.type=single-node
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          - TZ=Asia/Shanghai
        ulimits:
          memlock:
            soft: -1
            hard: -1
      oap:
        image: nanlist/skywalking-oap-server8.7.0-es7:v1.0
        container_name: oap
        depends_on:
          - elasticsearch
        links:
          - elasticsearch
        restart: always
        ports:
          - 11800:11800
          - 12800:12800
        healthcheck:
          test: ["CMD-SHELL", "/skywalking/bin/swctl"]
          interval: 30s
          timeout: 10s
          retries: 3
          start_period: 40s
        environment:
          TZ: Asia/Shanghai
          SW_STORAGE: elasticsearch7
          SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
      ui:
        image: nanlist/skywalking-ui8.7.0:v1.0
        container_name: ui
        depends_on:
          - oap
        links:
          - oap
        restart: always
        ports:
          - 8088:8080
        environment:
          TZ: Asia/Shanghai
          SW_OAP_ADDRESS: http://oap:12800
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57

    拉取镜像并启动

    cd 到docker-compose的yml文件目录下面,执行命令,这一步有点漫长,耐心等待。

    docker-compose up -d
    
    • 1

    查看日志

    docker-compose logs -f
    
    • 1
    docker compose常用命令
    
    docker-compose up -d  # 在后台启动服务
    
    docker-compose ps   # 查看启动的服务
    
    docker-compose stop #停止服务
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    启动成功以后查看一下docker容器:

    docker ps 
    
    • 1

    可以看到启动了三个容器:skywalking-ui,
    elasticsearch:( Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。),
    skywalking-oap-server:记住他的端口号11800 后面使用探针的时候要用到:
    在这里插入图片描述
    启动之后浏览器访问 服务ip:8080 即可
    http://10.10.11.79:8088

    第一次启动页面加载较慢,等待1-3分钟,出现如下界面,说明成功。右上角自动刷新最好开启一下。
    在这里插入图片描述

    下载 agent 代理包

    服务端安装好了以后,还需要客户端(就是你的项目jar包)结合探针skywalking-agent才能在仪表盘展示数据。

    下载:

    还是之前的目录下面:

    wget https://archive.apache.org/dist/skywalking/8.7.0/apache-skywalking-apm-8.7.0.tar.gz
    
    • 1

    在这里插入图片描述
    或者提前下载好,传到服务器上面。
    在这里插入图片描述

    解压:

    tar -zxvf apache-skywalking-apm-8.7.0.tar.gz
    
    • 1

    进入探针jar包的目录:

    cd ./apache-skywalking-apm-bin/agent/
    
    • 1

    在这里插入图片描述
    这个目录记一下,后面需要使用。

    Java探针agent 使用:

    使用agent 结合Java jar 启动方式主要有三种 idea使用, jar包使用, docker使用
    我采用jar包方式使用探针,另外两种可以自行百度。

    springcloud/springboot 一般是通过 java -jar xxx.jar 进行启动。我们只需要在其中加上 -javaagent 参数即可。

    -javaagent:你的探针绝对路径\skywalking-agent.jar -Dskywalking.agent.service_name=服务名称(仪表板需要显示) -Dskywalking.collector.backend_service=ip:11800
    
    • 1

    说明:

    ip:skywalking安装的那台服务器的ip;
    端口号: 这个端口号是skywalking-oap-server的端口号,启动skywalking的时候运行了三个容器,有一个是skywalking-oap-server的容器默认的端口号是11800
    
    • 1
    • 2

    启动两个服务试试:

    java -javaagent:/home/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar=agent.service_name=lgs-lab,collector.backend_service=10.10.11.79:11800 -jar lgs-lab.jar
    
    • 1
    java -javaagent:/home/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar=agent.service_name=lgs-modules-system,collector.backend_service=10.10.11.79:11800 -jar lgs-modules-system.jar
    
    • 1

    你自己的服务jar包一定要放到最后;

    性能监控:

    控制台中实时看到包括jvm在内的性能信息。
    在这里插入图片描述

    链路追踪:

    执行命令启动后,控制台 中看到访问的链接和调用链路。
    在这里插入图片描述
    在这里插入图片描述
    控制台更多使用说明:
    分布式链路追踪系统SkyWalking的可视化管理后台使用

    日志收集

    skywalking收集logback日志,我项目中用的日志框架是logback,仅供参考:

    pom文件中引用jar包注意版本要跟skywalking一致

     
        org.apache.skywalking
        apm-toolkit-logback-1.x
        8.7.0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Logback配置

    
        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            
        
    
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    agent.confg:

    agent和oap在不同服务器上时,需配置agent/config/agent.config配置文件,在文件末尾添加如下配置信息,注意skywalking的log通信用的grpc

    plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:10.10.10.1}
    plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
    plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
    plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
    
    • 1
    • 2
    • 3
    • 4

    我的agent和oap容器在同一台服务器上所以这一步可以跳过。

    服务运行后即可看到日志:

    在这里插入图片描述
    这样就可以了。

  • 相关阅读:
    BUUCTF msic 专题(128)[ACTF新生赛2020]剑龙
    【JAVA】Spring 框架
    《OpenDRIVE1.6规格文档》2
    RHCE第一天练习题
    在线Web页面测试工具-WebPageTest
    菲亚特 500 发动机故障灯亮,冷车时发动机失火
    独立部署自己专属的答题小程序有什么好处
    WPF 页面布局 DockPanel Grid StackPanel UniformGrid WrapPanel WPF布局入门 WPF布局资料
    使用vue快速创建uniapp小程序
    java计算机毕业设计干洗店订单管理系统设计与实现源码+mysql数据库+系统+lw文档+部署
  • 原文地址:https://blog.csdn.net/u010797364/article/details/126545391