运维

再续APM-Skywalking

2018-11-19  本文已影响529人  我为峰2014

写这篇文章出发点是因为,我尝试了Pinpoint这样的APM发现,我部署后根本拿不到相关的数据,而且网上的参考资料,基本上没有价值,都是抄袭官网的,我也查看了Pinpoint官方文档也不知道怎么样解决,我的问题是Pinpoint agent(1.8.0)添加到了tomcat中,在web界面就只识别了tomcat,至于里面的数据就没有获取到。(据说是从1.6版本后,改了相关通讯交互方式,直到现在我还是没有找到解决方案。)

因为遇到这样的困难,所以转而选取同类型的APM-Skywalking来进行研究。

目标

其实换过来思考,无论采用什么样的APM来做应用性能监控主要都是想解决以下问题:

选型

方案 cat zipkin Pinpoint SkyWalking
依赖 Java 6 7 8、Maven 3+ MySQL 5.6 5.7、Linux 2.6+ Hadoop可选 Java 6,7,8 Maven3.2+ RabbitMQ Java 6,7,8 Maven3+ Hbase0.94+ Java 6,7,8 Maven3.0+ Nodejs Zookeeper Elasticsearch
实现方 式 代码埋点(拦截器,注解,过滤器等) 拦截请求,发送(HTTP,mq)数据至zipkin服务 Java探针,字节码增强 Java探针,字节码增强
存储 Mysql , Hdfs in-memory , Mysql , Cassandra , Elasticsearch HBase Elasticsearch , H2
jvm监控 不支持 不支持 支持 支持
trace查询 支持 支持 需要二次开发 支持
侵入 高,需要埋点 高,需要开发
部署成本 较高

针对业务情况,主要重点关注PinpointSkyWalking,由于Pinpoint我没有调通,进而研究SkyWalking

APM-Skywalking

Skywalking是国人-吴晟大佬个人开源的项目,并且被搜录到了Apache基金会当中持续开源。

官方github地址:https://github.com/apache/incubator-skywalking

希望看到文章觉得不错帮大佬点亮下小星星呀

官方体验地址:http://106.75.237.45:8080/

借用官方的原理图

image.png

SkyWalking是一个开源的APM系统,包括监控,跟踪,诊断Cloud Native架构中分布式系统的功能。核心功能如下。

截至到目前,Skywalking已经发布了6.0.0-α版本,从这个版本开始已经内置了H2数据,并且先比5.0重构了后端内核,应该算是比较大的改变。

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

简单搭建

根据情况选择适合的解压包,进行解压。(我下载的是windows的zip)

解压后

image.png

其中agent文件夹是探针,包含整个目录,请不要改变目录结构

+-- agent
    +-- activations
         apm-toolkit-log4j-1.x-activation.jar
         apm-toolkit-log4j-2.x-activation.jar
         apm-toolkit-logback-1.x-activation.jar
         ...
    +-- config
         agent.config  
    +-- plugins
         apm-dubbo-plugin.jar
         apm-feign-default-http-9.x.jar
         apm-httpClient-4.x-plugin.jar
         .....
    skywalking-agent.jar

Java代理安装

Linux Tomcat 7, Tomcat 8

tomcat/bin/catalina.sh.第一行中添加

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; export CATALINA_OPTS

Windows Tomcat 7, Tomcat 8
tomcat/bin/catalina.bat.第一行添加

set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"

JAR
运行jar包,需要添加-javaagent参数来进行启动

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar

当然更多java代理请参考官方文档

https://github.com/apache/incubator-skywalking/blob/v6.0.0-alpha/docs/en/setup/service-agent/java-agent/README.md

我本地的示例

image.png

配置agent/config配置agent.application_code=xxl-job为自己的应用名

image.png

后端和UI

SkyWalking后端分发包包括以下部分

快速开始

要求:JDK8

使用bin/startup.sh(或cmd)在默认设置中启动后端和UI

分布式部署后端和UI

image.png

后端设置文档参考

https://github.com/apache/incubator-skywalking/blob/v6.0.0-alpha/docs/en/setup/backend/backend-setup.md

UI设置

启动脚本也在/bin/webappService.sh(.bat)

UI的设置文件 webapp/webapp.yml中。它由三部分组成。

1、服务启动端口
2、连接后端的配置
3、设置用户名,密码

server:
  port: 8080

collector:
  path: /graphql
  ribbon:
    ReadTimeout: 10000
    # Point to all backend's restHost:restPort, split by , 
    listOfServers: 10.2.34.1:12800,10.2.34.2:12800

security:
  user:
    # username
    admin:
      # password
      password: admin

常见问题解答

https://github.com/apache/incubator-skywalking/tree/master/docs/en/FAQ

上一篇 下一篇

猜你喜欢

热点阅读