Linux下从零开始部署和使用Jaeger

最近在折腾Jaeger,Jaeger官网都是介绍如何通过Docker部署,二进制部署文档基本没有(已咨询过作者,作者说没文档!你参考Docker自己部署好了!!!),所以打算写一篇Linux部署。

Jaeger

Jaeger是Uber推出的一款调用链追踪系统,类似于Zipkin和Dapper,为微服务调用追踪而生。 其主要用于多个服务调用过程追踪分析,图形化服务调用轨迹,便于快速准确定位问题。

Jaeger组成

  • 前端界面展示UI
  • 数据存储Cassandra
  • 数据查询Query
  • 数据收集处理Collector
  • 客户端代理Agent
  • 客户端库jaeger-client-*

Jaeger服务之间关系

Jaeger服务之间关系

打造所需原材料

  • Docker
  • Cassandra
  • Jaeger二进制安装包
  • Jaeger源码
  • Nginx

Docker部署

CenterOS 7 安装Docker

关于Docker部署网上到处都是,我使用的是CentOS 7,其他版本自行查找,这里就用最简单粗暴的方式安装。

yum update -y
yum -y install docker
systemctl start docker
  • 1
  • 2
  • 3

替换Docker镜像源

由于国内下载镜像比较慢,这里我将Docker镜像源替换成阿里云。 
注册一个阿里云用户,访问 https://cr.console.aliyun.com/#/accelerator 获取专属Docker加速器地址。 
如图: 
ali_docker_mirror

