Linux下从零开始部署和使用Jaeger
最近在折騰Jaeger,Jaeger官網(wǎng)都是介紹如何通過Docker部署,二進制部署文檔基本沒有(已咨詢過作者,作者說沒文檔!你參考Docker自己部署好了!!!),所以打算寫一篇Linux部署。
Jaeger
Jaeger是Uber推出的一款調(diào)用鏈追蹤系統(tǒng),類似于Zipkin和Dapper,為微服務(wù)調(diào)用追蹤而生。 其主要用于多個服務(wù)調(diào)用過程追蹤分析,圖形化服務(wù)調(diào)用軌跡,便于快速準(zhǔn)確定位問題。
Jaeger組成
- 前端界面展示UI
- 數(shù)據(jù)存儲Cassandra
- 數(shù)據(jù)查詢Query
- 數(shù)據(jù)收集處理Collector
- 客戶端代理Agent
- 客戶端庫jaeger-client-*
Jaeger服務(wù)之間關(guān)系
打造所需原材料
- Docker
- Cassandra
- Jaeger二進制安裝包
- Jaeger源碼
- Nginx
Docker部署
CenterOS 7 安裝Docker
關(guān)于Docker部署網(wǎng)上到處都是,我使用的是CentOS 7,其他版本自行查找,這里就用最簡單粗暴的方式安裝。
yum update -y yum -y install docker systemctl start docker- 1
- 2
- 3
替換Docker鏡像源
由于國內(nèi)下載鏡像比較慢,這里我將Docker鏡像源替換成阿里云。?
注冊一個阿里云用戶,訪問?https://cr.console.aliyun.com/#/accelerator?獲取專屬Docker加速器地址。?
如圖:?
針對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 dockerOK!Docker部署到此為止,有人會問我Jaeger用二進制部署了,為啥還需要部署Docker。這里是一個悲傷的故事,Docker是用來部署Cassandra的。因為Cassandra是Java實現(xiàn)的,部署要配置一大堆我不太了解的Java環(huán)境,比較麻煩,既然有Docker這種神奇何不好好利用一下呢!部署Cassandra的時候我會把存儲掛在到本地硬盤,這樣就避免了Docker服務(wù)異常關(guān)閉導(dǎo)致數(shù)據(jù)丟失了,所以使用Docker部署無傷大雅,這里又有人會問為何不用Docker部署Jaeger,這又是一件悲傷的故事!!!因為Jaeger本身只有鏈路跟蹤,并沒有更高級的業(yè)務(wù)功能(類似異常告警),所以我們可能會針對Jaeger進行二次開發(fā)。So不如自己部署一套,好用來做研究。好了廢話不多說讓我們繼續(xù)Jaeger部署之旅吧!
Cassandra部署
Cassandra是一套開源分布式NoSQL數(shù)據(jù)庫系統(tǒng)。由Facebook開發(fā),用于儲存收件箱等簡單格式數(shù)據(jù),集GoogleBigTable的數(shù)據(jù)模型與Amazon Dynamo的完全分布式的架構(gòu)于一身.?
Cassandra是一個混合型的非關(guān)系的數(shù)據(jù)庫,類似于Google的BigTable。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。
Docker下載Cassandra
前面已經(jīng)啰嗦過為什么試用Docker部署Cassandra了,這里就簡單介紹如何部署.
docker search cassandra docker pull docker.io/cassandra- 1
- 2
Docker部署Cassandra集群
我準(zhǔn)備了3臺服務(wù)器
10.100.7.46 10.100.7.47 10.100.7.48- 1
- 2
- 3
10.100.7.46這臺服務(wù)器作為種子點
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這個是我的數(shù)據(jù)本地保存目錄,9042:9042是將客戶端鏈接地址暴露出來。簡單吧!
導(dǎo)入Jaeger表結(jié)構(gòu)
導(dǎo)入Jaeger表結(jié)構(gòu),這里不得不吐槽一下Jaeger!Jaeger二進制安裝包里根本沒有數(shù)據(jù)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上面的命令是我搜索來的,因為在導(dǎo)入之前我已經(jīng)手動一條一條加進去了(>﹏<)!如果不好用的話,讀者可以直接cqlsh一條一條黏上去!!!!?
Jaeger部署
ok! 現(xiàn)在正式進入主題: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的頁面了!?Agent部署
Agent 部署就比較簡單了,指定collector地址就OK了!
nohup ./jaeger-agent --collector.host-port=10.100.7.46:14267 1>1.log 2>2.log &- 1
See you!
轉(zhuǎn)載于:https://www.cnblogs.com/qwangxiao/p/9008186.html
總結(jié)
以上是生活随笔為你收集整理的Linux下从零开始部署和使用Jaeger的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ffs, fls
- 下一篇: linux 其他常用命令