項(xiàng)目四-ELK日志采集技術(shù)棧_第1頁
項(xiàng)目四-ELK日志采集技術(shù)棧_第2頁
項(xiàng)目四-ELK日志采集技術(shù)棧_第3頁
項(xiàng)目四-ELK日志采集技術(shù)棧_第4頁
項(xiàng)目四-ELK日志采集技術(shù)棧_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目四ELK日志采集技術(shù)棧

主講人:王士先ELK項(xiàng)目概述

日志是記錄特定事件或活動(dòng)的記錄或文檔。在計(jì)算機(jī)領(lǐng)域中,日志通常用于記錄系統(tǒng)或應(yīng)用程序的活動(dòng),以便在出現(xiàn)問題時(shí)進(jìn)行故障排除和分析。日志可以包含時(shí)間戳、事件描述、錯(cuò)誤代碼、警告和其他有用信息。常見的日志類型包括系統(tǒng)日志、安全日志、應(yīng)用程序日志和訪問日志。

本項(xiàng)目基于ELK(ElasticSearch-LogStash-Kibana)日志技術(shù)棧,實(shí)現(xiàn)日志采集、存儲(chǔ)、以及分析展示一體化解決方案。在本次項(xiàng)目中我們將通過五個(gè)任務(wù)來學(xué)習(xí)爬蟲的相關(guān)內(nèi)容。項(xiàng)目架構(gòu)如下圖:ELK知識(shí)目標(biāo)知識(shí)目標(biāo):(1)對(duì)數(shù)據(jù)存儲(chǔ)和索引的基本概念有一定的了解,包括倒排索引、分片和復(fù)制等。(2)熟悉日志的格式和結(jié)構(gòu),了解常見的日志格式如JSON、CSV等。(3)理解數(shù)據(jù)流的概念,包括數(shù)據(jù)收集、傳輸、處理和展示等環(huán)節(jié)。(4)熟悉搜索和聚合的基本概念,包括查詢語法、過濾器、聚合函數(shù)等。(5)熟悉數(shù)據(jù)可視化的基本原理和工具,了解圖表類型和布局設(shè)計(jì)等。技能目標(biāo):(1)能夠安裝和配置ELK技術(shù)棧的各個(gè)組件,并建立起一個(gè)可工作的日志管理和分析平臺(tái)。(2)能夠使用Logstash進(jìn)行數(shù)據(jù)收集和處理,包括解析、轉(zhuǎn)換、過濾和標(biāo)準(zhǔn)化等操作。(3)能夠使用Elasticsearch進(jìn)行數(shù)據(jù)索引和搜索,創(chuàng)建索引、執(zhí)行查詢和聚合操作等。(4)能夠進(jìn)行日志分析和實(shí)時(shí)監(jiān)控,包括通過查詢和過濾日志數(shù)據(jù)來進(jìn)行分析和監(jiān)控。任務(wù)1ElasticSearch安裝部署ELKElasticSearch集群安裝部署任務(wù)2Head插件和Kibana安裝任務(wù)3Index和Document操作任務(wù)5LogStash的安裝配置使用任務(wù)4ES中Query查詢?nèi)蝿?wù)導(dǎo)航本模塊知識(shí)框架:本任務(wù)主要是在三臺(tái)服務(wù)器node01、node02、node03上安裝完成ElasticSearch的基礎(chǔ)上,啟動(dòng)ElasticSearch三臺(tái)機(jī)器上的服務(wù)。并通過瀏覽器訪問ElasticSearch服務(wù),瀏覽器查看具體的服務(wù)的json格式詳細(xì)信息。知識(shí)準(zhǔn)備-添加用戶一創(chuàng)建普通用戶創(chuàng)建一個(gè)es專門的用戶(必須),示例代碼如下所示。#使用root用戶在三臺(tái)服務(wù)器執(zhí)行以下命令useraddesmkdir/export/servers/eschownes:es/export/servers/espasswordes二為普通用戶es添加sudo權(quán)限為了讓普通用戶有更大的操作權(quán)限,我們一般都會(huì)給普通用戶設(shè)置sudo權(quán)限,方便普通用戶的操作,三臺(tái)服務(wù)器使用root用戶執(zhí)行visudo命令然后為es用戶添加權(quán)限。示例代碼如下所示。#命令vimsudo#添加權(quán)限esALL=(ALL)ALL知識(shí)準(zhǔn)備-修改配置三下載并上傳壓縮包將es的安裝包下載并上傳到node01服務(wù)器的/home/es路徑下,然后進(jìn)行解壓并使用es用戶來執(zhí)行以下操作。#node01服務(wù)器使用es用戶執(zhí)行以下命令suescd/home/es/wgethttps://artifact.elastic.co/download/elasticsearch/elasticsearch-6.7.0.tar.gztar-zcxfelasticsearch-6.7.0.tar.gz-C/export/servers/es/四修改配置文件1.#編輯elasticsearch.yml配置文件(vimelasticsearch.yml),配置文件如下:myes:node1path.data:/export/servers/es/elasticsearch-6.7.0/dataspath.logs:/export/servers/es/elasticsearch-6.7.0/logsnetwork.host:00http.port:9300discovery.zen.ping.unicast.hosts:["node01","node02","node03"]bootstrap.system_call_filter:false知識(shí)準(zhǔn)備-修改配置修改jvm.optionnode01使用es用戶執(zhí)行以下命令調(diào)整jvm堆內(nèi)存大小,每個(gè)人根據(jù)自己服務(wù)器的內(nèi)存大小來進(jìn)行調(diào)整。#node01服務(wù)器使用es用戶執(zhí)行以下命令suescd/export/servers/es/elasticsearch-6.7.0/configvimjvm.options-Xms1g-Xmx1g知識(shí)準(zhǔn)備-軟件分發(fā)五分發(fā)安裝包至其他服務(wù)器(一)node01使用es用戶將安裝包分發(fā)到其他服務(wù)器上面去cd/export/servers/es/cpelasticsearch-6.7.0/node02:$PWDcpelasticsearch-6.7.0/node03:$PWD1.node02與node03修改es配置文件(1)修改node02節(jié)點(diǎn)elasticsearch.yml配置文件。示例代碼如下所示。#node02使用es用戶執(zhí)行以下命令修改es配置文件#編輯配置文件elasticsearch.yml(vimelasticsearch.yml),配置文件內(nèi)容如下。:myes:node02path.data:/export/servers/es/elasticsearch-6.7.0/dataspath.logs:/export/servers/es/elasticsearch-6.7.0/logsnetwork.host:10http.port:9200discovery.zen.ping.unicast.hosts:["node01","node02","node03"]知識(shí)準(zhǔn)備-軟件分發(fā)五分發(fā)安裝包至其他服務(wù)器修改配置(2)修改node03節(jié)點(diǎn)elasticsearch.yml配置文件,示例代碼如下所示。#node03使用es用戶執(zhí)行以下命令修改配置文件suescd/export/servers/es/elasticsearch-6.0.0/config/#編輯配置文件elasticsearch.yml(vimelasticsearch.yml),配置文件內(nèi)容如下。:myes:node03path.data:/export/servers/es/elasticsearch-6.7.0/dataspath.logs:/export/servers/es/elasticsearch-6.7.0/logsnetwork.host:20http.port:9200discovery.zen.ping.unicast.hosts:["node01","node02","node03"]bootstrap.system_call_filter:falsebootstrap.memory_lock:falsehttp.cors.enabled:true知識(shí)準(zhǔn)備-修改系統(tǒng)配置1六修改系統(tǒng)配置由于現(xiàn)在使用普通用戶來安裝es服務(wù),且es服務(wù)對(duì)服務(wù)器的資源要求比較多,包括內(nèi)存大小,線程數(shù)等。所以我們需要給普通用戶解開資源的束縛,解決啟動(dòng)時(shí)候的問題。(一)普通用戶打開文件的最大數(shù)限制(1)問題錯(cuò)誤信息描述。maxfiledescriptors[4096]forelasticsearchprocesslikelytoolow,increasetoatleast[65536](2)原因。ES因?yàn)樾枰罅康膭?chuàng)建索引文件,需要大量的打開系統(tǒng)的文件,所以我們需要解除linux系統(tǒng)當(dāng)中打開文件最大數(shù)目的限制,不然ES啟動(dòng)就會(huì)拋錯(cuò)。(3)解決方案。三臺(tái)服務(wù)器使用es用戶執(zhí)行以下命令解除打開文件數(shù)據(jù)的限制。sudovi/etc/security/limits.conf#添加如下內(nèi)容:注意*不要去掉了*softnofile65536*hardnofile131072*softnproc2048*hardnproc4096知識(shí)準(zhǔn)備-修改系統(tǒng)配置2六修改系統(tǒng)配置(二)普通用戶啟動(dòng)線程數(shù)限制(1)問題錯(cuò)誤信息描述。maxnumberofthreads[1024]foruser[es]likelytoolow,increasetoatleast[4096]maxnumberofthreads[1024]foruser[es]likelytoolow,increasetoatleast[4096](2)原因。無法創(chuàng)建本地線程問題,用戶最大可創(chuàng)建線程數(shù)太小。(3)解決方案。修改90-nproc.conf配置文件,三臺(tái)服務(wù)器使用es用戶執(zhí)行以下命令修改配置文件。suessudovi/etc/security/limits.d/90-nproc.conf#找到如下內(nèi)容:*softnproc1024#修改為*softnproc4096(三)普通用戶調(diào)大虛擬內(nèi)存(1)錯(cuò)誤信息描述。maxvirtualmemoryareasvm.max_map_count[65530]likelytoolow,increasetoatleast[262144](2)原因。最大虛擬內(nèi)存太小。(3)解決方案。每次啟動(dòng)服務(wù)器三臺(tái)服務(wù)器均需執(zhí)行以下命令,注意每次啟動(dòng)ES之前都要執(zhí)行。sudosysctl-wvm.max_map_count=262144備注:以上三個(gè)問題解決完成之后,重新連接secureCRT或者重新連接xshell生效需要保存、退出、重新登錄xshell才可生效。知識(shí)準(zhǔn)備-啟動(dòng)服務(wù)三臺(tái)服務(wù)器使用es用戶執(zhí)行以下命令啟動(dòng)es服務(wù)。suesnohup/export/servers/es/elasticsearch-6.7.0/bin/elasticsearch2>&1&Es啟動(dòng)成功之后訪問頁面http://xxxxx01:9200/?pretty能夠看到es服務(wù)的信息,這里的訪問網(wǎng)址就是我們?cè)谥R(shí)講解中自己修改的具體http設(shè)置鞏固與提高1.什么是Elasticsearch,它的主要用途是什么?2.對(duì)啟動(dòng)命令nohup/export/servers/es/elasticsearch-6.7.0/bin/elasticsearch2>&1&中nohup、2>&1、&各自起什么作用,請(qǐng)給出解釋。3.Elasticsearch安裝前需要做哪些準(zhǔn)備工作。任務(wù)1ElasticSearch安裝部署ELKEs-Head插件和Kibana安裝部署任務(wù)2Head插件和Kibana安裝任務(wù)3Index和Document操作任務(wù)5LogStash的安裝配置使用任務(wù)4ES中Query查詢?nèi)蝿?wù)導(dǎo)航本模塊知識(shí)框架:本案例是以環(huán)境安裝為主,在任務(wù)一已構(gòu)建完成的ES服務(wù)器基礎(chǔ)上,安裝elasticsearch-head插件和Kibana兩個(gè)工具。在真實(shí)的企業(yè)環(huán)境中應(yīng)根據(jù)企業(yè)實(shí)際需求,選擇合適的工具。通過本案例的學(xué)習(xí)和操作,讓大家對(duì)兩個(gè)工具的配置和使用,有更進(jìn)一步的認(rèn)識(shí)。知識(shí)準(zhǔn)備-node.js一master服務(wù)器安裝hadoop-head插件由于es管理界面不友好,為了更好的查看索引庫當(dāng)中的信息,可以通過安裝elasticsearch-head這個(gè)插件來實(shí)現(xiàn)。(一)node01服務(wù)器部署nodejs(1)下載安裝包。示例代碼如下所示。#node01服務(wù)器執(zhí)行以下命令下載安裝包,然后進(jìn)行解壓cd/home/eswget/mirrors/node/v8.1.0/node-v8.1.0-linux-x64.tar.gztar-zcvfnode-v8.1.0-linux-x64.tar.gz-C/export/servers/es/(2)創(chuàng)建軟連接。示例代碼如下所示。#node01執(zhí)行以下命令創(chuàng)建軟連接ln-s/export/servers/es/node-v8.1.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js/usr/local/bin/npmln-s/export/servers/es/node-v8.1.0-linux-x64/bin/node/usr/local/bin/node知識(shí)準(zhǔn)備-node.js一master服務(wù)器安裝hadoop-head插件由于es管理界面不友好,為了更好的查看索引庫當(dāng)中的信息,可以通過安裝elasticsearch-head這個(gè)插件來實(shí)現(xiàn)。(3)修改環(huán)境變量。示例代碼如下所示。#node01服務(wù)器添加環(huán)境變量vim/etc/profileexportNODE_HOME=/export/servers/es/node-v8.1.0-linux-x64exportPATH=:$PATH:$NODE_HOME/bin#修改完環(huán)境變量使用source生效source/etc/profile(4)驗(yàn)證node.js是否安裝成功,如果運(yùn)行成功可以看到對(duì)應(yīng)的node的版本和npm的版本,驗(yàn)證結(jié)果如圖4-2-1所示。示例代碼如下所示。#node01執(zhí)行以下命令驗(yàn)證安裝生效node--vnpm-v知識(shí)準(zhǔn)備-Head插件一master服務(wù)器安裝hadoop-head插件由于es管理界面不友好,為了更好的查看索引庫當(dāng)中的信息,可以通過安裝elasticsearch-head這個(gè)插件來實(shí)現(xiàn)。(1)上傳壓縮包到/home/es路徑下去。將已下載的壓縮包elasticsearch-head-compile-after.tar.gz上傳到node01服務(wù)器的/home/es路徑。說明:插件下載地址:/mobz/elasticsearch-head。(2)解壓安裝包。示例代碼如下所示。#node01執(zhí)行以下命令解壓安裝包c(diǎn)d/home/es/tar-zxvfelasticsearch-head-compile-after.tar.gz-C/export/servers/es/知識(shí)準(zhǔn)備-Head插件一master服務(wù)器安裝hadoop-head插件由于es管理界面不友好,為了更好的查看索引庫當(dāng)中的信息,可以通過安裝elasticsearch-head這個(gè)插件來實(shí)現(xiàn)。(3)node01服務(wù)器修改Gruntfile.js。修改示例代碼如下所示。#修改Gruntfile.js這個(gè)文件cd/export/servers/es/elasticsearch-head#編輯配置文件(vimGruntfile.js),找到以下代碼添加一行:hostname:'00'server:{options:{hostname:'00',port:9200,base:'.',eepalive:true

