SkyWorking基础:6.2版本安装部署
就在今天,SkyWorking发布了6.2版本。
概述
什么是SkyWorking
SkyWalking是观察性分析平台和应用性能管理系统。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 Elasticsearch、MySQL、TiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。
Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent 、Zipkin v1/v2 、Istio 勘测、Envoy 度量等数据格式。
特性
- 多种监控手段,语言探针和service mesh
- 多语言自动探针,Java,.NET Core和Node.JS
- 轻量高效,不需要大数据
- 模块化,UI、存储、集群管理多种机制可选
- 支持告警
- 优秀的可视化方案
为什么是SkyWorking
2019 年 4 月 24 日(北美时间),Apache 软件基金会宣布,Apache SkyWalking 毕业,成为 Apache 软件基金会顶级项目。

Skyworking体验地址: link
6.2版本更新内容
Project
- ElasticSearch implementation performance improved, and CHANGED totally. Must delete all existing indexes to do upgrade.
- CI and Integration tests provided by ASF INFRA.
- Plan to enhance tests including e2e, plugin tests in all pull requests, powered by ASF INFRA.
- DataCarrier queue write index controller performance improvement. 3-5 times quicker than before.
- Add windows compile support in CI.
Java Agent
- Support collect SQL parameter in MySQL plugin.[Optional]
- Support SolrJ plugin.
- Support RESTEasy plugin.
- Support Spring Gateway plugin for 2.1.x
- TracingContext performance improvement.
- Support Apache ShardingSphere(incubating) plugin.
- Support
span#errorin application toolkit. - Fix OOM by empty stack of exception.
- FIx wrong cause exception of stack in span log.
- Fix unclear the running context in SpringMVC plugin.
- Fix CPU usage accessor calculation issue.
- Fix SpringMVC plugin span not stop bug when doing HTTP forward.
- Fix lettuce plugin async commend bug and NPE.
- Fix webflux plugin cast exception.
- [CI]Support
importcheck.
Backend
- Support time serious ElasticSearch storage.
- Provide dynamic configuration module and implementation. Slow SQL threshold supports dynamic config today.
- Dynamic Configuration module provide multiple implementations, DCS(gRPC based), Zookeeper, Apollo, Nacos.
- Provide P99/95/90/75/50 charts in topology edge.
- New topology query protocol and implementation.
- Support Envoy ALS in Service Mesh scenario.
- Support Nacos cluster management.
- Enhance metric exporter. Run in increment and total modes.
- Fix module provider is loaded repeatedly.
- Change TOP slow SQL storage in ES to Text from Keyword, as too long text issue.
- Fix H2TopologyQuery tiny bug.
- Fix H2 log query bug.(No feature provided yet)
- Filtering pods not in 'Running' phase in mesh scenario.
- Fix query alarm bug in MySQL and H2 storage.
- Codes refactor.
UI
- Fix some
ID is nullquery(s). - Page refactor, especially time-picker, more friendly.
- Login removed.
- Trace timestamp visualization issue fixed.
- Provide P99/95/90/75/50 charts in topology edge.
- Change all P99/95/90/75/50 charts style. More readable.
- Fix 404 in trace page.
Document
- Go2Sky project has been donated to SkyAPM, change document link.
- Add FAQ for ElasticSearch storage, and links from document.
- Add FAQ fro WebSphere installation.
- Add several open users.
- Add alarm webhook document.
环境准备
- 系统:CentOS 7.6
- jdk:1.8
- 存储:Elasticsearch 6.8.1
关闭SElinux和防火墙
systemctl stop firewalld
systemctl disable firewalld
sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/sysconfig/selinux
setenforce 0
修改最大打开进程数和文件句柄数
# 查看当前服务器最大打开进程数和文件句柄数
[root@test-01 ~]#ulimit -a|egrep 'open files|max user'
open files (-n) 1024
max user processes (-u) 7191
# 修改/etc/systemd/system.conf文件中的相关参数,与CentOS6修改的方式略有不同
[root@test-01 ~]#sed -i '/^#DefaultLimitNOFILE=/aDefaultLimitNOFILE=65535' /etc/systemd/system.conf
[root@test-01 ~]#sed -i '/^#DefaultLimitNPROC=/aDefaultLimitNPROC=65535' /etc/systemd/system.conf
[root@test-01 ~]#sed -i 's#nproc 4096#nproc 65535#' /etc/security/limits.d/20-nproc.conf
# 需要重启才能生效
[root@test-01 ~]#reboot
安装jdk
[root@test-01 ~]# yum install java-1.8.0-openjdk
[root@test-01 ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
安装Elasticsearch
mkdir -p /data/elasticsearch/logs
# 下载rpm安装包
wget -P /opt/downloads -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.1.rpm
# 安装
rpm -ivh /opt/downloads/elasticsearch-6.8.1.rpm
# 授权
chown -R elasticsearch.elasticsearch /data/elasticsearch
修改配置/etc/elasticsearch/elasticsearch.yml
path.data: /data/elasticsearch
path.logs: /data/elasticsearch/logs
network.host: 0.0.0.0
启动
systemctl start elasticsearch
部署SkyWorking
# 下载安装包
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads https://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/6.2.0/apache-skywalking-apm-6.2.0.tar.gz
# 压缩
tar zxf /opt/downloads/apache-skywalking-apm-6.2.0.tar.gz -C /usr/local
mv apache-skywalking-apm-bin skyworking
# 启动
cd /usr/local/skyworking/bin
./startup.sh
确保8080,10800,11800,12800 端口不被占用,若有冲突,可以在
webapp/webapp.yml中修改
打开UI,地址为http://服务器IP:8080

配置 java agent
参考地址:java agent
- 在安装包中,找到
agent的路径 - 在
config/agent.config,设置agent.service_name - 在
config/agent.config,设置collector.backend_service,默认连接到127.0.0.1:11800 - 在
-jar前,将-javaagent:/path/to/skywalking-package/agent/skywalking-agent.jar添加到表达式
agent目录下的文件和目录
+-- agent
+-- activations
apm-toolkit-log4j-1.x-activation.jar
apm-toolkit-log4j-2.x-activation.jar
apm-toolkit-logback-1.x-activation.jar
...
+-- config
agent.config
+-- plugins
apm-dubbo-plugin.jar
apm-feign-default-http-9.x.jar
apm-httpClient-4.x-plugin.jar
.....
skywalking-agent.jar
支持的中间件
Install javaagent FAQs
- Linux Tomcat 7, Tomcat 8
Change the first line oftomcat/bin/catalina.sh.
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; export CATALINA_OPTS
- Windows Tomcat 7, Tomcat 8
Change the first line oftomcat/bin/catalina.bat.
set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"
- JAR file
Add-javaagentargument to command line in which you start your app. eg:
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar
Agent配置属性
以下为agent/config/agent.config的配置属性列表
| property key | Description | Default |
|---|---|---|
agent.namespace |
Namespace isolates headers in cross process propagation. The HEADER name will be HeaderName:Namespace. |
Not set |
agent.service_name |
Application(5.x)/Service(6.x) code is showed in sky-walking-ui. Suggestion: set a unique name for each service, service instance nodes share the same code | Your_ApplicationName |
agent.sample_n_per_3_secs |
Negative or zero means off, by default.SAMPLE_N_PER_3_SECS means sampling N TraceSegment in 3 seconds tops. | Not set |
agent.authentication |
Authentication active is based on backend setting, see application.yml for more details.For most scenarios, this needs backend extensions, only basic match auth provided in default implementation. | Not set |
agent.span_limit_per_segment |
The max number of spans in a single segment. Through this config item, skywalking keep your application memory cost estimated. | Not set |
agent.ignore_suffix |
If the operation name of the first span is included in this set, this segment should be ignored. | Not set |
agent.is_open_debugging_class |
If true, skywalking agent will save all instrumented classes files in /debugging folder.Skywalking team may ask for these files in order to resolve compatible problem. |
Not set |
agent.active_v2_header |
Active V2 header in default. | true |
agent.instance_uuid |
Instance uuid is the identity of an instance, skywalking treat same instance uuid as one instance.if empty, skywalking agent will generate an 32-bit uuid. | "" |
agent.cause_exception_depth |
How depth the agent goes, when log all cause exceptions. | 5 |
agent.active_v1_header |
Deactive V1 header in default. | false |
collector.grpc_channel_check_interval |
grpc channel status check interval. | 30 |
collector.app_and_service_register_check_interval |
application and service registry check interval. | 3 |
collector.backend_service |
Collector skywalking trace receiver service addresses. | 127.0.0.1:11800 |
logging.level |
The log level. Default is debug. | DEBUG |
logging.file_name |
Log file name. | skywalking-api.log |
logging.dir |
Log files directory. Default is blank string, means, use "system.out" to output logs. | "" |
logging.max_file_size |
The max size of log file. If the size is bigger than this, archive the current file, and write into a new file. | 300 * 1024 * 1024 |
jvm.buffer_size |
The buffer size of collected JVM info. | 60 * 10 |
buffer.channel_size |
The buffer channel size. | 5 |
buffer.buffer_size |
The buffer size. | 300 |
dictionary.service_code_buffer_size |
The buffer size of application codes and peer | 10 * 10000 |
dictionary.endpoint_name_buffer_size |
The buffer size of endpoint names and peer | 1000 * 10000 |
plugin.mongodb.trace_param |
If true, trace all the parameters in MongoDB access, default is false. Only trace the operation, not include parameters. | false |
plugin.elasticsearch.trace_dsl |
If true, trace all the DSL(Domain Specific Language) in ElasticSearch access, default is false. | false |
plugin.springmvc.use_qualified_name_as_endpoint_name |
If true, the fully qualified method name will be used as the endpoint name instead of the request URL, default is false. | false |
plugin.toolit.use_qualified_name_as_operation_name |
If true, the fully qualified method name will be used as the operation name instead of the given operation name, default is false. | false |
plugin.mysql.trace_sql_parameters |
If set to true, the parameters of the sql (typically java.sql.PreparedStatement) would be collected. |
false |
plugin.mysql.sql_parameters_max_length |
If set to positive number, the db.sql.parameters would be truncated to this length, otherwise it would be completely saved, which may cause performance problem. |
512 |
plugin.solrj.trace_statement |
If true, trace all the query parameters(include deleteByIds and deleteByQuery) in Solr query request, default is false. | false |
plugin.solrj.trace_ops_params |
If true, trace all the operation parameters in Solr request, default is false. | false |
关于插件
若需要使用第三方插件,可以将插件放入 /plugins路径下。
插件开发指南
测试
SkyWorking基础:6.2版本安装部署的更多相关文章
- OEMCC 13.2 集群版本安装部署
之前测试部署过OEMCC 13.2单机,具体可参考之前随笔: OEMCC 13.2 安装部署 当时环境:两台主机,系统RHEL 6.5,分别部署OMS和OMR: OMS,也就是OEMCC的服务端 IP ...
- ELK7.11.2版本安装部署及ElastAlert告警相关配置
文档开篇,我还是要说一遍,虽然我在文档内容中也会说好多遍,但是希望大家不要嫌我墨迹: 请多看官方文档,请多看命令行报错信息,请多看日志信息,很多时候它们比百度.比必应.比谷歌有用: 请不要嫌麻烦,打开 ...
- Solr版本安装部署指南
一.依赖包 1. JDK 1.6以上 2. solr-4.3.0.tgz 3. Tomcat或者jetty(注意,solr包中本身就含有jetty的启动相关内容):apache-tomcat-7 ...
- ELK6.3版本安装部署
一.Elasticsearch 安装 1.部署系统以及环境准备 cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) uname - ...
- Lepus监控之安装部署
PHP和Python都是跨平台的语言,所以理论上系统应该可以支持在不同的平台上运行.但是由于时间和精力以及资源有限,目前天兔系统只测试完善了Centos/RedHat系统的支持.我们目前提供的技术支持 ...
- 安装部署Apache Hadoop (本地模式和伪分布式)
本节内容: Hadoop版本 安装部署Hadoop 一.Hadoop版本 1. Hadoop版本种类 目前Hadoop发行版非常多,有华为发行版.Intel发行版.Cloudera发行版(CDH)等, ...
- Redis (一)Redis简介、安装部署
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. 既然是key-value,对于Java开发来说更熟悉的是Map集合.那就有问题了,有M ...
- Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)
Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本) Hive 安装依赖 Hadoop 的集群,它是运行在 Hadoop 的基础上. 所以在安装 Hive 之 ...
- 基于HDP版本的YDB安装部署(转)
第三章 YDB依赖环境准备 一.硬件环境 硬件如何搭配,能做到比较高的性价比,不存在短板.合理的硬件搭配,对系统的稳定性也很关键. 1.CPU不是核数越高越好,性价比才是关键. 经常遇到很多的企业级客 ...
随机推荐
- Java--ConcurrentHashMap原理分析
一.背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap. 效率低下的H ...
- NS2网络模拟(5)-homework01.tcl
1: #NS2_有线部分\homework01.tcl 2: 3: #创建两个结点,深圳到北京的TCP连接,图形将数据显示出来,计算吞吐率,画图分析 4: #tcp上层用ftp 5: #udp上层用c ...
- Java异常处理错误
Java异常处理错误 研究发现,在编译阶段的最佳时机错误,序之前.然而,编译期间并不能找出全部的错误,余下的问题必须在执行阶段解决.这就须要错误源通过某种方式把适当的信息传给某个接收者,该接收者知道怎 ...
- crawler_正则表达式零宽断言
在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了. (?=exp):零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp. ...
- JDK10下安装Eclipse photon 提示Java for Windows Missing
这两天把服务器清理了一下,操作系统也重新装了,没办法啊,就是喜欢倒腾...在重新安装软件的时候,我又到各个官网去看了软件的最新版本,其中就去了JDK和Eclipse的官网溜达了一圈. 很久没有更新过自 ...
- Installation and Configuration Guide
Harbor can be installed by one of three approaches: Online installer: The installer downloads Harbor ...
- 线程安全ConcurrentBag
ConcurrentBag并行,不保证顺序,线程安全 public static void ConcurrentBagWithPallel() { ConcurrentBag<int> l ...
- WPF ContextMenu 在MVVM模式中绑定 Command及使用CommandParameter传参
原文:WPF ContextMenu 在MVVM模式中绑定 Command及使用CommandParameter传参 ContextMenu无论定义在.cs或.xaml文件中,都不继承父级的DataC ...
- teamcity build web project arguments
/p:Configuration=%system.Configuration% => Release /p:DeployOnBuild=%system.DeployOnBuild% => ...
- Nancy Web框架
原文 Nancy Web框架 Nancy框架 一.创建第一个Nancy应用 二.探索Nancy的module 1. 模块能够在全局被发现 2. 使用模块为路由创建一个根 三.定义路由 1. 方法 2. ...