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 

添加权限:

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

查看是否安装成功:

docker-compose --version

方式2:

PIP安装:
安装pip:

yum install -y python3 python3-devel 

创建软链接:

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

执行以下命令升级pip:

pip3 install --upgrade pip

执行以下命令查看pip版本:

pip  --version

执行以下命令安装Docker Compose:

pip install docker-compose

编辑配置文件

创建文件夹/home/skywalking

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

touch docker-compose.yml
vi docker-compose.yml
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

拉取镜像并启动

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

docker-compose up -d

查看日志

docker-compose logs -f
docker compose常用命令

docker-compose up -d  # 在后台启动服务

docker-compose ps   # 查看启动的服务

docker-compose stop #停止服务

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

docker ps 

可以看到启动了三个容器: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

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

解压:

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

进入探针jar包的目录:

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

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

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

说明:

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

启动两个服务试试:

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

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

性能监控:

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

链路追踪:

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

日志收集

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

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

 <dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-logback-1.x</artifactId>
    <version>8.7.0</version>
</dependency>

Logback配置

<appender name="msystem-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
    <!-- 日志输出编码 -->
    <encoder>
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        </pattern>
    </encoder></appender>
<root level="info">
    <appender-ref ref="msystem-log"/></root>

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}

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

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

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值