什么是 SkyWalking?

  • SkyWalking 是观察性分析平台和应用性能管理系统。
  • 提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案.
  • 支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针
  • 支持Envoy + Istio构建的Service Mesh

架构图:

整体架构包含如下三个组成部分:
1. 探针(agent)负责进行数据的收集,包含了Tracing和Metrics的数据,agent会被安装到服务所在的服务器上,以方便数据的获取。
2. 可观测性分析平台OAP(Observability Analysis Platform),接收探针发送的数据,并在内存中使用分析引擎(Analysis Core)进行数据的整合运算,然后将数据存储到对应的存储介质上,比如Elasticsearch、MySQL数据库、H2数据库等。同时OAP还使用查询引擎(Query Core)提供HTTP查询接口。
3. Skywalking提供单独的UI进行数据的查看,此时UI会调用OAP提供的接口,获取对应的数据然后进行展示。

特性

  1. 多种监控手段,语言探针和service mesh
  2. 多语言自动探针,Java, .Net Core, PHP, NodeJS, Golang, LUA
  3. 轻量高效,不需要大数据
  4. 模块化,UI、存储、集群管理多种机制可选
  5. 支持告警
  6. 优秀的可视化方案

官网地址:https://skywalking.apache.org/

环境搭建

软件版本:

apache-skywalking-apm-6.5.0.tar.gz
apache-tomcat-8.5.47.tar.gz
elasticsearch-6.4.0.tar.gz

1、设置时间同步并创建安装目录

yum install -y ntp
*/2 * * * * /usr/sbin/ntpdate 182.92.12.11;/sbin/hwclock -w > /dev/null #2>&1
mkdir -p /usr/local/skywalking

2、创建elasticsearch用户及设置系统文件句柄数

#添加es用户
useradd es
passwd es
#设置文件打开句柄数
vim /etc/security/.conf
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
#增大虚拟内存
vim /etc/sysctl.conf
vm.max_map_count=262144
#运用生效
system -p

3、部署elasticsearch,注意事项:https://github.com/apache/skywalking/blob/5.x/docs/cn/Deploy-backend-in-standalone-mode-CN.md#%E9%83%A8%E7%BD%B2elasticsearch

#安装java环境
yum install -y java
#解压
tar -xf elasticsearch-6.4.0.tar.gz
#授权
chown -R es.es elasticsearch-6.4.0
#切换到es用户
su - es
#后台启动es服务
cd /usr/local/skywalking/elasticsearch-6.4.0/bin/
./elasticsearch -d

curl请求返回正常:

4、安装skywalking

tar -xf apache-skywalking-apm-6.5.0.tar.gz
cd apache-skywalking-apm-bin/
#修改数据源
vim config/application.yml #打开elasticseatch注解
storage: elasticsearch:
nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
user: ${SW_ES_USER:""}
password: ${SW_ES_PASSWORD:""}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# Those data TTL settings will override the same settings in core module.
recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month ##注释h2数据源
# h2:
# driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
# url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
# user: ${SW_STORAGE_H2_USER:sa}
# metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000} #后台启动服务
/usr/local/skywalking/apache-skywalking-apm-bin/bin
./startup.sh -d
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!
 默认端口:

端口号

说明

8080

web端口

11800

gRPC追踪信息收集器端口

12800

rest追踪信息收集器端口

通过浏览器访问Skywalking的可视化页面了,访问地址:http://虚拟机IP地址:8080,如果出现下面的图,就代表安装成功了。

5、基于tomcat部署skywalking agent

#解压tomcat
tar -xf apache-tomcat-8.5.47.tar.gz
#在tomcat的启动参数添加skywalking-agent.jar
/usr/local/skywalking/apache-tomcat-8.5.47/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar";export CATALINA_OPTS
#启动tomcat服务
./startup.sh

6、首先要访问tomcat服务,这时我们打开一个新的无痕窗口(fuck。。。因为缓存的问题我整整花了一天时间卡在上面,当前服务一直不显示。)看到skywalking UI。

后记:

1、系统时间同步,不然也会导致UI无法显示请求。

 

