zoukankan      html  css  js  c++  java
  • 分布式日志链路追踪:skywalking + elasticsearch 部署实践(5.x)

    简介

      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.X版本不行,安装5.6.8:

    1.1、官网下载es的zip安装包,并解压

    windows:下载以后放到D盘 https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-8

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

    tar zxvf elasticsearch-5.6.8.tar.gz 
    cd elasticsearch-5.6.8/

    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

    1.4、测试验证,在浏览器打开地址,如下图所示即安装启动成功:

    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

      在agentconfig目录中的agent.config内修改如下:

    #对应elasticsearch中的clusterName,表示数据存储的集合名称

    agent.application_code=CollectorDBCluster 

    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 地址

    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:softwareapache-skywalking-apm-incubating-5.0.0-RC2apache-skywalking-apm-incubatingagentskywalking-agent.jar

    如图:

     

    2、修改conf目录下的server.xml

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

    然后启动 tomcat 项目,启动 并 登录skywalking UI页面。如图:

  • 相关阅读:
    HTML5中类jQuery选择器querySelector的使用
    java发布环境时,Xshell常用的命令(基础)
    java后端:实现导出excel,按其中一个列的数据生成二维码图片,显示在列表中
    SQL 函数:case when 的用法
    微服务-学习笔记
    初学笔记:存储过程的简单概念
    初学笔记:GROUP_CONCAT 的作用,和使用条件
    jsp练习
    数据库2
    数据库
  • 原文地址:https://www.cnblogs.com/liboware/p/12503884.html
Copyright © 2011-2022 走看看