介绍

skywalking可以实现并接入Java项目中实现分布式链路追踪和监控微服务架构等,可以直观查看调用信息等等。

更多的详细内容见:https://skywalking.apache.org/

服务安装

环境

操作系统:CentOS Linux release 7.9.2009 (Core)

Docker:20.10.21

Docker Compose version: v2.14.0

脚本

.env配置环境

1
2
OAP_IMAGE=apache/skywalking-oap-server:9.3.0
UI_IMAGE=apache/skywalking-ui:9.3.0

docker-compose.yml配置启动文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
version: '3'
services:
  oap:
    image: ${OAP_IMAGE}
    container_name: oap
    ports:
      - "11800:11800"
      - "12800:12800"
    environment:
      JAVA_OPTS: "-Xms2048m -Xmx2048m"

  ui:
    image: ${UI_IMAGE}
    container_name: ui
    depends_on:
      - oap
    links:
      - oap
    ports:
      - "8080:8080"
    environment:
      SW_OAP_ADDRESS: http://oap:12800

执行

1
2
3
4
5
# 启动服务
docker-compose up -d

# 查看服务是否成功
docker-compose ps

浏览

安装的宿主机:8080

Agent安装

本地运行

下载agent的jar包:https://skywalking.apache.org/downloads/#Agents

解压到指定的目录下,比如:/blade/skywalking-agent

1
2
3
4
5
6
# 执行脚本
# app.jar是你的应用程序
# SKYWALKING_SERVICE_NAME 这个是服务的名称
# SKYWALKING_SERVICE 这个是skywalking的服务地址

java -javaagent:/blade/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=${SKYWALKING_SERVICE_NAME} -Dskywalking.collector.backend_service=${SKYWALKING_SERVICE}:11800 -Djava.security.egd=file:/dev/./urandom -jar app.jar  --spring.profiles.active=test

Docker运行

应用程序打包配置

参考例子如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
FROM bladex/alpine-java:openjdk8-openj9_cn_slim

MAINTAINER tangfeizz@outlook.com

ENV SKYWALKING_SERVICE=""
ENV SKYWALKING_SERVICE_NAME=""

RUN mkdir -p /blade/system

WORKDIR /blade/system

EXPOSE 8106

ADD ./target/blade-system.jar ./app.jar

ENTRYPOINT ["sh","-c","java -javaagent:/blade/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=${SKYWALKING_SERVICE_NAME} -Dskywalking.collector.backend_service=${SKYWALKING_SERVICE}:11800 -Djava.security.egd=file:/dev/./urandom -jar app.jar  --spring.profiles.active=test"]

docker-compose的配置

参考例子如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  blade-system:
    image: "${REGISTER}/blade-system:${TAG}"
    environment:
      - TZ=Asia/Shanghai
      - SKYWALKING_SERVICE_NAME=blade-system
      - SKYWALKING_SERVICE=${SKYWALKING_SERVICE}
    privileged: true
    restart: always
    volumes:
      - /blade/skywalking-agent:/blade/skywalking-agent
    networks:
    - blade_net