知識(shí)準(zhǔn)備-Head插件一master服務(wù)器安裝hadoop-head插件(4)使用vim編輯器在node01服務(wù)器修改app.js對(duì)應(yīng)的http訪問位置,如圖4-2-2所示。修改示例代碼如下所示。cd/export/servers/es/elasticsearch-head/_site#編輯配置文件(vimapp.js)#更改前:http://localhost:9200#更改后:http://node01:9200(5)node01服務(wù)器啟動(dòng)head服務(wù)和關(guān)閉ElasticSearch服務(wù),Es并沒有提供啟動(dòng)和關(guān)閉其服務(wù)的命令,這里我們使用kill命令直接結(jié)束對(duì)應(yīng)的進(jìn)程即可,查看和殺死進(jìn)程如圖4-2-3所示。示例代碼如下所示。#node01啟動(dòng)elasticsearch-head插件cd/export/servers/es/elasticsearch-head/node_modules/grunt/bin/#進(jìn)程前臺(tái)啟動(dòng)命令./gruntserver#進(jìn)程后臺(tái)啟動(dòng)命令nohup./gruntserver>/dev/null2>&1&#停止elasticsearch-head進(jìn)程,執(zhí)行以下命令找到elasticsearch-head的插件進(jìn)程,然后使用kill-9殺死進(jìn)程即可netstat-nltp|grep9200

