成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用 Docker 部署和遷移多節(jié)點(diǎn)的 ElasticSearch-Logstash-Kibana

xiongzenghui / 888人閱讀

摘要:我已經(jīng)為你做了這些,并放在上部署到一個(gè)多節(jié)點(diǎn)集群使用工作有兩個(gè)配置文件和。我們需要部署這些容器到多個(gè)主機(jī)上。使用,這會(huì)變得非常容易。我希望這篇文章對(duì)你部署和遷移有用。除了之外,我們還有部署和管理,和的例子。

  

本文的作者是 Luke Marsden ,本文的原文地是 Deploying and migrating a multi-node ElasticSearch-Logstash-Kibana cluster using Docker

  

注:本文沒有全部翻譯,是摘取性翻譯,只翻譯本人認(rèn)為關(guān)鍵的部分。要看全文請(qǐng)看原文

設(shè)置 ELK

首先,對(duì) ELK 的各種組件和它們所扮演的角色做一個(gè)快速預(yù)覽。

Logstash 接收日志消息和轉(zhuǎn)發(fā)它們到 ElasticSearch

ElasticSearch 在數(shù)據(jù)庫中存儲(chǔ)這些日志消息

Kibana 連接 ElasticSearch 來檢索這些日志數(shù)據(jù)并通過一個(gè) web 接口呈現(xiàn)它們

我們要做的第一件事情就是要把我們的三個(gè)應(yīng)用以及它們的依賴關(guān)系打包進(jìn)獨(dú)立的 Docker。我已經(jīng)為你做了這些,并放在 DockerHub 上:

ElasticSearch

Logstash

Kibana

部署 ELK 到一個(gè)多節(jié)點(diǎn)集群

使用 Flocker 工作有兩個(gè)配置文件: application configuration 和 deployment configuration。讓我們首先看下 application configuration 。

application configuration 是一個(gè)非常簡(jiǎn)單的 yaml 文件,它描述了你的應(yīng)用是怎樣由多個(gè)能相互通信的 Docker 容器組成。為此,我們通常把它作 application.yml。如果你對(duì) Docker 的 Fig 工具很熟悉的話,你將立刻認(rèn)識(shí)到和 Flockerapplication yml 很多相似的地方。

下面是需要啟動(dòng)所有三個(gè)容器的 application.yml,還有端口映射,能讓它們彼此通信,以及在 ElasticSearch 容器中創(chuàng)建一個(gè) Flocker-managed 的 Docker 數(shù)據(jù)卷。

"version": 1
"applications":
  "elasticsearch":
    "image": "clusterhq/elasticsearch"
    "ports":
    - "internal": 9200
      "external": 9200
    "volume":
      "mountpoint": "/var/lib/elasticsearch/"
  "logstash":
    "image": "clusterhq/logstash"
    "ports":
    - "internal": 5000
      "external": 5000
    "links":
    - "local_port": 9200
      "remote_port": 9200
      "alias": "es"
  "kibana":
    "image": "clusterhq/kibana"
    "ports":
    - "internal": 8080
      "external": 80

讓我們特別值得注意的幾件事:

ElasticSearch 應(yīng)用有一個(gè)卷和掛載點(diǎn)指定,在這個(gè)例子中是 /var/lib/elasticsearch,Flocker 的一大優(yōu)點(diǎn)就是有能力在兩個(gè)主機(jī)之間可以遷移數(shù)據(jù)卷

links 允許容器之間相互交流,甚至當(dāng)它們位于不同的主機(jī)

ports 代理一個(gè) Docker 主機(jī)上的端口("external")到容器中的端口("internal")

部署 ElasticSearch

現(xiàn)在我們有我們自己的 ELK stack 鏡像和定義的 application.yml。我們需要部署這些容器到多個(gè)主機(jī)上。我在我們前面提到的第二份配置文件 deployment configuration 中指定我想把我們的容器部署到哪里。

