999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Filebeat自動收集Kubernetes日志的分析系統①

2018-09-17 08:49:00翟雅榮于金剛
計算機系統應用 2018年9期
關鍵詞:系統

翟雅榮,于金剛

1(中國科學院大學,北京 100049)

2(中國科學院 沈陽計算技術研究所,沈陽 110168)

日志是記錄系統行為的一種方式,具有非常重要的作用.日志信息可作為系統排錯和性能優化的依據;通過日志,可以有效的監控系統的運行狀況,如性能信息、故障檢測、入侵檢測等;日志可以用于用戶的行為信息分析,發現潛在商機;日志可以幫助開發人員找到bug的來源,修復漏洞.并且隨著數據挖掘、大數據等技術的不斷發展,數據也愈發凸顯重要,日志作為數據分析的一大來源,日志收集分析系統也愈發凸顯重要.但隨著互聯網、大數據等快速發展,系統應用越來越復雜,規模越來越大,系統產生的日志急劇增加[1],給日志的收集、存儲和分析帶來很多挑戰.

傳統的日志存儲在本機磁盤上,查看日志時需要登陸到宿主機上,用grep等工具進行查看分析,這種方式的效率極低,并且隨著機器數量的增多,排查問題所花費的時間隨之增加,并且這種方式很難進行比較復雜的分析,不能充分利用起日志的價值.隨著Docker容器技術的不斷發展,Docker容器技術的應用范圍也越來越廣.與傳統的主機、虛擬機技術相比,Docker容器產生的日志分散在不同相互隔離的容器中,并且事先并不知道容器應用部署在哪一臺機器上,給日志的收集帶來一定的挑戰,這也迫切需要一種方式來收集存儲日志.容器具有即用即銷的特點,容器中的存儲會隨著容器的關閉而被刪除,雖然可以將日志文件掛載到宿主機上,但是容器會經常漂移,給日志的統一查看帶來挑戰.本文采用Kubernetes實現容器管理、服務發現及調度,使用主流的開源日志收集系統ELK實現日志的存儲、查看,并通過緩存技術Redis消息隊列提供可靠的數據傳輸,將分散在不同容器中的日志統一收集存儲,提高運維人員的工作效率.

1 相關技術

1.1 Docker技術

Docker[2]是一個開源基于Linux操作系統虛擬化技術的高級容器引擎,可以將應用及開發環境打包到一個可移植的容器中.為了避免啟動和維護虛擬機的開銷,Docker使用Linux內核資源隔離技術(如cgroups、namespace)、聯合文件系統(如aufs)等技術實現多個容器在一個Linux內核中相互獨立[3].與傳統的虛擬機需要虛擬出一個完整的操作系統相比,Docker是一種細粒度、輕量級的虛擬化技術,屬于操作系統級虛擬化.圖1顯示Docker容器技術與虛擬機的原理對比.

圖1 Docker容器與虛擬機的原理對比

Docker是秒級啟動,而虛擬機的啟動速度是分鐘級;Docker容器作為一種輕量級的虛擬技術,其單機支持上千容器,而虛擬機由于需要虛擬出完整的操作系統,單機一般只支持幾十個;Docker資源利用率比虛擬機高,資源占用少[4].

1.2 Kubernetes技術

Kubernetes(K8s)[5]是Goolge開源的軟件,提供了一個完備的分布式系統支撐平臺,是Docker生態圈中的重要一員.它提供了強大的故障發現、負載均衡、自我修復、滾動升級、資源調度管理、自動擴縮容等多個功能,具備的完善的集群管理的能力.并且其對現有的平臺侵入性較小,現有平臺容易升級改造遷移到Kubernetes上.

Kubernetes集群由 Master節點和Node節點組成,其中Master節點運行集群管理方面的進程(kubeapiserver、kuber-controller-manager和 kube-scheduler),負責實現整個集群的Pod調度、彈性伸縮、安全控制、資源管理等.Node節點是集群的工作節點,主要負責運行真正的應用程序,通過運行kublete、kubeproxy服務進程,來負責Pod的創建、啟動、監控等,kube-proxy還提供了負載均衡.與傳統的容器相比,Pod是管理的最小運行單元,而并非容器.圖2顯示Kubernetes的系統架構圖.

1.3 相關研究

目前,針對Kubernetes的日志收集提出了多種方案.Kubernetes官方推薦采用的方案是Flunetd +Elasticsearch + Kibana,通過使用DaemonSet的方式在每一個Node節點上啟動一個Flunetd來收集日志文件(包括/var/log、/var/lib/docker/containers),常見的收集器還有Filebeat、Logstash;陳堅娟等人[6]提出Logstash agent + Kafka + Logstash + Elasticsearch +Kibana結構,并將容器產生的日志掛載到宿主機的指定目錄上,通過Node上啟動的Logstash agent 來收集指定目錄及/var/lib/docker目錄下的日志;羅東鋒等人[7]提出了基于Docker的大規模日志采集與分析系統,主要使用Flunetd + Kafka + Flunetd + Elasticsearch +Kibana實現大規模日志采集;周德永等人[8]提出了在Node節點上部署Logspout收集日志,并Logstash Shipper轉發送容器日志,后轉發給Redis做緩沖,再有Logstash轉發至Elasticsearch進行存儲,Kibana進行可視化.

