zoukankan      html  css  js  c++  java
  • 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提供的接口,获取对应的数据然后进行展示。

    特性

    1. 多种监控手段,语言探针和service mesh
    2. 多语言自动探针,Java, .Net Core, PHP, NodeJS, Golang, LUA
    3. 轻量高效,不需要大数据
    4. 模块化,UI、存储、集群管理多种机制可选
    5. 支持告警
    6. 优秀的可视化方案

    官网地址: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无法显示请求。

     
  • 相关阅读:
    Python--学习过程
    线程、进程、协程
    socket
    面向对象--进阶
    面向对象--初级
    Python常用的模块
    2019-2020-1 20191301《信息安全专业导论》第十二周学习总结
    wirehark
    2019--2020第十一周信息安全导论论总结20191301
    2019--2020信息安全导论第10周总结20191301
  • 原文地址:https://www.cnblogs.com/Dev0ps/p/12724492.html
Copyright © 2011-2022 走看看