【編者按】“在審視任何一個(gè)新東西的時(shí)候,我都會(huì)先去嘗試發(fā)現(xiàn)它與production ready之間到底有多少距離”,這是杜航寫(xiě)作本文的初衷。杜航首先考慮到的是log的處理,尤其對(duì)于Docker這個(gè)短暫存在的運(yùn)行環(huán)境,log的處理更為重要。Volume雖然可以解決這個(gè)問(wèn)題,但是隨著容器數(shù)量的增多,工作量也會(huì)劇增。杜航?jīng)Q定在靈雀云上搭建一個(gè)ELK stack(ELK是一套常用的開(kāi)源日志監(jiān)控和分析系統(tǒng),包括一個(gè)分布式索引與搜索服務(wù)Elasticsearch,一個(gè)管理日志和事件的工具logstash,和一個(gè)數(shù)據(jù)可視化服務(wù)Kibana)。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、平利網(wǎng)站維護(hù)、網(wǎng)站推廣。作者杜航,Websense云基礎(chǔ)架構(gòu)組開(kāi)發(fā)經(jīng)理,專注于OpenStack和Docker。以下為原文:
第一次接觸CaaS這個(gè)概念,第一次接觸靈雀云的時(shí)候,我并沒(méi)有像很多人一樣馬上推送一個(gè)應(yīng)用以體驗(yàn)Docker所帶來(lái)的快感。因?yàn)槲覐牟粦岩蒬ocker的出現(xiàn)所解決環(huán)境依賴性問(wèn)題,提高了產(chǎn)品部署速度。我也從不懷疑靈雀云作為一個(gè)CaaS共有云平臺(tái)對(duì)容易的管理,調(diào)度,運(yùn)行的能力。這就是Docker以及CaaS平臺(tái)出現(xiàn)帶來(lái)的優(yōu)勢(shì),一分鐘之前我還剛把代碼提交到github,一分鐘之后我提交的代碼已經(jīng)在生產(chǎn)環(huán)境上線。可能是因?yàn)槲议L(zhǎng)期和一個(gè)十分嚴(yán)謹(jǐn)又追求完美的英國(guó)團(tuán)隊(duì),特別是英國(guó)運(yùn)維團(tuán)隊(duì)合作的背景,在審視任何一個(gè)新東西的時(shí)候我都會(huì)先去嘗試發(fā)現(xiàn)它與production ready之間到底有多少距離。所以當(dāng)我準(zhǔn)備把應(yīng)用推送到靈雀云之前,我首先考慮的是除了應(yīng)用之外我還需要部署什么樣的服務(wù)來(lái)達(dá)到生產(chǎn)環(huán)境的標(biāo)準(zhǔn)。
第一點(diǎn)考慮到的是log的處理。我想我不需要花太多篇幅解釋log的重要性,大家應(yīng)該都有體會(huì)。Docker作為一個(gè)短暫存在(ephemeral)的運(yùn)行環(huán)境,數(shù)據(jù)的持久化是一個(gè)要解決的問(wèn)題。CaaS平臺(tái)不會(huì)像IaaS那樣給你vm的登錄管理權(quán)限,所以你不能想把docker容器運(yùn)行在物理主機(jī)或者虛擬主機(jī)上那樣通過(guò)將存儲(chǔ)卷映射到主機(jī)上或者鏈接一個(gè)數(shù)據(jù)容器(data-only container)來(lái)保存log數(shù)據(jù)。靈雀云平臺(tái)提供了存儲(chǔ)卷的功能,可以將log數(shù)據(jù)存放在一個(gè)穩(wěn)定的云存儲(chǔ)平臺(tái)(從鏈接看是AWS S3)并提供下載。當(dāng)時(shí)當(dāng)你管理上百個(gè)甚至上千個(gè)容器的時(shí)候,這種方式也會(huì)給你帶來(lái)很大的工作量。綜合以上原因,我決定在靈雀云上搭建一個(gè)ELK stack。(E – Elasticsearch, L – Logstash, K – Kibana)
我沒(méi)有使用網(wǎng)上現(xiàn)有的ELK image,原因有三:
深度CentOS依賴者;
體驗(yàn)一下靈雀云提供的代碼倉(cāng)庫(kù)集成的功能;
將容器鏡像存儲(chǔ)在靈雀云鏡像倉(cāng)庫(kù)可以提高服務(wù)啟動(dòng)速度
代碼可以在github找到https://github.com/darkheaven1983/elk
以下是如何在靈雀云上部署ELK stack的具體步驟:
1. 關(guān)聯(lián)github代碼倉(cāng)庫(kù)與靈雀云構(gòu)建系統(tǒng),指明Dockerfile在github的路徑,并創(chuàng)建一個(gè)構(gòu)建
2. git push代碼到github觸發(fā)靈雀云構(gòu)建docker鏡像
鏡像build成功之后會(huì)出現(xiàn)在個(gè)人鏡像參倉(cāng)庫(kù)里面
3. 通過(guò)靈雀云CLI提供的compose功能一鍵部署ELK stack。Alauda支持的compose在docker compose yaml文件的基礎(chǔ)之上做了一些針對(duì)自己平臺(tái)的改動(dòng)。
以下是elk-alauda.yml的內(nèi)容
elasticsearch: extends: file:./docker-compose.yml service:elasticsearch expose: -"9200" volumes: -/var/lib/elasticsearch:10 kibana: extends: file:./docker-compose.yml service:kibana ports: -"5601/http" links: -elasticsearch:elasticsearch logstash: extends: file:./docker-compose.yml service:logstash ports: -"5000" links: -elasticsearch:elasticsearch
extends:關(guān)聯(lián)docker compose yaml文件當(dāng)中對(duì)此容器的配置。
expose:指定一個(gè)只有Alauda內(nèi)部才能訪問(wèn)的端口,我將elsaticsearch的9200端口聲明為內(nèi)部端口保證了數(shù)據(jù)的安全性,避免將9200端口暴露在公網(wǎng)上。
volumes:創(chuàng)建一個(gè)存儲(chǔ)卷,確保數(shù)據(jù)的持久化 – 可以通過(guò)alauda CLI中backup功能定期保存存儲(chǔ)卷,并且從某一個(gè)指定的存儲(chǔ)卷恢復(fù)數(shù)據(jù)。
ports:指定一個(gè)公網(wǎng)可訪問(wèn)的端口,此端口可以為load balance之后的http端口(80),也可以是load balance之后的TCP端口(隨機(jī))。
links:容器之間的連接 – 通過(guò)Alauda提供的服務(wù)發(fā)現(xiàn)功能鏈接多個(gè)容器是容器間可以互相訪問(wèn)。
至此,ELK stack在alauda平臺(tái)的搭建已經(jīng)結(jié)束。由于本實(shí)驗(yàn)只是一個(gè)PoC的功能,所以logstash的輸入是tcp,歡迎大家加入更加復(fù)雜的logstash配置。
測(cè)試結(jié)果:
nc logstash-darkheaven.myalauda.cn 62316 < /var/log/yum.log
網(wǎng)頁(yè)題目:CaaS環(huán)境下實(shí)踐經(jīng)驗(yàn)總結(jié)(一):ELKStack部署
URL標(biāo)題:http://www.rwnh.cn/article46/cgcehg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、標(biāo)簽優(yōu)化、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)