0
点赞
收藏
分享

微信扫一扫

Skywalking分布式链路追踪部署、java项目链路追踪

Skywalking简介

实现从请求跟踪、指标收集和日志记录的完整信息记录。

多语言自动探针,支持JAVA、Go、Python、PHP、NodeJS、LUA、Rust等客户端

内置服务网络可观察性,支持从Isito+envoy Service Mesh收集和分析数据

模块化架构、存储、集群管理、使用插件集合都可以进行自由选择

支持告警

优秀的可视化结果

官网

​​https://github.com/apache/skywalking​​

部署链路追踪:

version: '3.3'
services:
es7:
image: elasticsearch:7.10.1
container_name: es7
ports:
- 9200:9200
- 9300:9300
environment:
- discovery.type=single-node #单机模式
- bootstrap.memory_lock=true #锁定物理内存地址
- "ES_JAVA_OPTS=-Xms1048m -Xmx1048m" #堆内存大小
- TZ=Asia/Shanghai
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /data/elasticsearch/data:/usr/share/elasticsearch/data

skywalking-oap:
image: apache/skywalking-oap-server:8.6.0-es7
container_name: skywalking-oap
restart: always
depends_on:
- es7
links:
- es7
ports:
- 11800:11800
- 12800:12800
environment:
TZ: Asia/Shanghai
SW_STORAGE: elasticsearch7
SW_STORAGE_ES_CLUSTER_NODES: es7:9200

skywalking-ui:
image: apache/skywalking-ui:8.6.0
container_name: skywalking-ui
restart: always
depends_on:
- skywalking-oap
links:
- skywalking-oap
ports:
- 8080:8080
environment:
TZ: Asia/Shanghai
SW_OAP_ADDRESS: skywalking-oap:12800

chmod -R 777 /data/elasticsearch/data

架构规划:

Skywalking分布式链路追踪部署、java项目链路追踪_jar

skywalking-ui: 前端服务,端口号8080

skywalking-oap: 可观测性分析平台,11800为grpc数据端口,12800为http数据端口

es7: 9200为elasticsearch数据读写端口,skywalking支持的存储有elasticsearch、h2、mysql、tidb、influxdb、postgresql等

java应用示例

java命令运行halo博客并实现链路追踪

软件环境

从1.4.3起,版本要求为11以上的版 本。1.4.3以下需要1.8以上的版本。

准备skwalking-java-agent

​​https://skywalking.apache.org/downloads/​​

Skywalking分布式链路追踪部署、java项目链路追踪_jar_02

mkdir -p  /data/skywalking/java-agent
cd /data/skywalking/java-agent
wget -c https://dlcdn.apache.org/skywalking/java-agent/8.13.0/apache-skywalking-java-agent-8.13.0.tgz --no-check-certificate
tar xf apache-skywalking-java-agent-8.13.0.tgz
vim config/agent.config
...
20 agent.service_name=${SW_AGENT_NAME:halo}
21
22 # The agent namespace
23 agent.namespace=${SW_AGENT_NAMESPACE:halo}
...
101 collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:10.0.7.2:11800}

安装jdk

tar xf jdk-11.0.14_linux-x64_bin.tar.gz -C /usr/local/jdk
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

source /etc/profile
java -version

halo app下载

mkdir /data/app
cd /data/app
wget -c https://dl.halo.run/release/halo-1.4.17.jar --no-check-certificate

启动应用

一个启应对应一个agent。go有go的agent,java有java的agent

# 相对路径 
java -javaagent:./skywalking-agent.jar -jar /data/app/halo-1.4.17.jar
绝对路径
java -javaagent:/data/skywalking/java-agent/skywalking-agent/skywalking-agent.jar -jar /data/app/halo-1.4.17.jar

halo博客访问注册

​​http://10.0.7.2:8090​​

Skywalking分布式链路追踪部署、java项目链路追踪_jar_03

进之博客网站后编写文章产生访问信息

Skywalking分布式链路追踪部署、java项目链路追踪_java_04

skywalking仪表盘简介

global: 显示服务的全局统计详情

服务(Service)-表示对请求提供相同行为的一系列或一组工作负载(服务名称),在使用agent或sdk的时候 ,可以自定义服务的名字,如果不定义的话,skywalking会使用你在平台(列如istio)上定义的名字

服务实例-上述的一组工作负载中的每一个工作负载称为一个实例(一个服务运行的节点)一个服务实例可以是一个kubernetes中的pod或者一个虚拟机甚至是物理机

端口:对于特定服务所接收的请求路径,如http的uri路径和grpc服务的类+方法签名,如/api/v1

skywalking global界面

Skywalking分布式链路追踪部署、java项目链路追踪_jar_05

skywalking Service界面

Skywalking分布式链路追踪部署、java项目链路追踪_jar_06

skywalking Instance界面

Skywalking分布式链路追踪部署、java项目链路追踪_elasticsearch_07

skywalking Endpoint界面

Skywalking分布式链路追踪部署、java项目链路追踪_java_08

Skywalking分布式链路追踪部署、java项目链路追踪_jar_09

skywalking database仪表盘

Skywalking分布式链路追踪部署、java项目链路追踪_elasticsearch_10

skywalking 拓扑图

Skywalking分布式链路追踪部署、java项目链路追踪_java_11

举报

相关推荐

0 条评论