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

資訊專欄INFORMATION COLUMN

關(guān)于k8s集群容器日志收集的總結(jié)

jeffrey_up / 2182人閱讀

摘要:我推薦你使用進行日志收集,將作為的出口。集群目前暫時沒有提供日志查看機制。以如下的形式啟動容器,容器日志將發(fā)往配置的。

【作者barnett】本文介紹了k8s官方提供的日志收集方法,并介紹了Fluentd日志收集器并與其他產(chǎn)品做了比較。最后介紹了好雨云幫如何對k8s進行改造并使用ZeroMQ以消息的形式將日志傳輸?shù)浇y(tǒng)一的日志處理中心。

容器日志存在形式

目前容器日志有兩種輸出形式:

stdout,stderr標準輸出

這種形式的日志輸出我們可以直接使用docker logs查看日志,k8s集群中同樣集群可以使用kubectl logs類似的形式查看日志。

日志文件記錄

這種日志輸出我們無法從以上方法查看日志內(nèi)容,只能tail日志文件查看。

在k8s官方文檔中,對于以上兩種形式的日志形式我們?nèi)绻胧占⒎治鋈罩镜脑?,官方推薦以下兩種對策:
對于第一種文檔中這樣說:

When a cluster is created, the standard output and standard error output of each container can be ingested using a Fluentd agent running on each node into either Google Cloud Logging or into Elasticsearch and viewed with Kibana.

When a Kubernetes cluster is created with logging to Google Cloud Logging enabled, the system creates a pod called fluentd-cloud-logging on each node of the cluster to collect Docker container logs. These pods were shown at the start of this blog article in the response to the first get pods command.

就說說集群啟動時會在每個機器啟動一個Fluentd agent收集日志然后發(fā)送給
Elasticsearch。
實現(xiàn)方式是每個agent掛載目錄/var/lib/docker/containers使用fluentdtail插件掃描每個容器日志文件,直接發(fā)送給Elasticsearch。

對于第二種:

A second container, using the gcr.io/google_containers/fluentd-sidecar-es:1.2 image to send the logs to Elasticsearch. We recommend attaching resource constraints of 100m CPU and 200Mi memory to this container, as in the example.

A volume for the two containers to share. The emptyDir volume type is a good choice for this because we only want the volume to exist for the lifetime of the pod.

Mount paths for the volume in each container. In your primary container, this should be the path that the applications log files are written to. In the secondary container, this can be just about anything, so we put it under /mnt/log to keep it out of the way of the rest of the filesystem.

The FILES_TO_COLLECT environment variable in the sidecar container, telling it which files to collect logs from. These paths should always be in the mounted volume.

其實跟第一種類似,但是是把Fluentd agent起在業(yè)務(wù)同一個pod中共享volume然后實現(xiàn)對日志文件的收集發(fā)送給Elasticsearch

fluentd分析

對于fluentd官方對其的定義是:

#### 統(tǒng)一日志層
Fluentd通過在后端系統(tǒng)之間提供統(tǒng)一的日志記錄層來從后端系統(tǒng)中解耦數(shù)據(jù)源。
此層允許開發(fā)人員和數(shù)據(jù)分析人員在生成日志時使用多種類型的日志。
統(tǒng)一的日志記錄層可以讓您和您的組織更好地使用數(shù)據(jù),并更快地在您的軟件上進行迭代。
也就是說fluentd是一個面向多種數(shù)據(jù)來源以及面向多種數(shù)據(jù)出口的日志收集器。另外它附帶了日志轉(zhuǎn)發(fā)的功能。

fluentd特點

部署簡單靈活

開源

經(jīng)過驗證的可靠性和性能

社區(qū)支持,插件較多

使用json格式事件格式

可拔插的架構(gòu)設(shè)計

低資源要求

內(nèi)置高可靠性

fluentd與Logstash

引用一張圖對比這兩個日志收集工具。具體它們兩個項目的對比請參考:

Fluentd vs. Logstash: A Comparison of Log Collectors

fluentd與zeroMQ

