基于SkyWalking的分布式跟踪系统 - 环境搭建
前面的几篇文章我们聊了基于Metrics的监控Prometheus,利用Prometheus和Grafana可以全方位监控你的服务器及应用的性能指标,在出现异常时利用Alertmanager告警及时通知运维处理。今天我们聊聊基于Trace的分布式跟踪系统 - SkyWalking
初识SkyWalking
应用场景
随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响,如果没有及时处理很有可能会造成整个系统崩溃。

面对以上情况,我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。
架构

SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面。
探针
主要负责从客户端收集数据,将数据转换成SkyWalking适用的格式,探针对客户端程序没有任何代码侵入,使用起来简单方便,使用如下命令即可完成对应用的监控
java -javaagent:/path/skywalking-agent.jar -jar youApp.jar平台后端(OAP Server)
主要用于数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。通过 gRPC/Http 收集客户端Agent的采集信息 ,Http默认端口 12800,gRPC默认端口 11800。存储
SkyWalking支持很多存储:H2(用作演示环境)、MySQL(当数据量大时检索性能下降很厉害)、ES(主流生产级别的存储)用户界面
炫酷的界面,调用请求监控一目了然。
安装配置
安装
直接从官网下载最新的安装包,并上传到服务器解压。解压后的文件如下:

(需要提前准备好JAVA(1.8)和ES(6.x)的环境。)
关注一下几个重要的目录:
- agent:代理模块(探针)
 - bin:启动脚本(包括UI和OAP SERVER)
 - config:后端相关配置
 - webapp:UI界面
 
