image

Skywalking中OAP的概念:OAP(Observability Analysis Platform)可观测性分析平台是一个新的概念,始于skywalking6.X。OAP可以从多种数据源接收数据,分为两组:Tracing和Metrics。从6.2.0开始因为登录认证的安全漏洞问题,移除了登录认证。

1、下载

2、安装和配置

下载完成以后,解压后进入/ apache-skywalking-apm-bin文件夹,得到如下图所示文件夹列表:

image

进入config文件夹修改application.yml文件,core.default模块为默认配置,一般不需要修改,如果要修改IP或者端口,则直接修改对应的IP地址和端口即可,修改restHost和restPort后也需要同步修改/webapp文件夹下webapp.yml文件中collector.ribbon.listOfServers的配置。后端接收数据监听端口有restHost:restPort用于http rest APIs,gRPCHost:gRPCPort用于gRPC APIs。UI监听端口8080(默认)和请求restHost:restPort用于GraphQL查询。

储存数据库注释H2,放开ElasticSearch配置,如下图所示:

image

其中,nameSpace为elasticsearch的集群名称cluster.name,clusterNodes处添加elasticsearch的【ip:端口】,多个es集群节点以逗号分隔。ElasticSearch需要6.3.2或更高版本,官方文档写的不高于7.0.0,未验证(Required ElasticSearch 6.3.2 or higher, excepted 7.0.0 or higher)。官方文档建议ES增加如下配置:

thread_pool.index.queue_size: 1000 # Only suitable for ElasticSearch 6

thread_pool.write.queue_size: 1000 # Suitable for ElasticSearch 6 and 7

index.max_result_window: 1000000

agent配置:进入/agent/config文件夹打开agent.config文件,设置agent.service_name,设置collector.backend_service ,默认连接到 127.0.0.1:11800;

UI界面访问端口设置:修改/webapp/webapp.yml文件中的server.port端口即可。

SkyWalking支持对以下内容进行动态配置:

image

默认动态配置是关闭的,在/config/application.yml中configuration处配置。已有的实现有Apollo、Nacos、Zookeeper、Consul。其中nacos配置如下,此处的config key为nacos中的dataId,namespace即命名空间对应的id,覆盖yml配置则属性文件后缀名选yaml,对于receiver-trace.default.slowDBAccessThreshold,文件后缀选text:

configuration:

nacos:

# Nacos Server Host

serverAddr: 127.0.0.1

# Nacos Server Port

port: 8848

# Nacos Configuration Group

group: 'skywalking'

# Nacos Configuration namespace

namespace: ''

# Unit seconds, sync period. Default fetch every 60 seconds.

period : 60

# the name of current cluster, set the name if you want to upstream system known.

clusterName: "default"

3、应用中探针接入

>>基于tomcat的服务

在tomcat的bin目录下,查看是否存在setenv.bat文件(linux为setenv.sh),不存在创建,并添加一行命令,set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar",linux下添加以下命令CATALINA_OPTS="$CATALINA_OPTS-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; exportCATALINA_OPTS

>>基于jar file的服务

在启动应用程序的命令行添加-javaagent参数,并确保在-jar参数之前添加它。命令如下:java -javaagent: /path/to/skywalking-agent/skywalking-agent.jar-jar yourApp.jar

idea中配置:打开run->Edit Configurations面板,在VM options处输入-javaagent:/path/to/skywalking-agent/skywalking-agent.jar命令,如下图:

image

以上三种配置,如果需要指定服务名称,则增加

-Dskywalking.agent.service_name=application_name命令。

image

image

4、skywalking初始化及启动

当集群部署SkyWalking的时候多实例同时启动会存在并发初始化问题,所以在启动之前运行一个单实例执行初始化动作,通过执行oapServiceInit.sh/oapServiceInit.bat进行初始化,可初始化ES索引,MYSQL,TIDB以及一些初始化数据,执行成功看到如下日志:

2018-11-09 23:04:39,465 -org.apache.skywalking.oap.server.starter.OAPServerStartUp -2214 [main] INFO []- OAP starts up in init mode successfully, exit now...。

/bin/oapService.bat:如果未进行初始化会进行初始化操作,然后开启监听提供服务。

/bin/oapServiceInit.bat:进行初始化操作,然后会退出。

/bin/oapServiceNoInit.bat:不进行初始化启动,会等待es索引、或者mysql、TIDB表存在,然后开始监听并提供服务。意味着oap服务器等待其他oap服务器进行初始化。

/bin/webappService.bat:启动UI服务。

/bin/startup.bat:同时启动oapService.bat和webappService.bat。

5、界面访问

