Docker-Compose搭建单体SkyWalking 6.2
SkyWalking简介
SkyWalking是一款高效的分布式链路追踪框架,对于处理分布式的调用链路的问题定位上有很大帮助
有以下特点:
性能好
针对单实例5000tps的应用,在全量采集的情况下,只增加 10% 的CPU开销。支持多语言探针
支持自动及手动探针
自动探针:Java支持的中间件、框架与类库列表
手动探针:OpenTrackingApi、@Trace注解、trackId集成到日志中。
本文基于Skywalking 6.2版本,使用自动探针演示效果,Elasticsearch作存储,由低版本升级到此版本需要删除ES的全部索引
目录结构
.
├── docker-compose.yml
└── .env
文件说明
docker-compose.yml
Docker-compose配置文件.env
环境变量配置文件
配置文件
docker-compose.yml
version: '3.3'
services:oap:image: apache/skywalking-oap-server:6.2.0container_name: skywalking-oaprestart: alwaysports:- 11800:11800- 12800:12800environment:- SW_STORAGE=elasticsearch #Es的存储- SW_STORAGE_ES_CLUSTER_NODES=${ES_NODE} # Es的节点地址,从.env文件中取- TZ=Asia/Shanghai #设定东八区的城市,防止Oap记录数据时用0时区ui:image: apache/skywalking-ui:6.2.0container_name: skywalking-uidepends_on:- oaplinks:- oaprestart: alwaysports:- 18080:8080 #默认8080端口,这里设置18080映射到宿主机,可修改environment:collector.ribbon.listOfServers: oap:12800
.env
# set default props for docker-compose.yml
# set ES_Cluster or standalone Elasticsearch node. format is "ip:port"
ES_NODE=10.2.7.70:9204
准备工作
- 进入与docker-compose.yml同级目录
- 查看
11800
、12800
、18080
这三个端口不能被占用,如果已占用,请自行修改docker-compose.yml
的端口号 - 修改
.env
ES_NODE=10.2.7.70:9204 #这里的ip:port应指向Elasticsearch的协调节点,请尽量不要指向主节点和数据节点
启动服务端
执行docker-compose up -d
查看前端
浏览器访问宿主机ip:18080
,效果如下图
此图为已经使用探针后的表现
Agent自动探针采集数据设置
这里的Agent要与OAP的版本保持一致,这里使用6.2版本
Java只需要在VM options中追加格式为
-javaagent:/path/to/path/skywalking-agent.jar
-Dskywalking.agent.service_name=YOUR_APP_NAME
-Dskywalking.collector.backend_service=OAP_SEVER_HOST:gRPC_PORT
举例如下:
-javaagent:D:/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.service_name=eureka-peer2
-Dskywalking.collector.backend_service=10.2.7.70:11800
- 这里仅举例agent gRPC方式,Restful请求方式默认使用12800端口,请自行对应
/path/to/path
为agent的jar包位置,启动进程中会读取config/agent.conf,我们通过-D添加了参数会覆盖这些配置,所以一个agent包是可以支持多个服务启动的
效果图
问题发现与解决
Q1:
graphql.execution.SimpleDataFetcherExceptionHandler -1061995 [qtp1609086753-159] WARN [] - Exception while fetching data (/latencyS) : IDs can't be null java.lang.RuntimeException: IDs can't be null
A1:
此问题为ui端的问题,无需解决,对SkyWalking后端无影响
包括其它IDs can't be null的问题,均为UI端的问题,影响不大,可以忽略
Q2:
探针已经连接成功了,UI端已经显示终端/端点有连接数,但是无论怎么请求都没有调用链和请求展示
A2:
请检查操作系统时区设置,SkyWalking默认会读取当前操作系统的时区设置,如果使用0时区,基于时间戳方式查询自然不会查询到结果,所以设置时区为东八区即可,如果是Docker方式,可以使用 -e TZ=Asia/Shanghai
本文系搭建笔记,拒绝转载
转载于:https://www.cnblogs.com/hellxz/p/docker-compose_skywalking.html
Docker-Compose搭建单体SkyWalking 6.2相关推荐
- Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)
文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...
- Docker学习之路05:五分钟用docker compose搭建一个自己的个人博客网站!
五分钟用docker compose搭建一个自己的个人博客网站! Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学 ...
- Docker Compose搭建TDengine集群
文章目录 1. Linux上安装Docker 2. 安装Docker Compose 3. 自定义Docker 网络 4. 搭建集群 4.1 基础配置 4.2 查看启动效果 4.3 测试节点 4.3. ...
- 教你三分钟用docker compose搭建一个自己的个人博客网站
hi,大家好,我是 jack xu,今天和大家聊一个轻松.好玩.易懂的话题,就是教大家搭建一个自己的个人博客网站,可以在同事朋友面前炫耀一把.事情的缘由是我们公司有个同事,有一天他给了我一个网站,我打 ...
- Docker使用docker compose搭建Jellyfin私人媒体服务器 个人电影网站
->Docker及docker compose的安装点这里 创建 docker-compose.yml 文件 version: "3" services:jellyfin:i ...
- docker compose搭建NACOS集群
使用docker搭建NACOS集群 SpringCloud Alibaba,必然会使用Nacos进行服务注册与配置管理.然而,在实际的生产环境中,使用单服务器搭建nacos服务器是十分危险的,如若发生 ...
- 使用Docker Compose 搭建lnmp
文章目录 一: Docker-compose 简介 1.1 为什么使用 Docker-compose 1.2 Docker-compose概述 二: compose 的部署 2.1 Docker Co ...
- 基于Docker Compose搭建的Mysql8.0主从复制(1主3从,多主机)
系统环境 CentOs 7 mysql 8.0.19 docker 18.09.9-ce docker-compose 1.26.1-rc3 安装docker-compose环境 docker-com ...
- Docker Compose 搭建 Docker Registry 私服
简介 官方的 Docker Hub 是一个用于管理公共镜像的地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.你也可以选择通过 Docker Registry 搭建一个属于自己的 ...
最新文章
- python语言有什么用-为什么现在很多人都使用Python语言有什么优势
- linux和android开发链接
- mysql 手机号 字段_2021-01-06:mysql中,我存十亿个手机号码,考虑存储空间和查询效率,用什么类型的字段去存?...
- python开发信息系统权限设置_[Python学习] Django 权限控制
- 计算机操作系统还能这样玩?这一篇计算机操作系统的总结为你保驾护航(零风险、高质量、万字长文、建议收藏)
- 角色管理与今日内容介绍
- 信息学奥赛C++语言: 计算两个数的最小公倍数
- python分析pcap文件_利用Python库Scapy解析pcap文件的方法
- php 人像识别,基于OpenCV的PHP图像人脸识别技术
- python和java的区别-python与java区别
- android文件操作和SDCard卡操作
- netconsole 重定向kernel日志到远程服务器
- (一)抖音快手短视频去水印原理分析
- 【参赛作品65】MOGDB/openGauss的txid_snapshot 数据类型和相关函数
- hadoop各版本下载地址
- python扫雷游戏设计_Python 扫雷游戏 完整源代码+图片素材
- 手机沙盒隔离软件_360隔离沙箱下载_360隔离沙箱独立版下载 v3.0.0 官方版_天天下载手机版...
- CentOS6-yun install wget失败
- 通州新城规划图 - 新通网http://www.xintongwang.com
- “联创黔线”杯大数据应用创新大赛
热门文章
- Java终止当前线程的方法
- 软考之CPU的寻址方式
- Java三大主流框架概述
- SCOM2012R2 (5) MONITOR WINDOWS OF WORKGROUP
- MIT开放式课程“自然语言处理”介绍
- [原]不祥的CPU——Alpha
- linux命令face,linux下配置face_recognition
- php 多条数据更新数据类型,PHPdoc @param中的两个或多个数据类型
- Web前端学习笔记:Vue生命周期理解
- 更换VC后DDC提示证书不可用