在這個(gè)例子中,我們將部署每個(gè)服務(wù)到它自己的虛擬服務(wù)器。如果你希望這樣做,你實(shí)際上可以使用任何主機(jī)并且步驟在虛擬機(jī)上同樣有效。裸機(jī),或是任何組合。比如,因?yàn)樾阅茉?,你想在裸機(jī)上運(yùn)行 ElasticSearch,但是為降低成本在虛機(jī)上運(yùn)行 Logstash 和 Kibana,這取決于你,F(xiàn)locker 是與底層主機(jī)無關(guān)的。

deployment config 也僅僅是一個(gè) yaml 文件,deployment.yml 通過列出的一個(gè)或多個(gè) IP 地址告訴 Flocker 去哪里部署每個(gè)容器和定義在 application.yml 的應(yīng)用別名。

在這個(gè)例子中,我們部署我們每個(gè)容器到不同的虛機(jī):

"version": 1
"nodes":
  "172.16.255.250": ["elasticsearch"]
  "172.16.255.251": ["logstash"]
  "172.16.255.252": ["kibana"]

當(dāng)我們使用 Flocker 提供的 CLI 工具運(yùn)行 flocker-deploy 命令的時(shí)候,容器將被自動(dòng)部署,做好網(wǎng)絡(luò)和啟動(dòng)我們?cè)诓渴鹋渲弥卸x的服務(wù)器。

alice@mercury:~/flocker-tutorial$ flocker-deploy deployment.yml application.yml
alice@mercury:~/flocker-tutorial$
從一臺(tái)服務(wù)器把 ElasticSearch 的數(shù)據(jù)遷移到另外一臺(tái)

現(xiàn)在 ElasticSearch 已經(jīng)在集群的多個(gè)節(jié)點(diǎn)部署了。但如果其中一個(gè)你的 ElasticSearch 查詢消耗了你的 m3.large EC2 實(shí)例的 90% 可用內(nèi)存,并且?guī)追昼姾竽悴樵儾怀鰹槭裁?。你不能真的提供緩慢的性能直到你查出性能差勁的根本原因,因此你想?ElasticSearch 遷移到一個(gè)更大內(nèi)存的服務(wù)器,15 GB 內(nèi)存的 m3.xlarge 。

使用 Flocker,這會(huì)變得非常容易。僅僅需要用新的 IP 地址更新你的 deployment.yml,然后重新運(yùn)行 flocker-deploy,你的 ElasticSearch 容器和它的數(shù)據(jù)卷將被自動(dòng)移動(dòng)到新的節(jié)點(diǎn),將已經(jīng)正式去原來節(jié)點(diǎn)的連接自動(dòng)路由到新的節(jié)點(diǎn)。

老的:

"version": 1
"nodes":
  "172.16.255.250": ["elasticsearch"]
  "172.16.255.251": ["logstash"]
  "172.16.255.252": ["kibana"]

新的:

"version": 1
"nodes":
  "172.16.255.250": []
  "172.16.255.251": ["logstash"]
  "172.16.255.252": ["kibana"]
  "172.16.255.253": ["elasticsearch"]

這里說明了當(dāng)你重新運(yùn)行 flocker-deploy 從節(jié)點(diǎn)1去遷移 ElasticSearch 到節(jié)點(diǎn)2的時(shí)候發(fā)生了什么:

Flocker 檢查是否你已經(jīng)改變了你的配置

因?yàn)樗雌饋砟愫孟褚呀?jīng)從 172.16.255.250 移動(dòng) ElasticSearch 到 172.16.255.253 了,它初始化一個(gè)遷移

遷移通過推送整個(gè)節(jié)點(diǎn)1的數(shù)據(jù)卷內(nèi)容到節(jié)點(diǎn)2開始。在這個(gè)期間,節(jié)點(diǎn)1依然接受連接,因此你的用戶或其他依賴于那些數(shù)據(jù)的進(jìn)程不會(huì)感受任何連接問題

一旦所有的數(shù)據(jù)被拷貝完,運(yùn)行在節(jié)點(diǎn)1的應(yīng)用被關(guān)閉

數(shù)據(jù)被復(fù)制過來之后的任何對(duì)數(shù)據(jù)卷的改變這時(shí)將被復(fù)制,依賴于你的數(shù)據(jù)庫多繁忙,這可能只是幾百kb 的變化