启动ElasticSearch,进入/bin文件夹运行startup.bat文件启动skywalking,没问题的话访问http://localhost:8080即可看到skywalking控制台,如下图所示即启动成功:

image

6、日志中traceId输出

org.apache.skywalking

apm-toolkit-log4j-2.x

{project.release.version}

org.apache.skywalking

apm-toolkit-logback-1.x

{project.release.version}

手动追踪traceId,首先引入如下依赖:

org.apache.skywalking

apm-toolkit-trace

${skywalking.version}

然后在想要追踪的方法上增加@Trace注解,该方法内部即可通过TraceContext.traceId()方法获取traceId,亦可通过ActiveSpan.tag("my_tag","my_value");增加标签标记。

7、集群配置

/config/application.yml文件下cluster处配置,默认为cluster.standalone单机模式。可配置集群有zookeeper、kubernetes、consul、nacos。配置集群模式时注释掉standalone模式。集群模式下,各个实例的采样率建议设置一致,否则可能会导致数据丢失风险。采样率配置在/config/application.yml中,receiver-trace.Default.sampleRate。agent配置:/agent/config/agent.config文件中的collector.backend_service多个节点以英文逗号分隔。示例如下:collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800,127.0.0.1:11801}

webapp配置:/webapp/webapp.yml文件中collector.ribbon.listOfServers多个逗号分隔,示例:127.0.0.1:12800,127.0.0.1:12801

以nacos集群为例:

启动nacos以后,SkyWalking的webapp服务启动一个即可,collector服务分别执行每个节点的/bin/oapService.bat启动。成功启动以后就会在nacos服务列表看到collector启动的服务实例,如下图:

image

8、告警配置

Alarm模块由两部分组成:

Alarm rules: 定义了如何触发度量警告,应该考虑什么条件。

Webhooks:警告被触发以后web服务的端点列表中哪一个端点应该被调用。

Alarm rule由以下key组成:

Rule name: 在告警信息中显示的唯一名称。必须以_rule结尾。

Metrics name: 是oal脚本中的度量名。只支持long,double和int类型。

Include names:以下实体名称包含在此规则中,如服务名、端点名。

Exclude names:以下实体名称不包含在此规则中,如服务名、端点名。

Threshold:阈值。

OP: 操作符支持 >,

Period: 多久告警规则需要被核实一下。这是一个时间窗口,与后端部署环境时间相匹配。

Count: 在一个Period窗口中,如果超过Threshold值(按op)的次数等于Count值,需要发送警报。

Slience period:静默时间。在某个时间点出发告警以后,在接下来period的时间段内将会保持静默。默认值与period相同,意味着在一段时间内,相同的告警(相同的度量名称相同的id)只会触发一次。

Webhook要求对等方是一个 Web 容器. 告警的消息会通过 HTTP请求进行发送, 请求方法为 POST, Content-Type 为 application/json, JSON 格式基于List

scopeId,scope:所有scope定义在org.apache.skywalking.oap.server.core.source.DefaultScopeDefine类中。

name:目标scope实体名称。

id0:scope

实体的ID。

id1:暂未用。

ruleName: 配置在alarm-settings.yml中的规则名称。

alarmMessage: 告警文本信息

startTime: 当前时间到UTC 1970年1月1日半夜12点毫秒值。

示例:

[{

"scopeId": 1,

"scope": "SERVICE",

"name": "serviceA",

"id0": 12,

"id1": 0,

"ruleName": "service_resp_time_rule",

"alarmMessage": "alarmMessage xxxx",

"startTime": 1560524171000

}, {

"scopeId": 1,

"scope": "SERVICE",

"name": "serviceB",

"id0": 23,

"id1": 0,

"ruleName": "service_resp_time_rule",

"alarmMessage": "alarmMessage yyy",

"startTime": 1560524171000

}]

9、参考链接

需要安装npm环境和awk软件。

10、UI界面介绍

CPM:每分钟请求调用次数(平均吞吐量)。

SLA: 服务等级协议(简称:SLA,全称:service level agreement)。是在一定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。即服务可用性,如99.9,99.99,99.999

CLR:(公共语言运行库,Common Language Runtime)和 Java 虚拟机一样也是一个运行时环境,是一个可由多种编程语言使用的运行环境。CLR 的核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步,可由面向 CLR 的所有语言使用。并保证应用和底层操作系统之间必要的分离。

百分位数:skywalking中有P50,P75,P90,P95,P99这种统计口径,就是百分位数的概念。

图例:如下图,表示12月16日,14:53分这个时间点探针反馈的统计结果来看,有50%的请求响应时间低于1020ms,有75%的请求响应时间低于1200ms,有90%的请求响应时间低于2150ms,有95%的请求响应时间低于3140ms,有99%的请求响应时间低于3220ms。

