什么是 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提供的接口,获取对应的数据然后进行展示。
特性
- 多种监控手段,语言探针和service mesh
- 多语言自动探针,Java, .Net Core, PHP, NodeJS, Golang, LUA
- 轻量高效,不需要大数据
- 模块化,UI、存储、集群管理多种机制可选
- 支持告警
- 优秀的可视化方案
官网地址: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>&1mkdir -p /usr/local/skywalking
2、创建elasticsearch用户及设置系统文件句柄数
#添加es用户useradd espasswd es#设置文件打开句柄数vim /etc/security/.confes soft nofile 65536es hard nofile 65536es soft nproc 4096es hard nproc 4096#增大虚拟内存vim /etc/sysctl.confvm.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.gzcd 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 -dSkyWalking OAP started successfully!SkyWalking Web Application started successfully!
默认端口:
端口号 |
说明 |
8080 |
web端口 |
11800 |
gRPC追踪信息收集器端口 |
12800 |
rest追踪信息收集器端口 |
通过浏览器访问Skywalking的可视化页面了,访问地址:http://虚拟机IP地址:8080,如果出现下面的图,就代表安装成功了。

5、基于tomcat部署skywalking agent
#解压tomcattar -xf apache-tomcat-8.5.47.tar.gz#在tomcat的启动参数添加skywalking-agent.jar/usr/local/skywalking/apache-tomcat-8.5.47/bin/catalina.shCATALINA_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无法显示请求。
还没有人抢沙发呢~