Apache SkyWalking
什么是 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>&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无法显示请求。
如对您有帮助,支持下呗!
微信
支付宝