Apache SkyWalking的更多相关文章

  1. Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控

    在大型网站系统设计中,随着分布式架构,特别是微服务架构的流行,我们将系统解耦成更小的单元,通过不断的添加新的.小的模块或者重用已经有的模块来构建复杂的系统.随着模块的不断增多,一次请求可能会涉及到十几 ...

  2. Apache SkyWalking的架构设计【译文】

    Apache SkyWalking提供了一个功能强大并且很轻量级的后端.在此,将介绍为什么采用以下方式来设计它,以及它又是如何工作的. 架构图 对于APM而言,agent或SDKs仅是如何使用libs ...

  3. Apache SkyWalking 告警配置指南

    Apache SkyWalking Apache SkyWalking是分布式系统的应用程序性能监视工具(Application Performance Management,APM),专为微服务.云 ...

  4. 图解 Apache SkyWalking UI 的使用

    Apache SkyWalking的UI界面主要分为以下几个区域: 功能选择区:这里列出了主要的UI功能,包括仪表盘.拓扑图.追踪.性能刨析.告警等功能 重新加载区:控制重新加载机制,包括定期重新加载 ...

  5. 安装-apache skywalking (java 应用性能监控)

    官网:http://skywalking.apache.org/ 服务器:10.30.31.28 centos 7 jdk 1.8.x ES 5.x 5.0.0-bet a2版本 . http://s ...

  6. 一篇文章快速搞懂 Apache SkyWalking 的 OAL

    OAL简介 在流模式(Streaming mode)下,SkyWalking 提供了 观测分析语言(Observability Analysis Language,OAL) 来分析流入的数据. OAL ...

  7. 详解 Apache SkyWalking 跨进程传播协议

    简介 SkyWalking 跨进程传播协议是用于上下文的传播,本文介绍的版本是3.0,也被称为为sw8协议. Header项 Header应该是上下文传播的最低要求. Header名称:sw8. He ...

  8. 速查列表:Apache SkyWalking OAL 的 域(Scopes)

    OAL简介 在流模式(Streaming mode)下,SkyWalking 提供了 观测分析语言(Observability Analysis Language,OAL) 来分析流入的数据. OAL ...

  9. 详解 Apache SkyWalking OAP 的分布式计算

    SkyWalking的OAP(Observability Analysis Platform,观测分析平台)是一个用于链路数据的分布式计算系统. 因为它巧妙的设计,使得在链路数据计算和聚合过程中,不需 ...

随机推荐

  1. jenkins-gitlab-harbor-ceph基于Kubernetes的CI/CD运用(一)

    注:这部分的学习还是要靠自己多点点 多尝试尝试 这部分19年3月份我是玩的很溜的,一年没用,基本忘光光了. 学习要温故而知新! 流程拓扑图 前提准备 部署应用服务 部署kubernetes 集群:ht ...

  2. python爬取某站新闻,并分析最近新闻关键词

    在爬取某站时并做简单分析时,遇到如下问题和大家分享,避免犯错: 一丶网站的path为 /info/1013/13930.htm ,其中13930为不同新闻的 ID 值,但是这个数虽然为升序,但是没有任 ...

  3. SecureCRT的主题配置

    SecureCRT是用来远程连接服务器终端的常用软件,由于其本身的主题十分难看,故此经过一番查找,确定了自己喜欢的主题配置,下面是记录自己配置的过程. 修改主题样式 ​ SecureCRT修改主题分两 ...

  4. 使用Keras进行深度学习:(七)GRU讲解及实践

    ####欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 介绍 GRU(Gated Recurrent Unit) ...

  5. CodeForces - 1006F (深搜从两端向中间搜,省时)

    题意:输入n,m,k,给出一个n*m的图,里面有权值,从1,1一路异或到n,m,只能向右或向下走,等于k有多少种路径. 思路:一开始就是直接暴力写个深搜,稳稳的超时,分析一下时间复杂度.每个点有两个方 ...

  6. Jmeter接口测试之参数传递(十三)

    在接口自动化测试中,经常会遇到的一种场景就是参数的场景,比如在用户列表中获取所有的用户列表,然后获取到某一个用户的ID,查看该用户的详细信息.首先在这里理清思路,它的流程是,首先获取到数据,然后在Jm ...

  7. Arcgis License的安装及破解

    1.双击LicenseManager安装目录下的Setup.exe. 2.点击“Next”. 3.选择“I accept the license agreement”,点击“Next”. 4.点击“C ...

  8. 【Pytest01】全网最全最新的Pytest框架快速入门

    一.Pytest简介pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,还可以用来做seleni ...

  9. CSS基础总结 1

    一.什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets),是一种用来表现 HTML 文档样式的语言,样式定义如何显示 HTML 元素,是能够真正做到网页表现与结构分 ...

  10. 武林高手?敏捷开发,唯velocity取胜

    去年学习软件工程教材,初识敏捷开发.目前所在的团队,也是使用敏捷开发方式.今天读了这篇文章,对于这段时间的效率有所警醒.其次,个人认同文章中的用户故事,结对编程思想. 文章援引:http://gitb ...