一旦這些最后的少許改變被復(fù)制過來,F(xiàn)locker 不干涉節(jié)點(diǎn)2的卷

ElasticSearch 在節(jié)點(diǎn)2啟動(dòng)

我們稱這個(gè)方式為 two-phase 推送,因?yàn)閿?shù)據(jù)在兩個(gè)階段遷移。在第一階段,也是時(shí)間最長(zhǎng)的階段,當(dāng)數(shù)據(jù)卷被拷貝過來,數(shù)據(jù)庫繼續(xù)提供連接服務(wù)。它僅僅在第二階段,應(yīng)用程序會(huì)經(jīng)歷停機(jī)。我們正在積極地朝著一個(gè)世界,當(dāng)應(yīng)用運(yùn)行在一個(gè)容器中,它們的數(shù)據(jù)可以在兩臺(tái)機(jī)器之間無縫遷移,甚至整個(gè)數(shù)據(jù)中心在一個(gè)基于虛機(jī)的世界靈活的移動(dòng)。

我希望這篇文章對(duì)你部署和遷移 ELK 有用。如果想獲取更多信息,請(qǐng)移步 follow along with our step-by-step Getting Started guide 來學(xué)習(xí)安裝和使用 Flocker。除了 ElasticSearch 之外,我們還有部署和管理 MongoDB, PostgreSQL 和 MySQL 的例子。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26357.html

相關(guān)文章

  • 關(guān)于Docker Swarm,你可能需要了解更實(shí)踐經(jīng)驗(yàn)

    摘要:雖然可以使用相同的方式部署應(yīng)用到云端,使用外部負(fù)載均衡器,但動(dòng)態(tài)添加或者減少負(fù)載均衡節(jié)點(diǎn)依舊是痛點(diǎn)。這對(duì)使用外部負(fù)載均衡器幫助巨大。 數(shù)人云今天帶來的本篇文章將分享Docker在應(yīng)用程序生命周期每個(gè)階段中所扮演的角色,以及遷移到Swarm集群時(shí)需要考慮的問題。 利用Docker來開發(fā) Docker讓工作更輕松。如需要一個(gè)部署安裝MySQL數(shù)據(jù)庫,或者安裝Ghost,又或者Redis數(shù)據(jù)...

    bitkylin 評(píng)論0 收藏0
  • Kubernetes 簡(jiǎn)介

    摘要:對(duì)于應(yīng)用,我們經(jīng)常需要部署多個(gè)實(shí)例用于負(fù)載均衡,在,可以通過服務(wù)非常快速的創(chuàng)建一個(gè)內(nèi)部負(fù)載均衡。這意味著是一個(gè)內(nèi)部負(fù)載均衡器。因此,代表著流量入口和負(fù)載均衡的作用。 什么是Docker Docker不是虛擬機(jī)。 在很多的網(wǎng)絡(luò)教案中喜歡將Docker與虛擬機(jī)進(jìn)行類比,這種類比用于理解Docker的優(yōu)勢(shì)有著不錯(cuò)的作用,因?yàn)镈ocker與虛擬機(jī)有著相同的優(yōu)勢(shì)。但是從技術(shù)而言,虛擬機(jī)技術(shù)則是對(duì)...

    EasonTyler 評(píng)論0 收藏0
  • 使用 Docker 快速部署 Elasticsearch 集群

    摘要:本文將使用容器使用編排快速部署集群,可用于開發(fā)環(huán)境單機(jī)多實(shí)例或生產(chǎn)環(huán)境部署。在集群每一個(gè)節(jié)點(diǎn)上執(zhí)行安裝使用安裝重啟服務(wù)驗(yàn)證分詞默認(rèn)使用分詞器只能處理英文,中文會(huì)被拆分成一個(gè)個(gè)的漢字,沒有語義。 本文將使用Docker容器(使用docker-compose編排)快速部署Elasticsearch 集群,可用于開發(fā)環(huán)境(單機(jī)多實(shí)例)或生產(chǎn)環(huán)境部署。 注意,6.x版本已經(jīng)不能通過 -Epat...

    tracymac7 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<