知識(shí)準(zhǔn)備-訪問查看Head插件訪問elasticsearch-head瀏覽器訪問00:9100/。后臺(tái)運(yùn)行elasticsearch-head插件,具體命令如下切換目錄[es@node01]$cd/export/servers/es/elasticsearch-head/node_modules/grunt/bin/啟動(dòng)ElasticSearch-Head插件[es@node01]$nohup/export/servers/es/elasticsearch-6.7.0/bin/elasticsearch2>&1&知識(shí)準(zhǔn)備-二node02服務(wù)器安裝KibanaKibana是一個(gè)開源的分析和可視化平臺(tái),設(shè)計(jì)用于和Elasticsearch一起工作。本實(shí)驗(yàn)使用es用戶在node01服務(wù)器部署kibana。#node01服務(wù)器使用es用戶執(zhí)行以下命令來下載安裝包并解壓cd/home/es#在線下載wgethttps://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gztar-zxfkibana-6.7.0-linux-x86_64.tar.gz-C/export/servers/es/三

下載資源上傳服務(wù)器并解壓四

修改配置文件#node01服務(wù)器使用es用戶執(zhí)行以下命令來修改配置文件cd/export/servers/es/kibana-6.7.0-linux-x86_64/config/

#編輯配置文件kibana.yml(vikibana.yml),配置內(nèi)容如下。server.host:"node03"