针对Docker客户端版本大于1.10.0的用户可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["骚年您老人家的阿里镜像加速器地址"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

OK!Docker部署到此为止,有人会问我Jaeger用二进制部署了,为啥还需要部署Docker。这里是一个悲伤的故事,Docker是用来部署Cassandra的。因为Cassandra是Java实现的,部署要配置一大堆我不太了解的Java环境,比较麻烦,既然有Docker这种神奇何不好好利用一下呢!部署Cassandra的时候我会把存储挂在到本地硬盘,这样就避免了Docker服务异常关闭导致数据丢失了,所以使用Docker部署无伤大雅,这里又有人会问为何不用Docker部署Jaeger,这又是一件悲伤的故事!!!因为Jaeger本身只有链路跟踪,并没有更高级的业务功能(类似异常告警),所以我们可能会针对Jaeger进行二次开发。So不如自己部署一套,好用来做研究。好了废话不多说让我们继续Jaeger部署之旅吧!

Cassandra部署

Cassandra是一套开源分布式NoSQL数据库系统。由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身. 
Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。

Docker下载Cassandra

前面已经啰嗦过为什么试用Docker部署Cassandra了,这里就简单介绍如何部署.

docker search cassandra
docker pull docker.io/cassandra
  • 1
  • 2

Docker部署Cassandra集群

我准备了3台服务器

10.100.7.46
10.100.7.47
10.100.7.48
  • 1
  • 2
  • 3

10.100.7.46这台服务器作为种子点

docker run --name some-cassandra -v  www.qicaiyulept.cn /httx/cassandra/ www.vboyule.cn  data:/var/lib/cassandra -d -e CASSANDRA_BROADCAST_ADDRESS=10.100.7.www.tkcyl1.com/ 47 -p 7000:7000 -p 9042:9042 -e CASSANDRA_SEEDS=10.100.7.46 cassandra:latest docker run --name some-cassandra -v www.douniuyuLept.com /httx/cassandra/data:/var/lib/cassandra -d -e CASSANDRA_BROADCAST_ADDRESS=10.100.7.48 -p 7000:7000 -p 9042:9042 -e CASSANDRA_SEEDS=10.100.7.46 cassandra:latest docker run --name some-cassandra -v www.caihonyule.com /httx/cassandra/data:/var/lib/cassandra -d -e CASSANDRA_BROADCAST_ADDRESS=10.100.7.48 -p 7000:7000 -p 9042:9042 -e CASSANDRA_SEEDS=10.100.7.46 cassandra:latest
  • 1
  • 2
  • 3

/httx/cassandra/data这个是我的数据本地保存目录,9042:9042是将客户端链接地址暴露出来。简单吧!

导入Jaeger表结构

导入Jaeger表结构,这里不得不吐槽一下Jaeger!Jaeger二进制安装包里根本没有数据sql文件,而且没有任何文档告诉你SQL文件在哪里找,没安装文档!我表示是崩溃的,最终在源码目录的一个角落中找到SQL文件,路径展示一下:

$GOPATH/src/github.com/jaegertracing/jaeger/plugin/storage/cassandra/schema/v001.cql.tmpl
格式:
cqlsh -h HOST -p PORT -f fileName
cqlsh 10.100.7.46 -f $GOPATH/src/github.com/jaegertracing/jaeger/plugin/storage/cassandra/schema/v001.cql.tmpl 

上面的命令是我搜索来的,因为在导入之前我已经手动一条一条加进去了(>﹏<)!如果不好用的话,读者可以直接cqlsh一条一条黏上去!!!! 

Jaeger部署

ok! 现在正式进入主题:Jaeger安装。- Jaeger二进制安装包

tar -zxvf jaeger-1.4.1-linux-amd64.tar.gz mv jaeger-1.4.1-linux-amd64 jaeger
  • 1
  • 2

Collector部署

mkdir collector
mv jaeger-collector collector/collector nohup ./collector --cassandra.keyspace=jaeger_v1_datacenter1 --cassandra.servers=10.100.7.46,10.100.7.47,10.100.7.48 --collector.zipkin.http-port=9411 1>1.log 2>2.log &

Query部署

mkdir query
mv jaeger-query query/query
mv jaeger-ui-build/build query/ cd query nohup ./query www.taohuayuan178.com --cassandra.keyspace jaeger_v1_datacenter1 --cassandra.servers 10.100.7.46,10.100.7.47,10.100.7.48 --query.static-files=./build 1>1.log 2>2.log &ok 访问你Query的地址 htpp://queryIp:16686 就可以看到久违的jaeger的页面了! 

image

Agent部署

Agent 部署就比较简单了,指定collector地址就OK了!

nohup ./jaeger-agent  --collector.host-port=10.100.7.46:14267 1>1.log 2>2.log &
  • 1

See you!

转载于:https://www.cnblogs.com/qwangxiao/p/9008186.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 全栈开发,Day36(作业讲解(大文件下载以及进度条展示),socket的更多方法介绍,验证客户端链接的合法性hmac,socketserver)...

先来回顾一下昨天的内容 黏包现象粘包现象的成因 &#xff1a;   tcp协议的特点 面向流的 为了保证可靠传输 所以有很多优化的机制   无边界 所有在连接建立的基础上传递的数据之间没有界限   收发消息很有可能不完全相等   缓存机制&#xff0c;导致没发过去的消息会在…

Python中xPath技术和BeautifulSoup的使用

xpath基本知识 XPath语法&#xff1a;使用路径表达式来选取XML或HTML文档中的节点或节点集 路径表达式 nodename:表示选取此节点的所有子节点 / &#xff1a; 表示从根节点选取 // &#xff1a;选择任意位置的某个节点。 . &#xff1a;选取当前节点 .. &#xff1a;选…

div水平垂直居中的六种方法

在平时&#xff0c;我们经常会碰到让一个div框针对某个模块上下左右都居中&#xff08;水平垂直居中&#xff09;&#xff0c;其实针对这种情况&#xff0c;我们有多种方法实现。 方法一: 绝对定位方法&#xff1a;不确定当前div的宽度和高度&#xff0c;采用 transform: trans…

Redis集群监控及Redis桌面客户端

之前在生产环境部署了Redis集群&#xff0c;一直苦于没有工具监控&#xff0c;最近找了下网上推荐redmon和Redislive的比较多&#xff0c;查看了两个项目的github,都几年没有更新&#xff0c;这两个项目应该没有人在维护了&#xff0c;如果哪位有更好的替代方案麻烦告知&#x…

GIT安装部署

git git简介 Git不仅是一款开源的分布式版本控制系统&#xff0c;而且有其独特的功能特性&#xff0c;例如大多数的分布式版本控制系统只会记录每次文件的变化&#xff0c;说白了就是只会关心文件的内容变化差异&#xff0c;而Git则是关注于文件数据整体的变化&#xff0c;直接…

牛客网Wannafly挑战赛15 B车辆安排(模拟)AND C 出队(规律)

传送门 &#xff1a;B题&#xff1a;点我 C题&#xff1a; 点我 题目描述 有n个队伍&#xff0c;每个队伍的人数小于等于5&#xff0c;每辆车最多坐5个人&#xff0c;要求一个队伍的人都在一辆车上&#xff0c;求最少的车数 输入描述: 第一行n第二行n个数&#xff0c;表示每个队…

5-12

1,每个递归函数都有两部分&#xff0c;基线条件和递归条件 base case and recursive case 2,调用一个函数的时候&#xff0c;其他的函数调用会暂停并处于未完成的状态 3.调用栈会消耗大量的内存&#xff0c;栈很高的时候意味着计算机要存储大量的函数调用信息&#xff0c;此时的…

Team Foundation Server (TFS) 2015 安装指导

原文地址&#xff1a;http://www.cnblogs.com/danzhang/p/4718035.html http://www.cnblogs.com/danzhang 张洪君 微软ALM MVP 1. 概述 微软于8月6日发布了大家期待已久的TFS 2015正式版&#xff0c; https://www.visualstudio.com/en-us/news/tfs2015-vs.aspx &#xff0c;…

VM虚拟机链接克隆及linux eth0网卡的快速设置方法

对于后台开发者来说,在学习过程中必然接触众多中间件,在自己的虚拟机进行操作甚至搭建cluster是很常见的事情.我在初学者时摸索出一套快速的克隆虚拟机方法.分享给大家.产品VMware Workstation版本10.0.2 build-1744117这是我的虚拟机命名,我觉得这样的命名比较合适,clone机/服…

Spring MVC+Mybatis 多数据源配置

文章来自&#xff1a;https://www.jianshu.com/p/fddcc1a6b2d8 1. 继承AbstractRoutingDataSource AbstractRoutingDataSource 是spring提供的一个多数据源抽象类。spring会在使用事务的地方来调用此类的determineCurrentLookupKey()方法来获取数据源的key值。我们继承此抽象类…

围观神龙架构首次开箱,现场直播暴力拆机

围观神龙架构首次开箱&#xff0c;现场直播暴力拆机 发布时间&#xff1a;2018-05-16 13:43:01686人关注34人参与阿里云X-Dragon大事记2017年4月&#xff1a;阿里云X-Dragon项目立项&#xff1b;2017年10月&#xff1a;阿里云正式推出基于X-Dragon架构的弹性裸金属服务器&#…

windows-server-2012R2离线中文语言包安装

1、离线包下载地址http://download.csdn.net/detail/github_38358734/9858412 2、安装方法&#xff1a; 解压离线包 Dism /online /Add-Package /PackagePath:C:\test\LangPacks\lp.cab 大概10分钟&#xff0c;完成。 然后重启电脑&#xff0c;到控制面板语言区域选项&…

文字闪烁效果

效果图&#xff1a; HTML Code: <a class"blink" href"#" target"_blank"> 扁平化设计看上去非常简单、直观扁平化设计看上去非常简单、直去非化设计看上去非常简单、直观扁平化设计看上去非常简单、直观扁平常简单</a> JQuery Code…

BZOJ 3295: [Cqoi2011]动态逆序对 cdq分治

https://www.lydsy.com/JudgeOnline/problem.php?id3295 这个妹妹我曾见过的~~~ 之前应该在校内oj写了&#xff0c;似乎还写过题解&#xff1f;发现没写博客就重新水一遍代码水一篇博客好了。 把找逆序对的过程想成一个一个往里塞数字然后找每个数字可以组成的逆序对&#xff…

p1、查询端口号占用,根据端口查看进程信息/p

2017年6月份的时候&#xff0c;我就着手在公司推广git&#xff0c;首先我自己尝试搭建了GitLab来管理代码&#xff0c;并且通过以下博客记录了GitLab的搭建&#xff0c;以及GitLab备份&#xff0c;GitLab升级等事情。 git学习——>在CenterOS系统上安装GitLab并自定义域名访…

point-position2修改版

说明&#xff1a; 在共面直线测试中&#xff0c;由于计算误差等原因&#xff0c;共面条件判断不准&#xff0c;但计算结果依然正确。 // point-position2.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include <stdio.h> #include <iostream&g…

Linux学习总结(十六)系统用户及用户组管理

先来认识两个文件/etc/passwd/etc/shadow我们打印出首尾三行&#xff0c;来了解下&#xff1a;每行由&#xff1a;分割为7段&#xff0c;每段含义为&#xff1a;第一段&#xff1a;用户名&#xff0c;比如root 用户&#xff0c;普通用户test,lv,test1第二段&#xff1a;早期存放…

hadoop综合大作业

Hadoop综合大作业 要求&#xff1a; 1.用Hive对爬虫大作业产生的文本文件&#xff08;或者英文词频统计下载的英文长篇小说&#xff09;词频统计。 词频统计的截图如下&#xff1a; 上次我所使用的文章是一篇中文文章&#xff0c;所以这次我用了一篇英文文档来进行分词&#xf…

MPI对道路车辆情况的Nagel-Schreckenberg 模型进行蒙特卡洛模拟

平台Ubuntu 16.04&#xff0c;Linux下MPI环境的安装见链接&#xff1a;https://blog.csdn.net/lusongno1/article/details/61709460据 Nagel-Schreckenberg 模型&#xff0c;车辆的运动满足以下规则&#xff1a;1. 假设当前速度是 v &#xff0c;和前一辆车的距离为d。2. 如…

Android 中.aar文件生成方法与用法

https://i.cnblogs.com/EditPosts.aspx?opt1 无论是用Eclipse还是用Android Studio做android开发&#xff0c;都会接触到jar包&#xff0c;全称应该是&#xff1a;Java Archive&#xff0c;即java归档文件。在用AS的过程中&#xff0c;你会发现有aar这么个东西&#xff0c;经查…