分布式⽇志链路追踪:skywalking+elasticsearch,亲测好⽤相信⼤家经过其他途径已经了解了skywalking的⽤途了,在此处再简单介绍⼀下。已经了解⽤途的朋友可以跳过。
简介
SkyWalking 创建与2015年,提供分布式追踪功能。从5.x开始,项⽬进化为⼀个完成功能的系统。
他被⽤于追踪、监控和诊断分布式系统,特别是使⽤微服务架构,云原⽣或容积技术。提供以下主要功能:
分布式追踪和上下⽂传输
应⽤、实例、服务性能指标分析
根源分析
应⽤拓扑分析
应⽤和服务依赖分析
慢服务检测
性能优化
特性
多语⾔探针或类库
Java⾃动探针,追踪和监控程序时,不需要修改源码。
社区提供的其他多语⾔探针
多种后端存储: ElasticSearch, H2
⽀持
Java⾃动探针⽀持和OpenTracing API协同⼯作
轻量级、完善功能的后端聚合和分析
现代化Web UI
⽇志集成
应⽤、实例和服务的告警
⽂档
gitlib中⽂⽂档地址:
官⽅⽹站:
github项⽬地址:
下载
可以从上述地址下载,也可以直接到github上下载,选择最新版本,运⾏环境:jdk7,jdk8,tomcat7,tomcat8(tomcat针对web项⽬),建议安装使⽤过程,多看github上的doc⽂档;
安装
在使⽤skywalking之前必须先安装后端存储,ES(Elasticsearch)或者 H2,此处以 ES为例。
1、安装es
新版本的skywalking使⽤ES作为存储,所以先安装es,注意6.X版本不⾏,安装5.6.8:
1.1、官⽹下载es的zip安装包,并解压
windows:下载以后放到D盘
linux:
wget /downloads/elasticsearch/elasticsearch-5.6.
tar zxvf elasticsearch-5.6.
cd elasticsearch-5.6.8/
1.2、修改l⽂件:
linux命令:vim l
设置 cluster.name: CollectorDBCluster。此名称需要和collector配置⽂件⼀致。
设置 node.name: CollectorDBCluster1,可以设置为任意名字,如Elasticsearch为集模式,则每个节点名称需要不同。
增加如下配置:
# ES监听的ip地址
network.host: 172.16.105.93
thread_pool.bulk.queue_size: 1000
⽂件最下头添加:
1.3、启动
进⼊bin⽬录 双击 elasticsearch.bat 启动。
linux启动:sh elasticsearch -d
1.4、测试验证,在浏览器打开地址,如下图所⽰即安装启动成功:
2、安装skywalking
2.1、官⽹下载安装包
windows下载:
wget mirrors.tuna.tsinghua.edu/apache/incubator/skywalking/5.0.0-RC2/apache-skywalking-apm-incubating-5.0. tar zxvf apache-skywalking-apm-incubating-5.0.
cd apache-skywalking-apm-incubating/
然后部署,注意skywalking会使⽤(8080, 10800, 11800, 12800)端⼝,因此先排除端⼝占⽤情况。
2.2、配置agent
在agent\config⽬录中的fig内修改如下:
agent.application_code=CollectorDBCluster #对应elasticsearch中的clusterName,表⽰数据存储的集合名称
collector.servers=172.16.105.93:10800 #对应collector配置中的 naming
2.3、collector安装和配置
collector连接配置的5种类型⽅式
naming :agent使⽤HTTP协议连接collectors
agent_gRPC :agent使⽤gRPC协议连接collectors
remote :Collector使⽤gRPC协议连接collector
ui :使⽤HTTP协议连接collector,(⼤多数情况不需要修改)
agent_jetty:agent使⽤HTTP协议连接collectors(可选连接)
cluster:zookeeper地址
在config⽬录中的l内修改如下:localhost 全部换成 IP 地址
cluster:
# zk⽤于管理collector集协作.
zookeeper:
# 多个zk连接地址⽤逗号分隔.
hostPort: localhost:2181
sessionTimeout: 100000
naming:
# Host and port used for agent config
jetty:
jetty:
# 配置agent发现collector集,host必须要系统真实⽹络ip地址. agent --(HTTP)--> collector
host: localhost
port: 10800
contextPath: /
remote:
gRPC:
# 配置collector节点在集中相互通信,host必须要系统真实⽹络ip地址. collectorN --(gRPC) --> collectorM
host: localhost
port: 11800
agent_gRPC:
gRPC:
# 配置agent上传(链路跟踪和指标)数据到collector,host必须要系统真实⽹络ip地址. agent--(gRPC)--> collector host: localhost
port: 11800
agent_jetty:eclipse哪个版本好
jetty:
# 配置agent上传(链路跟踪和指标)数据到collector,host必须要系统真实⽹络ip地址. agent--(HTTP)--> collector # SkyWalking native Java/.Net/node.js agents don't use this.
# Open this for other implementor.
host: localhost
port: 12800
contextPath: /
analysis_register:
default:
analysis_jvm:
default:
analysis_segment_parser:
default:
bufferFilePath: ../buffer/
bufferOffsetMaxFileSize: 10M
bufferSegmentMaxFileSize: 500M
ui:
jetty:
# 配置UI访问collector,host必须要系统真实⽹络ip地址.
host: localhost
port: 12800
contextPath: /
# 配置Elasticsearch 集连接信息
storage:
elasticsearch:
clusterName: CollectorDBCluster
clusterTransportSniffer: true
clusterNodes: localhost:9300
indexShardsNumber: 2
indexReplicasNumber: 0
highPerformanceMode: true
# 设置统计指标数据的失效时间,当指标数据失效时系统将数据⾃动删除.
traceDataTTL: 90 # 单位为分
minuteMetricDataTTL: 45 # 单位为分
hourMetricDataTTL: 36 # 单位为⼩时
dayMetricDataTTL: 45 # 单位为天
monthMetricDataTTL: 18 # 单位为⽉
configuration:
default:
# namespace: xxxxx
# 告警阀值
applicationApdexThreshold: 2000
serviceErrorRateThreshold: 10.00
serviceAverageResponseTimeThreshold: 2000
instanceErrorRateThreshold: 10.00
instanceAverageResponseTimeThreshold: 2000
applicationErrorRateThreshold: 10.00
applicationAverageResponseTimeThreshold: 2000
# 热⼒图配置,修改配置后需要删除热⼒指标统计表,由系统重建
# 热⼒图配置,修改配置后需要删除热⼒指标统计表,由系统重建
thermodynamicResponseTimeStep: 50
thermodynamicCountOfResponseTimeSteps: 40
2.4、配置 UI
UI的配置项保存在l中,只需修改 IP 即可。
server.port 默认监听8080端⼝,修改该端⼝不能⽣效,则在skywalking-webapp.jar包l中更改
collector.ribbon.listOfServers collector的访问服务名称(与l中naming.jetty配置保持相同) 且若是多个collector 服务名称⽤','分隔
collector.path Collector 查询uri地址. 默认是/graphql
collector.ribbon.ReadTimeout 查询超时时间,默认是10秒
security.user.* 登录⽤户名/密码. 默认是 admin/admin
2.5、启动
使⽤ bin/startup.sh同时启动collector和UI,若不使⽤1启动,需要单独启动,参考2,3
单独启动collector,运⾏ bin/collectorService.sh
单独启动UI,运⾏ bin/webappService.sh
windows⽤户为.bat⽂件。⼀切正常的话,访问172.16.105.93:8080就能看到页⾯了。
效果⼊图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论