SkyWalking介绍

SkyWalking是什么?

SkyWalking是一个可观测性分析平台和应用性能管理系统,提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案,并支持多种开发语言。

官网:http://skywalking.apache.org/  两天前即2020年8月3号 8.1.0正式发布


安装

SkyWalking支持单机与集群部署(默认standalone),并支持多种数据存储(默认H2),如mysql,Elasticsearch,Elasticsearch7等。

本文以SkyWalking8.1.0并使用Elasticsearch来存储数据进行讲解

ElasticSearch搭建请参考我的另外一篇文章

SkyWalking下载地址:http://skywalking.apache.org/downloads/

由于要使用Elasticsearch,下载的时候请注意选择:

点击tar后选择一个地址即可开始下载

相关操作命令如下:

cd /usr/local/src
wget https://mirror.bit.edu.cn/apache/skywalking/8.1.0/apache-skywalking-apm-es7-8.1.0.tar.gz
tar -xvf apache-skywalking-apm-es7-8.1.0.tar.gz cd /usr/local/src/apache-skywalking-apm-bin-es7

修改相关配置:

1.web访问端口 8080->38080 (本机8080已被其它服务占用)

vi /usr/local/src/apache-skywalking-apm-bin-es7/webapp/webapp.yml
#将server.port: 8080 改为38080
#或者使用sed命令
sed -i 's$8080$38080$g' /usr/local/src/apache-skywalking-apm-bin-es7/webapp/webapp.yml

2.修改使用Elasticsearch(默认使用h2)

注意:nameSpace要和Elasticsearch集群的cluster_name一致