image

image

image

image

image

image

image

怎么停止skywalking_SkyWalking安装和使用相关推荐

  1. 怎么停止skywalking_Skywalking部署常见问题以及注意事项

    Skywalking部署常见问题以及注意事项 Intro SkyWalking 创建与2015年,提供分布式追踪功能.从5.x开始,项目进化为一个完成功能的Application Performanc ...

  2. 2.0Tonmcat高级配置和jDK的安装配置

    一.安装JDK 1.下载 wget http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.tar.gz 2.解 ...

  3. 在x86上成功使用gentoo系统上安装的grub2启动 Mac OS X Leopard 10.5.7

    机器: thinkpad w500 环境: /dev/sda1 gentoo-x86_64 /dev/sda2 iAKTKOS v7 10.5.7 grub2 安装在MBR, 在gentoo上安装gr ...

  4. 记一次安装多版本php的四个雷区,你踩着了吗

    记一次安装多版本php的四个雷区,你踩着了吗 技术小疯子关注3人评论740人阅读2018-06-29 15:00:30 记一次安装多版本的php的四个雷区,你踩着了吗 需求:公司需要在同一台服务器上安 ...

  5. Hadoop集群安装-CDH5(5台服务器集群)

    CDH5包下载:http://archive.cloudera.com/cdh5/ 架构设计: 主机规划: IP Host 部署模块 进程 192.168.254.151 Hadoop-NN-01 N ...

  6. Linux系统中软件的“四”种安装原理详解:源码包安装、RPM二进制安装、YUM在线安装、脚本安装包...

    一.Linux软件包分类 1.1 源码包 优点: 开源,如果有足够的能力,可以修改源代码: 可以自由选择所需的功能: 软件是编译安装,所以更加适合自己的系统,更加稳定.效率更高: 卸载方便: 缺点: ...

  7. mac homebrew装mysql_mac系统homebrew安装mysql

    homebrew 安装 mysql homebrew 是 macOS 缺失的软件包管理器,譬如可以下载 mysql.redis.wget 等等.操作系统:macOS High Sierra Versi ...

  8. Virtual Box 安装过程(卸载Vmware后)

    VirtualBox 安装前的操作:(或许某些操作不一定有用,但是我是这么做下来的,最后也安装成功了) 步骤一:停止之前安装的vmware的所有服务(如果之前没有安装过虚拟机软件,无需做此操作) VM ...

  9. Nginx 安装配置【必须把文件到放到机器上】

    [必须把所有下载的gz文件到放到机器上:编译] 1.安装nginx之前的编译软件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl ...

最新文章

  1. SharePoint Server 2013 之四:部署SharePoint企业版
  2. Smart-linkmonitor-link配置注意事项
  3. Nature子刊:海大张晓华团队发现马里亚纳海沟微生物抵抗高压的新机制
  4. golang 获取公网ip 内网ip 检测ip类型 校验ip区间 ip地址string和int转换 判断ip地区国家运营商
  5. 【中级软考】软件质量模型的六大特性27个子特性(软件质量特性:功能性、可靠性、易用性、效率性、软件维护性、软件可移植性)
  6. SQL语句求解同一人物不同日期,某一属性的差值
  7. Java中ListE对象赋值问题(引用传递和值传递)
  8. HTML/XHTML/HTML5/CSS学习链接
  9. 牛顿法/拟牛顿法/DFP/BFGS/L-BFGS算法
  10. vue watch的监听
  11. 后台产品基本功:RBAC权限后台角色与权限设计
  12. ubuntu软件中心打不开Python error
  13. PHPmail 亲测可用
  14. 二极管分类 二极型号大全
  15. 大疆文档(2)-指南
  16. 高等数学——常用结论(3)
  17. 数字先锋 | 天翼云牵手中能融合
  18. Android Canvas rotate 和translate 两个方法的研究
  19. 虚拟机中使linux系统分辨率变大,能够在虚拟机全屏显示
  20. 解读6大常见肿瘤的消融选择

热门文章

  1. 计算机科学大师唐纳德,现代计算机科学的鼻祖
  2. 淘宝网触屏版 - 学习笔记(1 - 关于meta)
  3. markdown中划线
  4. mac 如何快速生成SSH key,配置github SSH公钥连接(解决git push 413问题)
  5. Cadence OrCAD Capture 绘制总线的方法
  6. Elixir元编程-第三章 编译时代码生成技术进阶
  7. 小武学fpgastep3
  8. 激励人生成功的10句经典中英文
  9. jquery实现div的隐藏和显示和点击空白显示隐藏
  10. Vue 自定义富文本编辑器 tinymce 支持导入 word 模板