把這兩個產(chǎn)品放在一起比較實屬不怎么合適,因為它們屬于不同的陣營,完成不同的功能需求。由于fluentd具有消息轉(zhuǎn)發(fā)的功能,姑且將其與以zeroMQ為例的消息中間件的關(guān)系做個說明:
在大型系統(tǒng)架構(gòu)中,有使用zeroMQ進行大量的日志轉(zhuǎn)發(fā)工作。在fluentd中有兩個項目完成日志的中轉(zhuǎn)路由的任務(wù):golang編寫的:fluentd-forwarder 和c寫的fluent-bit

那么是否意味著你需要做出選擇呢?其實不然。
著眼fluentd的定義和zeroMQ的定義。其實它們是一種合作關(guān)系。如果你是大型的架構(gòu)系統(tǒng),日志量很龐大。我推薦你使用fluentd進行日志收集,將zeroMQ作為fluentd的出口。就是說fluentd完成統(tǒng)一收集,zeroMQ完成日志傳輸。如果你的系統(tǒng)并不龐大,你就無需zeroMQ來傳輸了。

因此你也無需關(guān)注這兩個產(chǎn)品的性能比較。雖然它們都有高性能的定義。

zeroMQ的性能測試結(jié)果:zeroMQ 與JeroMQ性能對比

容器日志收集總結(jié)

如上所描述的一樣,無論你的業(yè)務(wù)容器日志呈現(xiàn)方式有什么不同,你都可以使用統(tǒng)一的日志收集器收集。以下簡介三種情況下日志手機方式推薦:

k8s集群
這種方式上文中已經(jīng)提到了官方的解決方案,你只需要安裝此方案部署即可。

docker swarm集群
docker swarm目前暫時沒有提供日志查看機制。但是docker cloud提供了與kubectrl logs類似的機制查看stdout的日志。目前還沒有fluentd插件直接對服務(wù)進行日志收集,暫時考慮直接使用使用跟容器一樣的機制收集。docker service create 支持--log-driver

自己部署的docker容器
從docker1.8內(nèi)置了fluentd log driver。以如下的形式啟動容器,容器stdout/stderr日志將發(fā)往配置的fluentd。如果配置后,docker logs將無法使用。另外默認模式下如果你配置得地址沒有正常服務(wù),容器無法啟動。你也可以使用fluentd-async-connect形式啟動,docker daemon則能在后臺嘗試連接并緩存日志。

docker run --log-driver=fluentd --log-opt fluentd-address=myhost.local:24224

同樣如果是日志文件,將文件暴露出來直接使用fluentd收集。

好雨云幫對kubernetes服務(wù)日志的統(tǒng)一處理方式 需求是什么?

云幫的公有云服務(wù),平臺上跑著有企業(yè)級應(yīng)用和小型用戶應(yīng)用。我們怎么做到統(tǒng)一的日志收集和展示?又怎么做到面對企業(yè)級應(yīng)用的日志輸出和分析?
上面提到的方式不能完全解決我們的問題。

實踐

首先目前kubernetes版本(v1.5.1)還不支持pod級別的日志log-driver設(shè)置,但是我們知道容器是可以設(shè)置log-driver的。這里也有關(guān)于這個問題的討論。我們?yōu)榱藢崿F(xiàn)在用戶網(wǎng)絡(luò)(即pod容器網(wǎng)絡(luò))下的可配置日志轉(zhuǎn)發(fā)方式。我們暫時修改了kubernetes源碼使其支持設(shè)置容器的log-driver。默認情況下我們使用自己實現(xiàn)的zeroMQ-driver直接將容器日志通過0MQ發(fā)到日志統(tǒng)一處理中心。在處理中心統(tǒng)一完成下一步處理。如果平臺用戶需要將日志向外輸出或者直接對接平臺內(nèi)日志分析應(yīng)用,我們的處理是在應(yīng)用pod中啟動日志收集插件容器(封裝擴展的fluentd),根據(jù)用戶的需要配置日志出口,實現(xiàn)應(yīng)用級日志收集。這里你需要明確的是:容器日志首先是由docker-daemon收集到,再根據(jù)容器log-driver配置進行相應(yīng)操作,也就是說如果你的宿主機網(wǎng)絡(luò)與容器網(wǎng)絡(luò)不通(k8s集群),日志從宿主機到pod中的收集容器只有兩種方式:走外層網(wǎng)絡(luò),文件掛載。
我們采用文件掛載方式。