Filebeat具有占用內存較低,性價比較高的特點,本文采用Filebeat作為日志文件的采集器,并針對兩種輸出方式的日志文件采用不同的收集方式,輸出到控制臺的日志文件,這類文件主要保存在/var/lib/docker/containers/目錄下,/var/log/container軟鏈接到該目錄下,該日志文件主要通過在Node節點上部署Filebeat進行收集;未輸出到控制臺的日志文件,這類文件主要根據業務需求保存在不同的目錄下,并且日志文件的格式也不盡相同,此類日志文件通過在每一個Pod節點部署Filebeat來進行日志收集,此方法可解決傳統日志文件通過掛載到宿主機上進行收集時需要統一日志文件收集的規則、目錄和輸出方式的缺點.

圖2 Kubernetes系統架構

2 系統架構

該系統的整個架構(如圖3)從左到右共分為5層,第1層數據采集層,主要負責采集業務集群中的日志,并將日志發送給Redis服務中,采用的日志收集器為Filebeat;第2層為數據緩存層,該層使用Redis作為緩存;第3層為數據轉發層,該層主要負責去Redis集群拉數據,轉發到Elasticsearch;第4層為數據存儲層,該層使用Elasticsearch把收到的數據進行存儲,寫入磁盤;第5層主要使用Kibana處理數據檢索請求,并進行數據展示[7].

圖3 日志分析系統架構圖

2.1 數據采集層

數據采集層主要負責采集各個服務器上不同的文件,進行預處理后將數據傳送到數據緩存層.目前主流的采集器主要有Logstash、Fluentd、Filebeat,本文采用Filebeat作為主要的采集器,Filebeat相比與Logstash、Fluentd的內存使用較低,性價比較高.

表1 Logstash、Fluentd、Filebeat對比

本文采用Kubernetes來實現容器管理、服務發現及調度,使用Filebeat作為采集器來采集日志文件.日志文件按照輸出的不同可以分為兩種:1)輸出到控制臺的日志文件.這類文件主要保存在/var/log/containers/目錄下;2)應用日志(未輸出到控制臺的日志)輸出到指定文件下的文件.本文針對兩種不同的日志文件,使用不同的方式.如圖4為日志采集層.

圖4 日志采集層

輸出到控制臺的日志文件,這類文件都會保存在/var/lib/docker/containers/目錄下,以*-json.log的命名,/var/log/containers軟鏈接到該目錄下.該類日志文件主要使用每個Node節點上個運行的一個Filebeat容器進行日志采集,然后匯總到Redis緩存中.本文采用以DaemonSet的方式將Filebeat作為Kubernetes的一種資源對象運行在Node節點上.

針對未輸出到控制臺的日志文件,這些文件主要存儲在容器中的指定目錄下,由于不同應用產生的日志文件格式不同,位置不同,如果采用將Pod的日志掛載到宿主機上,進行日志收集,需要統一日志收集規則、目錄和輸出方式,而各個文件各有不同,同時為了高擴展性、方便維護和升級,本文針對這類文件采用以每個Pod為單位進行日志收集.用戶也可根據實際需求,來決定是否需要在Pod中使用Filebeat.

2.2 數據緩存層

為了防止發送和接收速率不同而造成數據丟失問題,在數據采集層和數據轉發層之間搭建了消息隊列,起到緩存作用.Redis[9]是一個開源、高性能、基于內存的鍵值對數據庫,支持數據持久化和訂閱發布機制等高級特性,能夠滿足本系統的要求.為提高系統的性能和可靠性,該層使用Redis消息隊列作為緩存.

2.3 數據轉發層

數據轉發層作為Redis隊列的消費者,從Redis隊列中拉取消息并轉發到Elasticsearch數據存儲層進行處理.本文采用Logstash實現日志的拉取、處理、轉發.由于日志中存在字段不完整、格式不一致或者噪聲數據,為了降低這些對數據存儲帶來的沖擊,同時提高數據的質量,在數據轉發層需要對數據進行預處理,使數據統一格式,過濾掉噪聲數據等.