elasticsearch.hosts:["http://node01:9100"]知識(shí)準(zhǔn)備-啟動(dòng)服務(wù)五

啟動(dòng)服務(wù),并瀏覽器訪問kibana#node01服務(wù)器使用es用戶執(zhí)行以下命令啟動(dòng)kibana服務(wù)瀏覽器訪問http://xxxxx01:5601效果如圖4-2-5所示。后臺(tái)運(yùn)行Kibana服務(wù),示例代碼如下所示。cd/export/servers/es/kibana-6.7.0-linux-x86_64nohupbin/kibana>/dev/null2>#停止kibana服務(wù),查看進(jìn)程號(hào)然后使用kill-9殺死進(jìn)程即可。#查看進(jìn)程號(hào)ps-ef|grepnode#結(jié)束進(jìn)程kill-9pid鞏固與提高1.思考如何使用Kibana進(jìn)行數(shù)據(jù)可視化和儀表盤的創(chuàng)建?答案:使用Kibana的可視化工具,可以選擇不同的圖表類型和數(shù)據(jù)源,對(duì)數(shù)據(jù)進(jìn)行聚合和可視化??梢酝ㄟ^選擇字段、設(shè)置聚合函數(shù)和過濾條件等方式來創(chuàng)建自定義的可視化圖表。創(chuàng)建儀表盤時(shí),可以將多個(gè)可視化圖表組合在一起,并設(shè)置布局和樣式。2.思考如何在Kibana中進(jìn)行日志分析和實(shí)時(shí)監(jiān)控?答案:使用Kibana的日志分析工具,可以通過查詢和過濾日志數(shù)據(jù)來進(jìn)行分析??梢允褂貌樵冋Z句和過濾條件來篩選所需的日志,然后使用聚合和可視化工具對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和可視化。實(shí)時(shí)監(jiān)控可以使用Kibana的實(shí)時(shí)搜索功能,并設(shè)置自動(dòng)刷新來查看最新的日志數(shù)據(jù)。

