• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ELK4+Kafka的智慧運(yùn)維大數(shù)據(jù)分析平臺(tái)研究與實(shí)現(xiàn)

      2020-07-24 02:11:37阮曉龍賀路路
      軟件導(dǎo)刊 2020年6期
      關(guān)鍵詞:大數(shù)據(jù)

      阮曉龍 賀路路

      摘要:基于ELK在智慧運(yùn)維大數(shù)據(jù)分析平臺(tái)實(shí)現(xiàn)海量數(shù)據(jù)分析,對(duì)ELK的部署結(jié)構(gòu)進(jìn)行優(yōu)化,并在日志采集和日志處理中間增加KaVa消息處理隊(duì)列,減輕Logstash壓力,增加集群高可用性。通過(guò)Logstash的Filter插件利用正則表達(dá)式實(shí)現(xiàn)日志數(shù)據(jù)拆分,將拆分后的字段在Elasticsearch中存儲(chǔ),最終利用Kibana對(duì)日志數(shù)據(jù)進(jìn)行搜索、繪圖和展示。使用基于ELK的智慧運(yùn)維大數(shù)據(jù)平臺(tái)解決了運(yùn)維過(guò)程中日志采集、日志處理、日志可視化問(wèn)題,同時(shí)在數(shù)據(jù)處理上實(shí)現(xiàn)了接近1s的延遲搜索。

      關(guān)鍵詞:ELK;KaVa;日志分析;大數(shù)據(jù);流式數(shù)據(jù)

      DOI:10.11907/rjdk.192248 開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

      中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)006-0150-05

      0 引言

      讓運(yùn)維更智能、更高效是運(yùn)維的首要需求,智慧運(yùn)維是運(yùn)維發(fā)展的必然趨勢(shì)。對(duì)數(shù)據(jù)中心海量運(yùn)行數(shù)據(jù)進(jìn)行分析,從數(shù)據(jù)中找規(guī)律、找價(jià)值是智慧運(yùn)維的核心。智慧運(yùn)維的基礎(chǔ)是海量日志數(shù)據(jù)分析,日志分析是日常運(yùn)維、故障排錯(cuò)、性能分析的重要途徑。數(shù)據(jù)中心每天產(chǎn)生的日志數(shù)據(jù)越來(lái)越多,日志處理工作量越來(lái)越大,處理方法越來(lái)越復(fù)雜,對(duì)實(shí)時(shí)性的要求越來(lái)越高。針對(duì)傳統(tǒng)日志分析方法而言,日志獲取難、分析耗時(shí)耗力、不易動(dòng)態(tài)擴(kuò)展等問(wèn)題逐漸凸顯。

      隨著分析技術(shù)及搜索技術(shù)的成熟與發(fā)展,在日志處理領(lǐng)域出現(xiàn)了以ELK Stack為代表的實(shí)時(shí)日志分析平臺(tái),運(yùn)維人員從TB甚至PB級(jí)的日志中獲取所需關(guān)注的信息及實(shí)現(xiàn)日志實(shí)時(shí)分析,使可視化展示分析成為可能。ELKStack是日志采集工具Logstash.分布式搜索引擎Elasticsearch、數(shù)據(jù)可視化分析平臺(tái)Kibana 3個(gè)開(kāi)源軟件的組合。本文基于ELK Stack技術(shù),實(shí)現(xiàn)了對(duì)海量日志進(jìn)行實(shí)時(shí)采集、檢索和展示的智慧運(yùn)維大數(shù)據(jù)分析平臺(tái)部署。

      1 基于ELK智慧運(yùn)維大數(shù)據(jù)分析平臺(tái)

      1.1 平臺(tái)整體架構(gòu)

      數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)可視化展示是一個(gè)完整的日志分析系統(tǒng)必不可少的組成部分。在ELKStack架構(gòu)中,Logstash或Beats作為日志采集器分布于各業(yè)務(wù)系統(tǒng)進(jìn)行日志采集,將日志文本按照既定規(guī)則解析后輸出至Elasticsearch。Elasticsearch是ELK Stack中的核心系統(tǒng),負(fù)責(zé)存儲(chǔ)和搜索日志。Kibana是大數(shù)據(jù)圖形化展示工具,集成了DSL命令行、數(shù)據(jù)處理等插件,可以對(duì)Elasticsearch中的數(shù)據(jù)進(jìn)行搜索、分析以及可視化展示。

      ELKStack架構(gòu)如圖l所示。

      1.2 日志數(shù)據(jù)實(shí)時(shí)收集

      日志采集是日志分析的基礎(chǔ),Logstash是一個(gè)開(kāi)源數(shù)據(jù)收集引擎,具有實(shí)時(shí)管道功能,可以同時(shí)從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理后發(fā)送到Elasticsearch服務(wù)器中。

      業(yè)務(wù)數(shù)據(jù)往往以各種各樣的形式分散在不同系統(tǒng)中,Logstash支持各種輸入選擇,可以在同一時(shí)間從眾多來(lái)源捕捉事件,能夠以連續(xù)的流式傳輸方式,實(shí)現(xiàn)日志、指標(biāo)、Web應(yīng)用、數(shù)據(jù)存儲(chǔ)以及各種AWS服務(wù)的日志數(shù)據(jù)采集。采集的日志數(shù)據(jù)流通過(guò)Logstash中的Input流人,經(jīng)過(guò)Filter實(shí)時(shí)解析和數(shù)據(jù)處理后通過(guò)Output進(jìn)行輸出。

      Logstash擁有豐富的Filter插件,例如Grok是Log.stash的一個(gè)正則表達(dá)式插件,用于處理Syslog、Apache和其它Web服務(wù)日志、MySQL日志以及人為定義的日志格式,且其內(nèi)置超過(guò)120種常用正則表達(dá)式。利用Grok處理日志文本時(shí)一般按以下步驟進(jìn)行解析:①對(duì)將要進(jìn)行分析的日志進(jìn)行解讀,理解日志中每一個(gè)字段代表的含義;②確定利用Grok要將一條日志分為多少個(gè)字段,拆分字段是后期分析的重要指標(biāo);③利用Grok Debugger對(duì)編寫的正則進(jìn)行調(diào)試,獲取目標(biāo)字段。

      例如一條訪問(wèn)日志信息如下:

      10.10.3.2292019-08-0516:30:58GE//var/www/html 200461120.075

      根據(jù)日志字段含義,通過(guò)Grok編寫規(guī)則如下。拆分日志后的內(nèi)容及格式如下:

      Beats是ELK Stack的一系列數(shù)據(jù)采集器的總稱,對(duì)于不同的日志使用不同的采集器,目前Beats系列包含以下7個(gè)成員,如表1所示。

      相比Logstash,Beats只負(fù)責(zé)采集數(shù)據(jù)而不處理數(shù)據(jù),因而占用的CPU和內(nèi)存比Logstash少得多,其對(duì)業(yè)務(wù)服務(wù)器的影響可忽略不計(jì)。在實(shí)際應(yīng)用環(huán)境中,推薦在業(yè)務(wù)系統(tǒng)部署B(yǎng)eats系列而不是Logstash采集數(shù)據(jù)從而來(lái)減輕服務(wù)器自身壓力,并由Logstash進(jìn)行數(shù)據(jù)處理。

      1.3 日志數(shù)據(jù)存儲(chǔ)

      Elasticsearch為開(kāi)源、分布式、基于Restful API、支持PB甚至更高數(shù)量級(jí)的搜索引擎工具,作為ElK Stack的核心,可以集中存儲(chǔ)數(shù)據(jù)。

      Elasticsearch在生產(chǎn)環(huán)境中一般以集群的形式存在,在集群中節(jié)點(diǎn)分為主節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)、客戶端節(jié)點(diǎn)3種角色。主節(jié)點(diǎn)負(fù)責(zé)集群中索引的創(chuàng)建、刪除以及數(shù)據(jù)的Rebalance等操作,但不負(fù)責(zé)數(shù)據(jù)的索引和檢索,一般負(fù)載較輕。數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)集群中數(shù)據(jù)的索引和檢索,一般壓力較大,對(duì)機(jī)器配置要求較高??蛻舳斯?jié)點(diǎn)負(fù)責(zé)來(lái)自不同請(qǐng)求的分發(fā)、匯總等,增加客戶端節(jié)點(diǎn)更多是為了負(fù)載均衡。

      為了更好地理解Elasticsearch,將Elasticsearch與關(guān)系型數(shù)據(jù)庫(kù)MySQL進(jìn)行對(duì)比如表2所示。

      1.4 日志數(shù)據(jù)可視化

      數(shù)據(jù)可視化主要借助于圖形化手段,清晰有效地傳達(dá)與溝通信息。Kibana是一款開(kāi)源的數(shù)據(jù)分析和可視化平臺(tái),它是ElKStack成員之一,用作與Elasticsearch交互,可以對(duì)Elasticsearch索引中的數(shù)據(jù)進(jìn)行搜索、查看,同時(shí)利用圖表、表格及地圖對(duì)數(shù)據(jù)進(jìn)行多元化分析和呈現(xiàn)。

      2 基于ELK+Kafka的智慧運(yùn)維大數(shù)據(jù)分析平臺(tái)部署

      ELK Stack在實(shí)際生產(chǎn)環(huán)境中通常以集群的方式部署,集群部署的好處就是系統(tǒng)擴(kuò)展容易且能夠?qū)崿F(xiàn)負(fù)載均衡,保持系統(tǒng)長(zhǎng)期穩(wěn)定運(yùn)行。

      整個(gè)ELK Stak架構(gòu)的調(diào)優(yōu)不僅是Elasticsearch集群的調(diào)優(yōu),同時(shí)包含數(shù)據(jù)采集、數(shù)據(jù)處理過(guò)程調(diào)優(yōu),因此在數(shù)據(jù)采集后增加Kafka集群。Kafka是一個(gè)適合離線和在線消息的隊(duì)列,Kafka消息保留在磁盤上,并在集群內(nèi)復(fù)制以防止數(shù)據(jù)丟失。部署Kafka可以減輕Logstash壓力,避免日志在處理前丟失。

      經(jīng)過(guò)系統(tǒng)拓?fù)鋬?yōu)化,結(jié)合現(xiàn)有實(shí)際情況,本文部署結(jié)構(gòu)使用10臺(tái)服務(wù)器,拓?fù)浣Y(jié)構(gòu)如圖2所示。服務(wù)器功能劃分如表2所示。

      2.1 Kafka集群部署

      部署kafka集群需要3個(gè)基礎(chǔ)軟件,分別為Java環(huán)境、ZooKeeper和Kafka。目前JDK最新版本為12.0.2,下載地址為https://www.oracle.com/technetwork/java/javase/down10ads/jdkl2-downloads-5295953.html。ZooKeeper最新版本為3.5.5,下載地址為https://www-us.apache.org/dist/zookeepedzookeeper-3.5.5/(推薦使用bin格式的壓縮包)。Kafka最新版本為2.3.0,下載地址為http://kafka.apache.org/downloads(推薦使用bin格式且為Scala 2.12)。建議在部署時(shí)關(guān)閉CentOS 7的防火墻以及SELinux,待部署完成后開(kāi)啟相應(yīng)端口。

      2.1.1 Java環(huán)境安裝

      將JDK安裝包上傳到CentOS 7相應(yīng)目錄下。通過(guò)如下命令進(jìn)行JDK壓縮包解壓,并將解壓的目錄重新命名,其命令如下:

      #tar-zxvfjdk-12.0.2_linux-x64_bin.tar.gz

      #my jdk-12.0.2/jdk

      安裝JDK后需要配置環(huán)境變量,編輯/etc/profile文件。在文件尾部添加如下配置。

      #vim/etc/profile

      export JAVA_HOME=/opt/jdk

      export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JA.VA_HOME/lib/dtjar:$JAVA_HOME/lib/tools.jar

      export PATH=$PA7H:$JAVA_HOME/bin

      通過(guò)source命令重新加載/etc/profile文件,使得修改后的內(nèi)容生效,命令如下:

      #source/etc/profile

      #java-version

      2.1.2 ZooKeeper集群部署

      將ZooKeeper壓縮包上傳到CentOS 7相應(yīng)目錄下。通過(guò)如下命令進(jìn)行ZooKeeper壓縮包解壓,并將解壓的目錄重新命名,其命令如下所示:

      #tar-zxvf apache-zookeeper-3.5.5-bin.tar.gz

      #mv apache-zookeeper-3.5.5-bin/zookeeper

      ZooKeeper的配置文件在zookeeper/config/目錄下,首先復(fù)制zoo_sample.cfg為zoo.Cfg,然后在zookeeper目錄下創(chuàng)建data目錄和logs目錄,用于存放zookeeper數(shù)據(jù)和運(yùn)行日志。相關(guān)命令如下:

      #cp zoo_sample.cfgzoo.Cfg

      #mkdir/opt/zookeeper/{data,logs}

      在data目錄下創(chuàng)建myid文件,myid值是zoo.cfg文件里定義的server.A項(xiàng)的值。10.10.2.226、10.10.2.227、10.10.2.228的myid值分別為l、2、3,myid值可配置為1-255。

      zoo.CfC配置文件配置內(nèi)容如下:

      dataDir=/opt/zookeeper/data

      dataLogDir=/opt/zookeeperflogs

      clientPort=218l

      server.1=10.10.2.226:2888:3888

      server.2=10.10.2.227:2888:3888

      server.3=10.10.2.228:2888:3888

      按照上述方法完成3臺(tái)Kafka服務(wù)器配置,分別在3臺(tái)Kafka服務(wù)器上啟動(dòng)ZooKeeper集群,啟動(dòng)、查看狀態(tài)命令如下。啟動(dòng)后會(huì)顯示當(dāng)前ZooKeeper節(jié)點(diǎn)屬于主節(jié)點(diǎn)還是從節(jié)點(diǎn)。

      #/opt/zookeeper/bin/zkServer.sh start//啟動(dòng)命令

      #/opt/zookeeper/bin/zkServer.sh status//狀態(tài)查看

      2.1.3 Kafka集群部署

      將Kafka壓縮包上傳到CentOS 7相應(yīng)目錄下。通過(guò)如下命令進(jìn)行Kafka壓縮包解壓,并將解壓的目錄重新命名,其命令如下:

      #tar-zxvf kafka_2.12-2.3.0.tgz

      #mv kafka_2.12-2.3.0/kafka

      Kafka的配置文件在/opt/kafka/config目錄下,編輯server.properties文件,編輯內(nèi)容如下:

      broker.id=1

      listeners=PLAIN了EXT:H10.10.2.226:9092

      advertised.1isteners=PLAINTEXT://10.10.2.226:9092

      log.dirs=/opt/kafka/logs

      zookeeper.connect:10.10.2.226:2181,10.10.2.227:2181,10.10.2.228:2181

      按照上述方法完成3臺(tái)Kafka服務(wù)器的配置,分別在3臺(tái)Kafka服務(wù)器上啟動(dòng)Kafka集群,啟動(dòng)命令如下。其它兩個(gè)節(jié)點(diǎn)的的broker.id不同,另外分別為2、3。

      #/opt/kafka/bin/kafka-server-start.sh/opt/kafka/config/server.properties

      2.2 Logstash部署

      目前,Logstash的最新版本為7.2.0,下載地址為:https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.tar.gz。將Logstash壓縮包上傳到CentOS 7相應(yīng)目錄下。

      通過(guò)如下命令進(jìn)行Logstash壓縮包解壓,并將解壓的目錄重新命名,其命令如下:

      #tar-zxvf logstash-7.2.0.tar.gz

      #mv logstash-7.2.0/logstash

      Logstash的配置文件在/opt/logstash/config目錄下,編輯logstash.yml文件,配置內(nèi)容如下:

      node.name:asc-analysis

      path.data:/optflogstash/data

      http.host:“10.10.2.229'

      http.port:9600-9700

      配置完成后通過(guò)運(yùn)行最基本的Logstash管道測(cè)試Logstash是否安裝成功。Logstash管道有兩個(gè)必需元素:input和output,相關(guān)測(cè)試命令如下:

      #/opt/logstash/bin/logstash-e‘input{stdin{}}output{std-out{}}

      測(cè)試時(shí)無(wú)論輸入什么內(nèi)容,Logstash都會(huì)按照規(guī)范格式輸出,其中-e參數(shù)允許Logstash直接通過(guò)命令行接受設(shè)置,以實(shí)現(xiàn)在測(cè)試配置時(shí)不需要頻繁編輯配置文件。

      2.3 Elasticsearch集群部署

      目前,Elasticsearch的最新版本為7.2.0,下載地址為:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.0-1inux-x86_64.tar.gz。將Elasticsearch壓縮包上傳到CentOS 7相應(yīng)目錄下。通過(guò)如下命令進(jìn)行Logstash壓縮包解壓,并將解壓的目錄重新命名,其命令如下:

      Elasticsearch的配置文件在/opt/elasticsearch/config目錄下,編輯elasticsearch.yml文件,進(jìn)行Elasticseach集群名稱、節(jié)點(diǎn)IP地址、通信端口、數(shù)據(jù)存放目錄、運(yùn)行日志目錄配置,注意在配置時(shí)每一個(gè)配置項(xiàng)前需要有空格。

      配置完成后使用創(chuàng)建的elk用戶啟動(dòng)Elasticsearch,啟動(dòng)后通過(guò)瀏覽器訪問(wèn)部署的Elasticsearch節(jié)點(diǎn),如圖3所示。其余節(jié)點(diǎn)配置相同,注意在配置時(shí)集群名稱保持一致。

      2.4 Kibana部署

      目前,Kibana的最新版本為7.2.0,下載地址為:https://artifacts.elastic.co/downloads/kibana/kibana-7.2.0-1inux-x8664.tar.gz。將Elasticsearch壓縮包上傳到CentOS 7相應(yīng)目錄下。

      通過(guò)如下命令進(jìn)行Logstash壓縮包解壓,并將解壓的目錄重新命名,其命令如下:

      #tar-zxvf kibana-7.1.1-linux-x86_64.tar.gz

      #mv kibana-7.1.1-linux-x86_64/kibana

      編輯Kibana的配置文件kibana.yml。其中Server.host是部署Kibana機(jī)器的IP地址,服務(wù)端口為5601,Elastic.search.url是部署Elasticsearch機(jī)器的IP地址。配置完成后通過(guò)http:HIP:5601訪問(wèn)。

      3 數(shù)據(jù)可視化展示

      Kibana具有多個(gè)功能,Discover、可視化、儀表盤是常用的3個(gè)功能。Discover對(duì)搜索到的數(shù)據(jù)進(jìn)行展示并用柱狀圖表示統(tǒng)計(jì)結(jié)果??梢暬С种鶢顖D、面體圖、餅圖、折線圖等18種圖形創(chuàng)建。儀表盤將創(chuàng)建的可視化聚合在一起,整體反映整個(gè)業(yè)務(wù)或者系統(tǒng)運(yùn)行情況,且支持任意時(shí)間段的數(shù)據(jù)信息查看。信息技術(shù)學(xué)院教學(xué)云平臺(tái)業(yè)務(wù)整體運(yùn)行情況分析部分截圖如圖4所示。

      4 結(jié)語(yǔ)

      本文對(duì)ELK進(jìn)行研究與部署應(yīng)用,實(shí)現(xiàn)了Kafka、Elas.ticsearch集群部署并使用Logstash對(duì)日志數(shù)據(jù)進(jìn)行正則處理,最終在Kibana上繪制圖表加以展示?;贓LK的智慧運(yùn)維大數(shù)據(jù)分析平臺(tái)的建立和應(yīng)用解決了日志采集、日志處理、日志可視化等一系列問(wèn)題,使得日志實(shí)時(shí)分析成為可能,為日常運(yùn)維管理和日志分析提供了新的解決方案。

      目前只是對(duì)ELK的簡(jiǎn)單應(yīng)用,后續(xù)將研究ELK的機(jī)器學(xué)習(xí)功能,實(shí)現(xiàn)故障發(fā)生時(shí)間、業(yè)務(wù)宕機(jī)、業(yè)務(wù)訪問(wèn)突增的預(yù)測(cè),并結(jié)合移動(dòng)端實(shí)現(xiàn)故障與預(yù)警的實(shí)時(shí)推送。

      猜你喜歡
      大數(shù)據(jù)
      基于在線教育的大數(shù)據(jù)研究
      “互聯(lián)網(wǎng)+”農(nóng)產(chǎn)品物流業(yè)的大數(shù)據(jù)策略研究
      基于大數(shù)據(jù)的小微電商授信評(píng)估研究
      大數(shù)據(jù)時(shí)代新聞的新變化探究
      商(2016年27期)2016-10-17 06:26:00
      淺談大數(shù)據(jù)在出版業(yè)的應(yīng)用
      今傳媒(2016年9期)2016-10-15 23:35:12
      “互聯(lián)網(wǎng)+”對(duì)傳統(tǒng)圖書出版的影響和推動(dòng)作用
      今傳媒(2016年9期)2016-10-15 22:09:11
      大數(shù)據(jù)環(huán)境下基于移動(dòng)客戶端的傳統(tǒng)媒體轉(zhuǎn)型思路
      新聞世界(2016年10期)2016-10-11 20:13:53
      基于大數(shù)據(jù)背景下的智慧城市建設(shè)研究
      科技視界(2016年20期)2016-09-29 10:53:22
      數(shù)據(jù)+輿情:南方報(bào)業(yè)創(chuàng)新轉(zhuǎn)型提高服務(wù)能力的探索
      呼图壁县| 安化县| 德昌县| 中西区| 荆门市| 铜鼓县| 浮梁县| 英超| 贵定县| 襄汾县| 孝感市| 微博| 桐庐县| 信宜市| 图木舒克市| 潼关县| 饶阳县| 濉溪县| 蓬安县| 东乡族自治县| 阿拉善左旗| 宁远县| 共和县| 托克托县| 泗阳县| 汉川市| 秦皇岛市| 肇源县| 台州市| 瑞金市| 永仁县| 中江县| 贵港市| 宜昌市| 龙岩市| 杨浦区| 鄂伦春自治旗| 黄浦区| 彰化县| 遵义市| 会昌县|