跳至主要內容

skywalking链路监控

科哒大约 5 分钟

架构原理图

  • docker
  • docker

工程解读

地址:https://gitee.com/keyyds/skywalkingopen in new window

下面提供了docker运行skywalking的全套工程项目,包括配置文件、测试工程、运行脚本。

下面提供两种环境的运行方式,本地运行、云服务器运行

  • docker 启动
# https://skywalking.apache.org/downloads/
# /usr/local/bin/docker-compose -f /docs/dev-ops/skywalking/skywalking-docker-compose.yml up -d
version: '3.8'
services:
  elasticsearch:
    image: elasticsearch:7.16.2
    container_name: elasticsearch
    ports:
      - "9200:9200"
    healthcheck:
      test: [ "CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1" ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
#    volumes:
#      - ./data/es_data:/usr/share/elasticsearch/data

  oap:
    image: apache/skywalking-oap-server:8.9.0
    container_name: oap
    depends_on:
      elasticsearch:
        condition: service_healthy
    links:
      - elasticsearch
    ports:
      - "11800:11800"
      - "12800:12800"
    healthcheck:
      test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    environment:
      SW_STORAGE: elasticsearch
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
      SW_HEALTH_CHECKER: default
      SW_TELEMETRY: prometheus
      JAVA_OPTS: "-Xms1024m -Xmx1024m"

  skywalking-ui:
    image: apache/skywalking-ui:8.9.0
    container_name: skywalking-ui
    depends_on:
      oap:
        condition: service_healthy
    links:
      - oap
    ports:
      - "9090:8080"
    environment:
      SW_OAP_ADDRESS: http://oap:12800

本地运行

  • 本地安装docker, 我的是win 版的。
  • idea安装docker插件。
  • idea连接本地docker,如果上面两步做好之后,idea会自动识别到,直接添加即可。
  • 运行环境,如果本地运行的话,最好开启科学上网,不然镜像拉不到。

本地工程启动

  • 初始化数据
-javaagent:F:/Idea/ke/skywalking/docs/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking-app-dev -Dskywalking.collector.backend_service=127.0.0.1:11800

我的位置是

F:/Idea/ke/skywalking/docs/skywalking-agent/skywalking-agent.jar

启动测试

  • 启动工程项目
  • 请求数据接口,先压几分钟。

压一会之后有数据了。

云服务运行

环境要求

两种方式部署云环境的skywalking环境,一种是通过idea插件,另一种是将配置文件sftp上传到服务器,手动执行配置文件。

idea插件连接云环境docker

  • 开放端口
firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --zone=public --add-port=11800/tcp --permanent
firewall-cmd --zone=public --add-port=9091/tcp --permanent
firewall-cmd --reload

本地数据上报云skywalking

需要换成部署的服务器ip。然后重启启动,请求测试。

  • 压了5分钟 也有数据了,说明上报成功。

手动

  • sftp 上传 文件
  • 启动 docker-compose -f skywalking-docker-compose.yml up -d

程序在云服务器上运行

打包镜像

# 基础镜像
FROM openjdk:8-jre-slim
# 作者
MAINTAINER huangkeing
# 配置
ENV PARAMS=""
# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用
ADD /target/skywalking-app.jar /skywalking-app.jar
## 在镜像运行为容器后执行的命令
ENTRYPOINT ["java", "-Xmx512m", "-javaagent:/dev-ops/skywalking-agent/skywalking-agent.jar", "-Dskywalking.agent.service_name=skywalking-app", "-Dskywalking.collector.backend_service=116.198.200.xxx:11800", "-jar", "/skywalking-app.jar"]
  • 注意:/dev-ops/skywalking-agent/skywalking-agent.jar为云服务器所在路径。

  • 构建镜像推送到云服务器

  • 新推送上来一个镜像
  • 手动打上标签 huangkeming/skywalking-app:1.0

启动服务

<font style="color:rgb(71, 101, 130);">start.sh</font>

CONTAINER_NAME=skywalking-app
IMAGE_NAME=huangkeming/skywalking-app:1.0
PORT=9091

echo "容器部署开始 ${CONTAINER_NAME}"

# 停止容器
docker stop ${CONTAINER_NAME}

# 删除容器
docker rm ${CONTAINER_NAME}

# 启动容器 skywalking-agent 下载:https://archive.apache.org/dist/skywalking/java-agent/8.9.0/apache-skywalking-java-agent-8.9.0.tgz
docker run --name ${CONTAINER_NAME} \
-p ${PORT}:${PORT} \
-v /dev-ops/skywalking-agent/:/dev-ops/skywalking-agent/ \
-d ${IMAGE_NAME}

#docker run --name skywalking-app \
#-p 9091:9091 \
#-v /dev-ops/skywalking-agent/:/dev-ops/skywalking-agent/ \
#-d huangkeming/skywalking-app:1.2

echo "容器部署成功 ${CONTAINER_NAME}"

docker logs -f ${CONTAINER_NAME}
  • ``

执行成功

idea2024.4版本无法

问题如下

解决办法

找到如下界面

下载 https://download.docker.com/win/static/stable/x86_64/open in new window

解压后配置上去

上次编辑于:
贡献者: 黄科铭