1.Skywalking5.x环境部署及使用1

简介
SkyWalking 创建与2015年,提供分布式追踪功能。从5.x开始,项目进化为一个完成功能的Application Performance Management系统。

 他被用于追踪、监控和诊断分布式系统,特别是使用微服务架构,云原生或容积技术。提供以下主要功能:

分布式追踪和上下文传输

应用、实例、服务性能指标分析

根源分析

应用拓扑分析

应用和服务依赖分析

慢服务检测

性能优化

特性
多语言探针或类库

Java自动探针,追踪和监控程序时,不需要修改源码。

社区提供的其他多语言探针 .NET Core ,Node.js

多种后端存储: ElasticSearch, H2

支持OpenTracing

Java自动探针支持和OpenTracing API协同工作

轻量级、完善功能的后端聚合和分析

现代化Web UI

日志集成

应用、实例和服务的告警

文档
gitlib中文文档地址:https://github.com/apache/incubator-skywalking/blob/v5.0.0-alpha/docs/README_ZH.md

官方网站:
http://skywalking.apache.org/

http://incubator.apache.org/projects/skywalking.html

github项目地址:
https://github.com/OpenSkywalking/skywalking-netcore

下载
http://skywalking.apache.org/downloads/

   可以从上述地址下载,也可以直接到github上下载,选择最新版本,运行环境:jdk7,jdk8,tomcat7,tomcat8(tomcat针对web项目),建议安装使用过程,多看github上的doc文档;

安装
在使用skywalking之前必须先安装后端存储,ES(Elasticsearch)或者 H2,此处以 ES为例。

1、安装es
新版本的skywalking使用ES作为存储,所以先安装es,注意版本

目前6系列都基本需要Es的6系列

目前5系列都可以需要Es的5系列

1.1、官网下载es的zip安装包,并解压
windows:
https://www.elastic.co/downloads/past-releases/elasticsearch-6-5-4

linux:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz

tar zxvf elasticsearch-

cd elasticsearch-/

1.2、修改config/elasticsearch.yml文件:
linux命令:vim config/elasticsearch.yml

设置 cluster.name: CollectorDBCluster。此名称需要和collector配置文件一致。

设置 node.name: CollectorDBCluster1,可以设置为任意名字,如Elasticsearch为集群模式,则每个节点名称需要不同。

增加如下配置:

ES监听的ip地址

network.host: 172.16.105.93

thread_pool.bulk.queue_size: 1000

文件最下头添加:

http.cors.enabled:true

http.cors.allow-origin:"*"

1.3、启动
进入bin目录 双击 elasticsearch.bat 启动。

linux启动:sh elasticsearch -d

2、安装skywalking
2.1、官网下载安装包
windows下载:

http://mirrors.hust.edu.cn/apache/incubator/skywalking/5.0.0-RC2/apache-skywalking-apm-incubating-5.0.0-RC2.zip

wget http://mirrors.tuna.tsinghua.edu.cn/apache/incubator/skywalking/5.0.0-RC2/apache-skywalking-apm-incubating-5.0.0-RC2.tar.gz

tar zxvf apache-skywalking-apm-incubating-5.0.0-RC2.tar.gz

cd apache-skywalking-apm-incubating/

然后部署,注意skywalking会使用(8080, 10800, 11800, 12800)端口,因此先排除端口占用情况。

2.2、配置agent
在agent\config目录中的agent.config内修改如下:

agent.application_code(service_name)=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目录中的application.yml内修改如下:localhost 全部换成 IP 地址

cluster:

# zk用于管理collector集群协作.

zookeeper:

# 多个zk连接地址用逗号分隔.

hostPort: localhost:2181

sessionTimeout: 100000

naming:

# Host and port used for agent config

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:

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的配置项保存在webapp/webapp.yml中,只需修改 IP 即可。

server.port 默认监听8080端口,修改该端口不能生效,则在skywalking-webapp.jar包application.yml中更改

collector.ribbon.listOfServers collector的访问服务名称(与config/application.yml中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就能看到页面了。

效果入图

 至此 elasticsearch 和 skywalking 安装配置完成,亲测好用。但是,我们的目的是自动探针功能,实现日志链路追踪,怎么实现呢?  请继续往下看。

应用

1、tomcat 的 bin 目录的 catalina.sh 文件开头添加配置:

linux

CATALINA_OPTS="$CATALINA_OPTS -Dskywalking.agent.application_code=tomcat_ydd_9239 -javaagent:/opt/lifl/skywalking-apm/agent/skywalking-agent.jar";export CATALINA_OPTS

windows 的eclipse tomcat启动参数中添加:

-Dskywalking.agent.application_code=tomcat_ydd -javaagent:E:\software\apache-skywalking-apm-incubating-5.0.0-RC2\apache-skywalking-apm-incubating\agent\skywalking-agent.jar

修改端口号,skywalking会使用(8080, 10800, 11800, 12800)端口,因此先排除端口占用情况。

你可能感兴趣的:(1.Skywalking5.x环境部署及使用1)