如果您對本文提到的k8s官方收集、處理日志以及對好雨云幫的日志收集方式有疑問或問題,歡迎留言,作者會在第一時間解答。

云盟認證成員:barnett

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

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

相關(guān)文章

  • 關(guān)于k8s集群容器日志收集總結(jié)

    摘要:我推薦你使用進行日志收集,將作為的出口。集群目前暫時沒有提供日志查看機制。以如下的形式啟動容器,容器日志將發(fā)往配置的。 【作者barnett】本文介紹了k8s官方提供的日志收集方法,并介紹了Fluentd日志收集器并與其他產(chǎn)品做了比較。最后介紹了好雨云幫如何對k8s進行改造并使用ZeroMQ以消息的形式將日志傳輸?shù)浇y(tǒng)一的日志處理中心。 容器日志存在形式 目前容器日志有兩種輸出形式: ...

    or0fun 評論0 收藏0
  • 拉勾網(wǎng)基于 UK8S平臺容器化改造實踐

    摘要:宋體本文從拉勾網(wǎng)的業(yè)務(wù)架構(gòu)日志采集監(jiān)控服務(wù)暴露調(diào)用等方面介紹了其基于的容器化改造實踐。宋體此外,拉勾網(wǎng)還有一套自研的環(huán)境的業(yè)務(wù)發(fā)布系統(tǒng),不過這套發(fā)布系統(tǒng)未適配容器環(huán)境。寫在前面 拉勾網(wǎng)于 2019 年 3 月份開始嘗試將生產(chǎn)環(huán)境的業(yè)務(wù)從 UHost 遷移到 UK8S,截至 2019 年 9 月份,QA 環(huán)境的大部分業(yè)務(wù)模塊已經(jīng)完成容器化改造,生產(chǎn)環(huán)境中,后臺管理服務(wù)已全部遷移到 UK8...

    CoorChice 評論0 收藏0
  • 構(gòu)建與定制:唯品會 PaaS 基于 Kubernetes 實踐

    摘要:基于年底或年初沒有推廣的現(xiàn)狀,唯品會部門目前已經(jīng)做了兩年的時間。唯品會現(xiàn)狀唯品會目前線上有一千多個域,每個域之間相互的依賴比較復(fù)雜,每次的部署發(fā)布困難。這是唯品會的架構(gòu),主要包含持續(xù)集成和持續(xù)部署。 數(shù)人云上海&深圳兩地容器之Mesos/K8S/Swarm三國演義的嘉賓精彩實錄第三更來啦。唯品會是數(shù)人云Meetup的老朋友,去年曾做過RPC服務(wù)框架和Mesos容器化的分享。本次分享中,...

    JackJiang 評論0 收藏0
  • serverless在微店node領(lǐng)域探索應(yīng)用

    摘要:參與者流量來自于內(nèi)部系統(tǒng)和外部流量,其中大部分來自于外部流量。水平擴容服務(wù)的水平擴容重要性不言而喻。 背景 目前微店中臺團隊為了滿足公司大部分產(chǎn)品、運營以及部分后端開發(fā)人員的嘗鮮和試錯的需求,提供了一套基于圖形化搭建的服務(wù)端接口交付方案,利用該方案及提供的系統(tǒng)可生成一副包含運行時環(huán)境定義可立即運行的工程代碼,最后,通過 某種serverless平臺 實現(xiàn)生成后代碼的部署、CI、運行、反...

    mikyou 評論0 收藏0
  • 容器云UK8S】新手指導(dǎo)

    摘要:詳細請見產(chǎn)品價格產(chǎn)品概念使用須知名詞解釋漏洞修復(fù)記錄集群節(jié)點配置推薦模式選擇產(chǎn)品價格操作指南集群創(chuàng)建需要注意的幾點分別是使用必讀講解使用需要賦予的權(quán)限模式切換的切換等。UK8S概覽UK8S是一項基于Kubernetes的容器管理服務(wù),你可以在UK8S上部署、管理、擴展你的容器化應(yīng)用,而無需關(guān)心Kubernetes集群自身的搭建及維護等運維類工作。了解使用UK8S為了讓您更快上手使用,享受UK...

    Tecode 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<