任務(wù)1ElasticSearch安裝部署ELKIndex和Document操作任務(wù)2Head插件和Kibana安裝任務(wù)3Index和Document操作任務(wù)5LogStash的安裝配置使用任務(wù)4ES中Query查詢?nèi)蝿?wù)導(dǎo)航本案例是在成功安裝Kibana的基礎(chǔ)上,來實(shí)現(xiàn)對(duì)ES中的索引和文檔的基本操作,通過本案例的學(xué)習(xí)和操作讓我們學(xué)會(huì)索引的創(chuàng)建、查看、刪除以及文檔的創(chuàng)建、查看等基本的操作。本模塊知識(shí)框架:

知識(shí)準(zhǔn)備-創(chuàng)建索引Index(一)創(chuàng)建索引在我們的kibana的devtools當(dāng)中執(zhí)行以下語句,可以創(chuàng)建索引,類似于一個(gè)數(shù)據(jù)庫,創(chuàng)建結(jié)果如圖。PUT/xuanyuan_index_1/?pretty知識(shí)準(zhǔn)備-添加文檔(二)向索引庫添加文檔PUT/xuanyuan_index_1/article/1001{"id":"1","title":"JourneytotheWest"}前面的命令使用PUT動(dòng)詞將一個(gè)文檔添加到/article(文檔類型),并為該文檔分配ID為1。URL路徑顯示為index/doctype/ID(索引/文檔類型/ID)。示例代碼如下所示。知識(shí)準(zhǔn)備-查詢文檔(三)Kibana查詢文檔示例代碼如下所示。GET/xuanyuan_index_1/article/1001/?pretty知識(shí)準(zhǔn)備-更新文檔(四)Kibana更新文檔示例代碼如下所示。PUT/xuanyuan_index_1/article/1001{"id":"1","title":"TheDreamofRedMansion"}知識(shí)準(zhǔn)備-刪除文檔(五)刪除文檔示例代碼如下所示。DELETE/xuanyuan_index_1/article/1001知識(shí)準(zhǔn)備-刪除索引庫(五)刪除文檔示例代碼如下所示。DELETE/xuanyuan_index_1/?pretty鞏固與提高1.思考如何在Elasticsearch中創(chuàng)建一個(gè)新的索引,并定義其映射和設(shè)置?答案:可以使用Elasticsearch的IndexAPI來創(chuàng)建一個(gè)新的索引。在請(qǐng)求中指定索引的名稱、映射和設(shè)置參數(shù),例如:PUT/my_index{"settings":{"number_of_shards":3,"number_of_replicas":2},

任務(wù)1ElasticSearch安裝部署ELKElasticSearch中Query查詢?nèi)蝿?wù)2Head插件和Kibana安裝任務(wù)3Index和Document操作任務(wù)5LogStash的安裝配置使用任務(wù)4ES中Query查詢?nèi)蝿?wù)導(dǎo)航