name" : "elk02",
"cluster_name" : "es-cluster",
"cluster_uuid" : "GnUvYMcGRK2GVJsvkwM7FQ",
"version" : {
"number" : "7.2.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "508c38a",
"build_date" : "2019-06-20T15:54:18.811730Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"

#启动

/usr/local/src/apache-skywalking-apm-bin-es7/bin/startup.sh

#加入到开机启动

cat "/usr/local/src/apache-skywalking-apm-bin-es7/bin/startup.sh" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

#确认应用启动成功端口正常监听

#如果出错可以查看日志并根据错误类型进行处理

#然后可以打开浏览器进行查看  ip地址:38080

一开始是没数据的,待项目集成后再刷新页面就可以看到数据了。


项目集成

  • jar运行
java -javaagent:/opt/skywalking/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=xiao_test
-Dskywalking.collector.backend_service=XXX.XXX.XXX.XXX:11800
-jar xxxx.jar
#javaagent agent包路径
#skywalking.agent.service_name 服务名称
#skywalking.collector.backend_service 采集信息的服务地址 agent.config配置了就可以不用指定
  • docker运行
#1.在打包插件中增加entrypoint并注意替换最后一部分和mainClass相同,然后打包
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.7.0</version>
<configuration>
<from>
<!-- 把agent拷贝到基础镜像去/opt/skywalking/agent/skywalking-agent.jar基础镜像去-->
<image>hub.dev.zycloud.info/cx/oracle-jdk-with-skywalking:8</image>
<auth>
<username>xxxxxxxx</username>
<password>xxxxxxxx</password>
</auth>
</from>
<to>
<image>hub.dev.zycloud.info/his/${project.artifactId}:${git.commit.id.abbrev}</image>
<auth>
<username>xxxxxxxx</username>
<password>xxxxxxxx</password>
</auth>
</to>
<allowInsecureRegistries>true</allowInsecureRegistries>
<container>
<useCurrentTimestamp>true</useCurrentTimestamp>
<labels>
<authors>${env.USERNAME}</authors>
<version>${project.version}</version>
<git-branch>${git.branch}</git-branch>
<git-commit-id>${git.commit.id.abbrev}</git-commit-id>
<git-commit-message>${git.commit.message.short}</git-commit-message>
<git-commit-user>${git.commit.user.name}</git-commit-user>
</labels>
<environment>
<SPRING_PROFILES_ACTIVE>pro</SPRING_PROFILES_ACTIVE>
<SW_AGENT_NAME>${project.name}</SW_AGENT_NAME>
<SW_LOGGING_DIR>/var/log/${project.artifactId}</SW_LOGGING_DIR>
<SW_LOGGING_MAX_HISTORY_FILES>50</SW_LOGGING_MAX_HISTORY_FILES>
</environment>
<mainClass>
info.zycloud.sass.application.nacos.user.NacosUserApplication
</mainClass>
<jvmFlags>
<jvmFlag>-javaagent:/opt/skywalking/agent/skywalking-agent.jar</jvmFlag>
</jvmFlags>
</container>
</configuration>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin> #2.docker运行
docker run -d --env SW_AGENT_COLLECTOR_BACKEND_SERVICES="192.168.38.100:11800" -p 29502:9502 hub.dev.zycloud.info/his/user:v1 或者将变量信息统一存放到env文件中
cat config.env
SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.38.100:11800 docker run -d --env-file=config.env -p 29502:9502 hub.dev.zycloud.info/his/user:v1
#3.访问应用中服务后访问skywalking UI界面查看相应信息

SkyWalking APM8.1.0 搭建与项目集成使用的更多相关文章

  1. Vue3实战系列:Vue3.0 + Vant3.0 搭建种子项目

    最近在用 Vue3 写一个开源的商城项目,开源后让大家也可以用现成的 Vue3 大型商城项目源码来练练手,目前处于开发阶段,过程中用到了 Vant3.0,于是就整理了这篇文章来讲一下如何使用 Vue3 ...

  2. Linux下安装SkyWalking 6.1版本 以及.NETCore项目集成

    SkyWalking和APM介绍 今天给大家给大家介绍一下SkyWalking,那什么是SkyWalking Skywalking 是 Apache 基金会下面的一个开源 APM 项目 ,那什么又是A ...

  3. vite搭建vue项目-集成别名@、router、vuex、scss就是这样简单

    为什么要使用vite 当我们开始构建越来越大型的应用时, 需要处理的 JavaScript 代码量也呈指数级增长. 包含数千个模块的大型项目相当普遍. 这个时候我们会遇见性能瓶颈 使用 JavaScr ...

  4. 使用vue-cli3搭建一个项目

    前面说过用vue-cli3快速开发原型的搭建,下面来说一下搭建一个完整的项目 首先我们可以输入命令(创建一个项目名为test的项目) vue create test 输完这个命令后,会让你选择配置项, ...

  5. 3 分钟轻松搭建 Ruby 项目自动化持续集成

    任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这是一篇关于 Ruby 项目持续集成的快速指导教程,教大家如何使用 f ...

  6. Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  7. vue2.0 安装及项目搭建(一)

    基本环境安装 1.安装node:从node.js官网下载并安装node.测试:win+R(打开命令行)-------输入cmd-------敲入node -v.如果出现相应版本号,即安装成功: 2.测 ...

  8. 使用VUE CLI3.0搭建项目vue2+scss+element简易版

    1.安装Vue CLI 3 //三选一即可cnpm install -g @vue/cli npm install -g @vue/cli yarn global add @vue/cli 注意: 1 ...

  9. 从0搭建vue后台管理项目到颈椎病康复指南(一)

    网上搜索了很久Vue项目搭建指南,并没有找到写的比较符合心意的,所以打算自己撸一个指南,集合众家之所长(不善于排版,有点逼死强迫症,如果觉得写的有问题,可以留言斧正,觉得写的太差的,可以留言哪里差, ...

随机推荐

  1. Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归

    Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 目录 Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 内容纲要 1.函数名的第一类对象及使用 2.f ...

  2. ValueError: X needs to contain only non-negative integers.

    for feature in short_cate_feature: enc.fit(data[feature].values.reshape(-1, 1)) base_train_csr = spa ...

  3. JavaWeb项目的目录结构解释(上):

    当我们在IDEA创建JavaWeb项目时,默认的一般会有下图的目录结构,你的开发就是按照下列结构进行开发的,那么我就逐一解释他们的意思: 首先是demo:这个是项目的名字,一般你是自己创建一个与自己项 ...

  4. JavaScript图形实例:平面镶嵌图案

    用形状.大小完全相同的一种或几种平面图形进行拼接,彼此之间不留空隙.不重叠地铺成一片,就叫做这几种图形的平面镶嵌. 1.用一种多边形实现的平面镶嵌图案 我们可以采用正三角形.正方形或正六边形实现平面镶 ...

  5. ffplay源码编译

    ffplay是ffmpeg源码中一个自带的开源播放器组件,支持本地视频文件的播放以及在线流媒体播放,很多商业播放器都是基于ffplay定制而来的.ffplay中的代码充分利用了ffmpeg中的函数库, ...

  6. 史上最全的 jmeter 获取 jdbc 数据使用的四种方法

    jmeter使用jdbc协议获取数据库中数据,很多人都会用,因为大家在做测试的时候,有时候需要大量的用户进行登录,获取需要数据库中真实的数据用于测试,所以常常会用jdbc来获取数据库数据. 那从数据库 ...

  7. Burp Suite Intruder Module - 攻击模块

    参考链接:https://portswigger.net/burp/documentation/desktop/tools/intruder/using 主要思路:在Intruder模块下设定Targ ...

  8. C++ RMQ问题

    RMQ问题是区间求最值问题,就是求一个数组第i个到第j个中最大数或最小数的算法. 这个算法有一些倍增思想,也有一些二分思想.具体是一个数组,m[i][j]表示从i开始往后数2的j次方个数的最大值或最小 ...

  9. 设计模式:Adapter模式

    目的:复用代码和兼容以前的代码 思想:提供一个中间层,做兼容 方法:“继承”的方式,“委托”的方式 继承关系图: 委托方式 继承方式 例子: //原来的打印 class Print { public: ...

  10. PHP常见的十个安全问题

    相对于其他几种语言来说, PHP 在 web 建站方面有更大的优势,即使是新手,也能很容易搭建一个网站出来.但这种优势也容易带来一些负面影响,因为很多的 PHP 教程没有涉及到安全方面的知识. 此帖子 ...