輸出到控制臺的的日志文件,/var/log/containers/*-*-*_*_*.log代表的命名規則為:podName_namespace_deploymentName-containerID.log,針對日志文件名稱解析出deploymentName、podName、containerID、namespace字段,以下是Logstash部分配置信息:

2.4 數據存儲層

數據存儲層使用Elasticsearch集群,數據轉發層將日志逐條插入到數據存儲層的Elasticsearch集群中.Elasticsearch[10]是一個實時分布式搜索和分析引擎,基于Apache Lucene(TM)的開源搜索引擎,使用Lucene作為實現所有索引和搜索的功能,它通過簡單的RESTful API來隱藏Lucene的復雜性,使全文搜索變得簡單.

2.5 數據檢索和展示層

Kibana是開源的數據分析和圖像化展示的平臺.Kibana基于Apache License2.0 開源協議,可以對Elasticsearch索引中存儲的數據進行搜索、分析、查看,可以進行數據分析和統計,并且可以繪制各種圖表展示結果.Kibana支持布爾運算符、通配符和字段篩選進行模糊匹配,并且其提供了Web界面,方便用戶查看結果.

3 實驗測試

本文重點驗證系統整體的有效性.通過部署在同一局域網的5臺PC機搭建集群進行測試.每臺PC機的硬件換件為主頻3.1 GHz的四核CPU、內存4 GB、磁盤200 GB,軟件環境為CentOS 7.2(64 bit)、Elasticsearch 6.0.0、Kibana 6.0.0、Filebeat 6.0.0、Redis、Kubernetes 1.6.其中1臺作為Kubernetes的Master節點,3臺作為Kubernetes的Node節點,Kubernetes的集群部署信息如表2.圖5、圖6為實驗結果.

表2 Kubernetes集群部署信息

圖5 未輸出到控制臺日志

4 結論

本文將零散的日志統一收集存儲,并采用Kubernetes實現容器管理、服務發現及調度,使用主流的開源日志收集系統ELK實現日志的存儲、查看,并通過緩存技術Redis消息隊列提供可靠的數據傳輸,提高運維人員的工作效率.本系統可實現實時高效收集日志、處理分析,并進行可視化展示.由于使用Kubernetes作為容器的管理工具,可實現快速部署、自動擴縮容、資源管理等.本系統不僅解決了日志的統一收集,針對不同的日志文件采用不同的收集策略,用戶靈活配置,同時也解決了容器的即用即銷造成的漂移問題.下一步 工作將對采集到的日志進行挖掘,發現有價值的信息.

圖6 輸出到控制臺日志

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 国产91麻豆视频| 思思99热精品在线| 欧美中日韩在线| 成人欧美日韩| jizz国产视频| 亚洲综合经典在线一区二区| 一级全黄毛片| 亚洲人成网站在线播放2019| 日本福利视频网站| 美女啪啪无遮挡| 露脸真实国语乱在线观看| …亚洲 欧洲 另类 春色| 日本黄网在线观看| 精品人妻系列无码专区久久| 少妇被粗大的猛烈进出免费视频| 国产精品久久久久久久久久久久| 四虎影视永久在线精品| 欧美69视频在线| 精品少妇人妻无码久久| 国产成人1024精品| 91精品伊人久久大香线蕉| 97在线视频免费观看| 国产一区二区三区在线观看免费| 好吊妞欧美视频免费| 国产剧情无码视频在线观看| 国产精品福利在线观看无码卡| 亚洲综合第一区| 麻豆国产原创视频在线播放| 色综合中文综合网| 亚洲精品波多野结衣| 成人久久精品一区二区三区| 欧美yw精品日本国产精品| 九九久久精品免费观看| 一本久道久综合久久鬼色| Aⅴ无码专区在线观看| 亚洲综合第一页| 免费可以看的无遮挡av无码 | 中国国产A一级毛片| 欧美在线一二区| 国产综合精品一区二区| 色久综合在线| 亚洲天堂自拍| 中文无码日韩精品| 精品人妻无码中字系列| 好紧太爽了视频免费无码| 亚洲欧美日韩精品专区| 亚洲经典在线中文字幕| 欧美啪啪精品| 99热这里只有精品在线观看| 中文字幕啪啪| 亚洲熟女偷拍| 东京热av无码电影一区二区| 欧美在线黄| 黄色国产在线| 毛片卡一卡二| av一区二区三区高清久久| 熟妇人妻无乱码中文字幕真矢织江 | 久久国产精品影院| 午夜丁香婷婷| 老熟妇喷水一区二区三区| 国内视频精品| 国产91精品最新在线播放| 不卡午夜视频| 中国黄色一级视频| 丰满人妻久久中文字幕| 啊嗯不日本网站| 亚洲天堂网2014| 女同久久精品国产99国| 欧美一级在线看| 国产精品久久久久无码网站| a级毛片免费网站| 99在线观看国产| 无码中文AⅤ在线观看| 国产色网站| 性做久久久久久久免费看| 91精品视频在线播放| 香蕉在线视频网站| 国产导航在线| 91成人在线观看视频| 77777亚洲午夜久久多人| 怡红院美国分院一区二区| 激情综合激情|