配置
- 存储相关配置
打开application.yml,修改storage相关配置。关闭H2,打开ES,然后启动./bin/startup.sh 
storage:
  elasticsearch:
    nameSpace: ${SW_NAMESPACE:"elk-online"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.136.129:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
agent 配置
将agent文件夹从服务器上拷贝出来,放在客户端服务器。打开agent\config\agent.config作如下修改agent.service_name修改成你应用名称:blogcollector.backend_service修改成OAP Server地址:192.168.136.129:11800
IDEA配置(可选)

配置完成后启动你的客户端应用。
效果



环境搭建好了,下一步就是全面监控你的应用了,咱们下期有缘再见。
三维一体立体化监控
请关注个人公众号:JAVA日知录

基于SkyWalking的分布式跟踪系统 - 环境搭建的更多相关文章
- 基于SkyWalking的分布式跟踪系统 - 微服务监控
		
上一篇文章我们搭建了基于SkyWalking分布式跟踪环境,今天聊聊使用SkyWalking监控我们的微服务(DUBBO) 服务案例 假设你有个订单微服务,包含以下组件 MySQL数据库分表分库(2台 ...
 - 基于SkyWalking的分布式跟踪系统 - 异常告警
		
通过前面2篇文章我们搭建了SW的基础环境,监控了微服务,能了解所有服务的运行情况.但是当出现服务响应慢,接口耗时严重时我们需要立即定位到问题,这就需要我们今天的主角--监控告警,同时此篇也是SW系列的 ...
 - Spring+Shiro搭建基于Redis的分布式权限系统(有实例)
		
摘要: 简单介绍使用Spring+Shiro搭建基于Redis的分布式权限系统. 这篇主要介绍Shiro如何与redis结合搭建分布式权限系统,至于如何使用和配置Shiro就不多说了.完整实例下载地址 ...
 - 微服务之分布式跟踪系统(springboot+zipkin+mysql)
		
通过上一节<微服务之分布式跟踪系统(springboot+zipkin)>我们简单熟悉了zipkin的使用,但是收集的数据都保存在内存中重启后数据丢失,不过zipkin的Storage除了 ...
 - ELK +Nlog 分布式日志系统的搭建 For Windows
		
前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询 SELECT * FROM `LhzxUsers` WHERE UserN ...
 - Spark 1.6.1分布式集群环境搭建
		
一.软件准备 scala-2.11.8.tgz spark-1.6.1-bin-hadoop2.6.tgz 二.Scala 安装 1.master 机器 (1)下载 scala-2.11.8.tgz, ...
 - 基于HBase Hadoop 分布式集群环境下的MapReduce程序开发
		
HBase分布式集群环境搭建成功后,连续4.5天实验客户端Map/Reduce程序开发,这方面的代码网上多得是,写个测试代码非常容易,可是真正运行起来可说是历经挫折.下面就是我最终调通并让程序在集群上 ...
 - ZooKeeper 完全分布式集群环境搭建
		
1. 搭建前准备 示例共三台主机,主机IP映射信息如下: 192.168.32.101 s1 192.168.32.102 s2 192.168.32.103 s3 2.下载ZooKeeper, 以 ...
 - Hadoop完全分布式集群环境搭建
		
1. 在Apache官网下载Hadoop 下载地址:http://hadoop.apache.org/releases.html 选择对应版本的二进制文件进行下载 2.解压配置 以hadoop-2.6 ...
 
随机推荐
- tcp居然会数据延迟40ms被发送
			
tcpdump是很好的tcp分析工具,在此配合nc命令来学习tcpdump nc -l 8000 tcpdump -S -n -i lo tcp and host 127.0.0.1 and port ...
 - 引用、浅拷贝及深拷贝 到 Map、Set(含对象assign、freeze方法、WeakMap、WeakSet及数组map、reduce等等方法)
			
从引用聊到深浅拷贝,从深拷贝过渡到ES6新数据结构Map及Set,再到另一个map即Array.map()和与其类似的Array.flatMap(),中间会有其他相关话题,例如Object.freez ...
 - 【linux】【jenkins】自动化运维七 整合sonarqube代码审查
			
1.安装插件:SonarQube Scanner for Jenkins 插件安装教程参考:https://www.cnblogs.com/jxd283465/p/11542680.html 2.So ...
 - (1)安装elastic6.1.3及插件kibana,x-pack,essql,head,bigdesk,cerebro,ik
			
1.安装环境及程序版本 操作系统: centos6.7 jdk: 1.8.0_102 elastic: 1.6.3 kibana: 1.6.3 x-pack: 1.6.3 es-sql: 1.6.3 ...
 - 略学扩展Eculid算法
			
扩展 Euclid 算法 Euclid 算法 辗转相除法 计算两个数最大公因数 \(\text{gcd}(a,\,b) = \text{gcd}(b,\,a\%b)\) exEuclid 算法 裴蜀定 ...
 - MapReduce之Job提交流程源码和切片源码分析
			
hadoop2.7.2 MapReduce Job提交源码及切片源码分析 首先从waitForCompletion函数进入 boolean result = job.waitForCompletion ...
 - Skeleton with Assimp 骨骼动画解析
			
Skeleton with Assimp 骨骼动画解析 骨骼动画是图形学中十分常见应用很广泛的一个技术,也是比较基础的内容,作为图形学的工程师需要将这一部分内容梳理清晰,主要关键在于几点:第一,分清楚 ...
 - 前端基于VUE的v-charts的曲线显示
			
目录 前端基于VUE的v-charts的曲线显示 1. 应用背景 2. 分析数据生产者生成 3. 取出数据消费者 4. 前端显示 4.1 安装V-charts插件 4.2 引入veline曲线插件 4 ...
 - 阿里云ECS服务器提示需要修复的漏洞问题
			
1.漏洞: RHSA-2018:1842: kernel security, bug fix, and enhancement updateRHSA-2018:2299: NetworkManager ...
 - Angular7 HttpClient处理多个请求
			
1. MergeMap - 串联请求 后一个请求需要前一个请求的返回结果时,需要使用串联请求. 可以使用MergeMap实现, 优势是减少嵌套,优化代码: 代码如下: import {HttpClie ...