該任務(wù)主要基于已經(jīng)安裝好的Es服務(wù)進(jìn)行高級(jí)的查詢,同學(xué)們可以根據(jù)自己的需要構(gòu)建自己的索引庫和文檔,并進(jìn)行各種查詢操作,具體操作如下,希望通過該任務(wù)實(shí)踐,熟練查詢語法,分析業(yè)務(wù)需求。具體步驟分為兩大步驟,第一個(gè)步驟我們會(huì)進(jìn)行數(shù)據(jù)的準(zhǔn)備,第二個(gè)步驟我們會(huì)在準(zhǔn)備的數(shù)據(jù)基礎(chǔ)上進(jìn)行各種查詢操作,包括詞條查詢、范圍查詢、分頁查詢等。本模塊知識(shí)框架:知識(shí)準(zhǔn)備-數(shù)據(jù)準(zhǔn)備(一)構(gòu)建索引庫,批量添加數(shù)據(jù)1.登錄kibana管理頁面并進(jìn)行如下操作。知識(shí)準(zhǔn)備-match查詢(二)使用match_all做查詢通過match_all匹配后,會(huì)把所有的數(shù)據(jù)檢索出來,但是往往真正的業(yè)務(wù)需求并非要找全部的數(shù)據(jù),而是檢索出自己想要的;并且對(duì)于es集群來說,直接檢索全部的數(shù)據(jù),很容易造成GC(垃圾回收即我們的Java虛擬機(jī)把內(nèi)存中的不用的對(duì)象進(jìn)行內(nèi)存釋放)現(xiàn)象。所以,我們要學(xué)會(huì)如何進(jìn)行高效的檢索數(shù)據(jù)。GET/school/xuanyuan_student1/_search?pretty{"query":{"match_all":{}}}知識(shí)準(zhǔn)備-字段查詢(三)通過關(guān)鍵字段查詢GET/school/student/_search?pretty{"query":{"match":{"about":"travel"}}示例代碼:知識(shí)準(zhǔn)備-bool符合查詢(四)bool的復(fù)合查詢GET/school/xuanyuan_student1/_search?pretty{"query":{"bool":{"must":{"match":{"about":"travel"}},"must_not":{"match":{"sex":"boy"}}}}}示例代碼:知識(shí)準(zhǔn)備-bool&should查詢(五)bool的復(fù)合查詢中的shouldGET/school/xuanyuan_student1/_search?pretty{"query":{"bool":{"must":{"match":{"about":"travel"}},"should":{"match":{"sex":"boy"}};}示例代碼:should表示可有可無的(如果should匹配到了就展示,否則就不展示)。查詢喜歡旅行的,如果有男性的則顯示,否則不顯示,則可以執(zhí)行以下查詢語句,示例代碼如下所示。知識(shí)準(zhǔn)備-terms查詢(六)terms精確匹配查詢GET/school/student/_search?pretty{"query":{"bool":{"must":{"term":{"about":"travel"}},"should":{"term":{"sex":"boy"};}}}}}示例代碼:使用term進(jìn)行精確匹配(比如數(shù)字,日期,布爾值或not_analyzed的字符串(未經(jīng)分析的文本數(shù)據(jù)類型))。這里我們查詢喜歡旅行的。知識(shí)準(zhǔn)備-terms多值匹配查詢(七)使用terms匹配多個(gè)值GET/school/student/_search?pretty{"query":{"bool":{"must":{"terms":{"about":["travel","history"]}}}}}示例代碼:使用term進(jìn)行精確匹配(比如數(shù)字,日期,布爾值或not_analyzed的字符串(未經(jīng)分析的文本數(shù)據(jù)類型))。這里我們查詢喜歡旅行的。知識(shí)準(zhǔn)備-Range過濾查詢(八)Range過濾GET/school/student/_search?pretty{"query":{"range":{"age":{"gt":20,"lte":25}}}}示例代碼:Range過濾允許按照指定的范圍查找一些數(shù)據(jù)。操作范圍:gt::大于,gae::大于等于,lt::小于,lte::小于等于。查找出大于20歲,小于等于25歲的學(xué)生。任務(wù)實(shí)踐9(八)Range過濾GET/school/student/_search?pretty{"query":{"exists":{"field":"age"}}}示例代碼:exists和missing過濾可以找到文檔中是否包含某個(gè)字段或者是沒有某個(gè)字段。查找字段中包含age的文檔。知識(shí)準(zhǔn)備-bool多條件過濾查詢(十)bool的多條件過濾GET/school/student/_search?pretty{"query":{"bool":{"must":[{"term":{"about":{"value":"travel"

示例代碼:過濾出about字段包含travel并且年齡大于20歲小于30歲的同學(xué)知識(shí)準(zhǔn)備-查詢&過濾查詢(十一)查詢與過濾條件合并GET/school/student/_search?pretty{"query":{"bool":{"must":{"match":{"about":"travel"}},"filter":{"term":{"age":20}}]示例代碼:查詢出喜歡旅行的,并且年齡是20歲鞏固與提高1.思考和實(shí)踐如何在Elasticsearch中進(jìn)行模糊搜索?答:可以使用模糊查詢(FuzzyQuery)來實(shí)現(xiàn)模糊搜索。該查詢會(huì)根據(jù)編輯距離(即兩個(gè)詞之間的字符差異)來匹配文檔。例如,可以使用以下查詢來進(jìn)行模糊搜索:GET/index/_search{"query":{"fuzzy":{"field":{"value":"term"}其中,"field"是要搜索的字段,"value"是要搜索的關(guān)鍵詞。任務(wù)1ElasticSearch安裝部署ELKElasticSearch中Query查詢?nèi)蝿?wù)2Head插件和Kibana安裝任務(wù)3Index和Document操作任務(wù)5LogStash的安裝配置使用任務(wù)4ES中Query查詢?nèi)蝿?wù)導(dǎo)航在安裝完成logstash后,并對(duì)其工作流程有一定的了解。下面通過該任務(wù)實(shí)踐完成logstash中input輸入配置,該任務(wù)實(shí)踐input輸入配置我們統(tǒng)一采集控制臺(tái)的輸入日志數(shù)據(jù);output輸出配置我們分別完成輸出到File文件中和輸出到ElasticSearch中本模塊知識(shí)框架:知識(shí)準(zhǔn)備-安裝LogStash&測(cè)試一Node03服務(wù)器安裝LogStash使用標(biāo)準(zhǔn)的輸入與輸出組件,實(shí)現(xiàn)將數(shù)據(jù)從控制臺(tái)輸入,從控制臺(tái)輸出,示例代碼如下所示。cd/export/servers/es/logstash-6.7.0/bin/logstash-e'input{stdin{}}output{stdout{codec=>rubydebug}}'#下載安裝包---可以直接將已經(jīng)下載好的安裝包上傳到/home/es路徑下即可cd/home/eswgethttps://artifacts.elastic.co/downloads/logstash/logstash-6.7.0.tar.gz#解壓tar-zxflogstash-6.7.0.tar.gz-C/export/servers/es/二stdin標(biāo)準(zhǔn)輸入和stdout標(biāo)準(zhǔn)輸出知識(shí)準(zhǔn)備-LogStash監(jiān)控日志文件三監(jiān)控日志文件變化Logstash使用一個(gè)名叫FileWatch的RubyGem庫來監(jiān)聽文件變化。這個(gè)庫支持glob展開文件路徑,而且會(huì)記錄.sincedb的數(shù)據(jù)庫文件來跟蹤被監(jiān)聽的日志文件的當(dāng)前讀取位置。cd/export/servers/es/logstash-6.7.0/config#1.編輯monitor_file.conf配置文件(vimmonitor_file.conf),輸入一下信息input{file{path=>"/export/servers/es/datas/tomcat.log"type=>"log"start_position=>"beginning"}}output{stdout{codec=>rubydebug#2.檢查配置文件是否可用,配置文件成功會(huì)出現(xiàn)一下信息:ConfigValidationResult:OK.ExitingLogstashcd/export/servers/es/logstash-6.7.0/bin/logstash-f/export/servers/es/logstash-6.7.0/config/monitor_file.conf-t#3.啟動(dòng)服務(wù)cd/export/servers/es/logstash-6.7.0bin/logstash-f/export/servers/es/logstash-6.7.0/config/monitor_file.conf#4.發(fā)送數(shù)據(jù),新開xshell窗口通過以下命令發(fā)送數(shù)據(jù)mkdir-p/export/servers/es/datasecho"hellologstash">>/export/servers/es/datas/tomcat.log知識(shí)準(zhǔn)備-jdbc插件四jdbc插件Jdbc插件允許logstash從數(shù)據(jù)庫內(nèi)獲取所需數(shù)據(jù),實(shí)現(xiàn)步驟如下。(1)編寫腳本。cd/export/servers/es/logstash-6.7.0/config#編輯jdbc配置文件(vimjdbc.conf)input{Jdcb{jdbc_drivre_library=>"/home/es/mysql-connector-java-5.1.38.jar"jdbc_driver_class=>"com.mysql.jdbc.Driver"jdbc_connection_string=>"jdbc:mysql://2:3306/userdb"jdbc_user=>"root"jdbc_pass=>"admin"use_column_value=>truetracking_column=>"create_time"知識(shí)準(zhǔn)備-jdbc插件四jdbc插件(2)上傳mysql連接驅(qū)動(dòng)包到指定路勁。將mysql的連接驅(qū)動(dòng)包上傳指定的/home/es/路徑下。(3)檢查配置文件是否可用。#檢查配置文件,如果正確則會(huì)提示ConfigValidationResult:OK.ExitingLogstashcd/export/servers/es/logstash-6.7.0/bin/logstash-f/export/ser0/config/jdbc.conf-t知識(shí)準(zhǔn)備-jdbc插件四jdbc插件(4)啟動(dòng)服務(wù)。#啟動(dòng)logstashcd/export/s/logstash-6.7.0bin/logstash-f/explogstash-6.7.0/config/jdbc.conf(5)向數(shù)據(jù)庫添加數(shù)據(jù)。向數(shù)據(jù)庫中插入數(shù)據(jù),驗(yàn)證logstash通過jdbc插件實(shí)現(xiàn)數(shù)據(jù)采集的功能。知識(shí)準(zhǔn)備-syslog插件五syslog插件syslog機(jī)制負(fù)責(zé)記錄內(nèi)核和應(yīng)用程序產(chǎn)生的日志信息,管理員可以通過查看日志記錄,來掌握系統(tǒng)狀況。默認(rèn)情況下系統(tǒng)已經(jīng)安裝了rsyslog直接啟動(dòng)即可。演示步驟及示例代碼如下所示。#第一步,編寫配置文件cd/export/servers/es/logstash-6.7.0/config#vimsyslog.confinput{tcp{port=>6789type=>syslog}type=>syslog}add_field=>["received_at","%{@timestamp}"add_field=>["received_from","%{hostoutput{stdout{codec=>rubydebug#第二步,檢查配置文件是否可用cd/export/servers/es/logstash-6.7.0bin/logstash-f/export/servers/es/logstash-6.7.0/config/syslog.conf-t#第三步,啟動(dòng)服務(wù)cd/export/servers/es/logstash-6.7.0bin/log/servers/es/logstash-6.7.0/config/syslog.conf#第四步,發(fā)送數(shù)據(jù)#修改系統(tǒng)日志配置文件(sudovim/etc/rsyslog.conf),添加一行以下配置,如圖4-5-3*.*@@node01:6789#第五步,重啟系統(tǒng)日志服務(wù)sudo/etc/init.d/rsyslogrestart知識(shí)準(zhǔn)備-filter插件六filter插件Logstash之所以強(qiáng)悍的主要原因是filter插件;利用過濾器的各種組合可以得到所需的結(jié)構(gòu)化數(shù)據(jù)。(一)收集Linux系統(tǒng)控制臺(tái)日期數(shù)據(jù)演示步驟及示例代碼如下所示。#第一步:編輯配置文件cd/export/servers/es/logstash-6.7.0/config/#編輯filter.conf配置文件(vimfilter.conf)input{stdin{}}filter{grokmat}output{stdout{codec=>rubydebug}}#第二步:啟動(dòng)logstash服務(wù)cd/export/servers/es/logstash-6.7.0/bin/logstash-f/export/servers/es/logstash-6.7.0/config/filter.conf#第三步:控制臺(tái)輸入文字,如“5.20今天天氣還不錯(cuò)”知識(shí)準(zhǔn)備-grok插件七grok收集nginx日志數(shù)據(jù)(1)安裝grok插件。#安裝方式1:在線安裝(強(qiáng)烈不推薦)#在線安裝grok插件cd/export/servers/es/logstash-6.7.0/#編輯配置文件(vimGemfile),具體如下#source''#將這個(gè)鏡像源注釋掉source/#配置成中國的這個(gè)鏡像源#準(zhǔn)備在線安裝cd/export/servers/es/logstash-6.7.0/bin/logstash-plugininstalllogstash-filter-grok#安裝方式2,直接使用已經(jīng)下載好的安裝包進(jìn)行本地安裝(強(qiáng)烈推薦使用),上傳壓縮包logst.7.0/bin/logstash-plugininstallfile:///export/servers/es/logstash-6.7.0/logstash-filter-grok-4.0.4.zip#安裝成功之后查看logstash的插件列表cd/export/servers/es/logstash-6.7.0/bin/logstash-plugin知識(shí)準(zhǔn)備-grok插件七grok收集nginx日志數(shù)據(jù)(2)開發(fā)logstash的配置文件。定義logstash的配置文件如下,從控制臺(tái)輸入nginx的日志數(shù)據(jù),然后經(jīng)過filter的過濾,將日志文件轉(zhuǎn)換成為標(biāo)準(zhǔn)的數(shù)據(jù)格式,演示步驟及示例代碼如下所示。#編輯配置文件(vim/export/servers/es/logstash-6.7.0/config/monitor_nginx.conf),輸入以下內(nèi)容input{stdin{}}filter{grok{match=>{"message"=>"%{IPORHOST:clientip}\-\-\[%{HTTPDATE:time_local}\]\"tes_sent}%{QS:http_referer}%{QS:agent}"}output{stdout{codec=>rubydebug}}知識(shí)準(zhǔn)備-grok插件七grok收集nginx日志數(shù)據(jù)(3)啟動(dòng)logstash。#執(zhí)行以下命令啟動(dòng)logstashcd/export/servers/es/logstash-6.7.0bin/logstash-f/export/serv

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論