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不是核数越高越好,性价比才是关键. 经常遇到很多的企业级客 ...
随机推荐
- TextView和EditText中添加图片(ImageSpan)
编辑框中加图片,以前一直以为很复杂,后来发现android有些类已经很好的实现了这些功能. 代码如下: [java] view plaincopy mSubjectDetailView = (Text ...
- js延迟加载
setTimeout('yourFunction()',5000); 5秒后执行yourFunction(),只执行一次 setInterval('yourFunction()',5000); 每隔5 ...
- poj 3390 Print Words in Lines 动态规划
意甲冠军: 给n每行长度和字符可放置最大数量字m,每一行产生值至(m-x)^2,x是一个字符上线人数(包含空话之间格).为了让所有的完成,产生的话值最小和. 分析: 动态规划非常重要的就是状态的定义, ...
- HTML5 随手记(4)
新中国 chrome 不支持 -webkit-text-size-adjust 设定.可以小于 12px.为了尺寸小于 12px 和清晰的显示效果,现在无解(scale 不清楚) 版权声明:本文博客原 ...
- 转:PyQt4学习资料汇总 from coderzh
一个月前研究了下PyQt4,感觉比较不错.相比wxpython,界面美观了很多,并且将界面设计与代码逻辑很好的分离了开来.关于PyQt4的资料也不少,这里我将我找到的资料汇总一下,以防自己以后忘得一干 ...
- Android发展_备份短信
短信备份的原理 短信备份的原理.是用内容提供者读取短信,然后保存. public class SmsBackupUtils { // 回调接口 public interface SmsBacku ...
- SQList3 and SQL入门学习笔记
SQL 这是一个标准的计算机语言进行访问和操作数据库. 什么是 SQL? · SQL 指结构化查询语言 · SQL 使我们有能力訪问数据库 · SQL 是一种 AN ...
- python短信轰炸机版本smsbomb----------部分(post)
用一些用手机号注冊且须要发送验证码的站点的漏洞.能够向不论什么人的手机号发送短信,当然短信内容,我们无法控制.所以主要工作还是寻找这种站点.然后利用Fiddler或者HttpWatch分析请求.使用p ...
- android 玩愤怒的小鸟等游戏的时候全屏TP失败
1.tp driver的tpd_down()和tpd_up()函数不需要进行报告id号码.自己主动顶级赛: 2.tpd_up()功能只需要报告BTN_TOUCH和mt_sync信息,其他信息未报告,如 ...
- Servlet 3.1实践
Servlet 3.1 新特性详解 参考: IBM developerworks: Servlet 3.0 新特性详解 开涛的博客: Servlet3.1规范(最终版) 关键特性 Asynchroni ...