




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 ELK日志分析系統(tǒng)1、 ELK日志分析系統(tǒng)介紹1.1傳統(tǒng)的日志統(tǒng)計與分析方式日志主要包括系統(tǒng)日志、應用程序日志和安全日志。系統(tǒng)運維和開發(fā)人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤與錯誤發(fā)生的原因。經常分析日志可以了解服務器的負荷,性能安全性,從而與時采取措施糾正錯誤。通常,日志被分散的儲存不同的設備上。如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統(tǒng)方法查閱日志。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日志管理,例如:開源的syslog,將所有服務器上的日志收集匯總。集中化管理日志后,日志的統(tǒng)計和檢索又成為一件比較麻煩的事情,一般我們使用grep、
2、awk和wc等Linux命令能實現(xiàn)檢索和統(tǒng)計,但是對于要求更高的查詢、排序和統(tǒng)計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。1.2 ELK介紹開源實時日志分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。(1)、Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發(fā)現(xiàn),索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。(2)、Logstash是一個完全開源的工具,可以對日志進行收集、過濾,并將其存儲供以后使用(如:搜索)。(3)、Kibana
3、也是一個開源和免費的可視化工具,可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助匯總、分析和搜索重要數據日志。1.2.1 Elasticsearch介紹Elasticsearch是一個基于Apache Lucene(TM)的開源搜索引擎,Lucene是當前行業(yè)最先進、性能最好的、功能最全的搜索引擎庫。但Lucene只是一個庫。無法直接使用,必須使用Java作為開發(fā)語言并將其直接集成到應用中才可以使用,而且Lucene非常復雜,需要提前深入了解檢索的相關知識才能理解它是如何工作的。Elasticsearch也使用Java開發(fā)并使用Lucene
4、作為其核心來實現(xiàn)所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復雜性,從而讓全文搜索變得簡單。但Elasticsearch不僅僅值是Lucene庫和全文搜索,它還有以下用途:分布式的實時文件存儲,每個字段都被索引并可被搜索分布式的實時分析搜索引擎可以擴展到上百臺服務器,處理PB級結構化或非結構化數據1.2.2 Elasticsearch基礎概念Elasticsearch有幾個核心概念。從一開始理解這些概念會對整個學習過程有莫大的幫助。(1)、接近實時(NRT)Elasticsearch是一個接近實時的搜索平臺。意味著檢索一個文檔直到這個文檔能夠被檢索到
5、有一個輕短暫的延遲(通常是1秒)。(2)、集群(cluster)集群就是由一個或多個節(jié)點組織在一起,它們共同持有整個的數據,并一起提供索引和搜索功能。集群由一個唯一的名字標識,這個名字默認就是“elasticsearch”。這個名字很重要,因為一個節(jié)點只能通過指定某個集群的名字,來加入這個集群。在產品環(huán)境中顯式地設定這個名字是一個好習慣,但是使用默認值來進行測試/開發(fā)也可以。(3)、節(jié)點(node)節(jié)點是值集群中的具體服務器,作為集群的一部分,它可存儲數據,參與集群的索引和搜索功能。和集群類似,一個節(jié)點也是由一個名字來標識的,默認情況下,這個名字是一個隨機名字,這個名字會在服務啟動時賦予節(jié)點。
6、這個名字對于管理者非常重要,因為在管理過程中,需要確定網絡中的哪些服務器對應于Elasticsearch集群中的哪些節(jié)點。節(jié)點可以通過配置集群名稱的方式來加入一個指定的集群。默認情況下,每個節(jié)點都會被安排加入到一個叫做“elasticsearch”的集群中,這意味著如果在網絡中啟動了若干個節(jié)點,并假定它們能夠相互發(fā)現(xiàn)彼此,那么各節(jié)點將會自動地形成并加入到一個叫做“elasticsearch”的集群中。在一個集群里,可以擁有任意多個節(jié)點。并且,如果當前網絡中沒有運行任何Elasticsearch節(jié)點,這時啟動一個節(jié)點,會默認創(chuàng)建并加入一個叫做“elasticsearch”的集群。(4)、索引(i
7、ndex)索引是指一個擁有相似特征的文檔的集合。比如說,你可以有一個客戶數據的索引,另一個產品目錄的索引,還有一個訂單數據的索引。每個索引均由一個名字來標識(必須全部是小寫字母的),并且當要對對應于這個索引中的文檔進行索引、搜索、更新和刪除的時候,都要使用到這個名字?!八饕庇袃蓚€意思: A.作為動詞,索引指把一個文檔“保存”到 ES 中的過程,某個文檔被索引后,就可以使用 ES 搜索到這個文檔 B.作為名詞,索引指保存文檔的地方,相當于數據庫概念中的“庫” 為了方便理解,我們可以將 ES 中的一些概念對應到我們熟悉的關系型數據庫上:ES索引類型文檔DB庫表行在一個集群中,可以定義任意多的索引
8、。(5)、類型(type)在一個索引中,可以定義一種或多種類型。類型是指索引的一個邏輯上的分類/分區(qū),其語義可自定義。通常情況下,會為具有一組共同字段的文檔定義一個類型。比如說,我們假設運營一個博客平臺并且將所有的數據存儲到一個索引中。在這個索引中,可以為用戶數據定義一個類型,為博客數據定義另一個類型,當然,也可以為評論數據定義另一個類型。(6)、文檔(document)文檔是指可被索引的基礎信息單元。比如,你可以擁有某一個客戶的文檔,某一個產品的一個文檔,當然,也可以擁有某個訂單的一個文檔。文檔以JSON(Javascript Object Notation)格式來表示,而JSON是一個普遍
9、存在的互聯(lián)網數據交互格式。在一個index/type里面,可以存儲任意多的文檔。注意,盡管一個文檔物理上存在于一個索引之中,但文檔必須被賦予一個索引的type。(7)、分片和復制(shards & replicas)一個索引可以存儲超出單個節(jié)點磁盤限制的大量數據。比如以下情況,一個具有10億文檔的索引占據1TB的磁盤空間,而集群中任一節(jié)點都沒有這樣大的磁盤空間;或者單個節(jié)點處理搜索請求,響應太慢。為了解決此問題,Elasticsearch提供了將索引劃分成多份的能力,這些份就叫做分片。當創(chuàng)建一個索引的時候,可以指定想要的分片的數量。每個分片本身也是一個功能完善并且獨立的“索引”,這個“
10、索引”可以被放置到集群中的任何節(jié)點上。分片之所以重要,主要有兩方面的原因:A.允許水平分割/擴展容容量B.允許在分片(潛在地,位于多個節(jié)點上)之上進行分布式的、并行的操作,進而提高性能/吞吐量至于一個分片怎樣分布,它的文檔怎樣聚合搜索請求,是完全由Elasticsearch管理的,用戶對此是透明的。在一個網絡/云的環(huán)境里,失敗隨時都可能發(fā)生,在某個分片/節(jié)點無原因就處于離線狀態(tài),或者由于任何原因消失了的情況下,Elasticsearch提供一個故障轉移機制,它允許你創(chuàng)建分片的一份或多份拷貝,這些拷貝叫做復制分片,或者直接叫復制。復制之所以重要,有兩個主要原因:A.在分片/節(jié)點失敗的情況下,提供
11、了高可用性。因為這個原因,注意到復制分片從不與原/主要(original/primary)分片置于同一節(jié)點上是非常重要的。B.擴展你的搜索量/吞吐量,因為搜索可以在所有的復制上并行運行總之,每個索引可以被分成多個分片。一個索引也可以被復制0次(意思是沒有復制)或多次。一旦復制了,每個索引就有了主分片(作為復制源的原來的分片)和復制分片(主分片的拷貝)之別。分片和復制的數量可以在索引創(chuàng)建的時候指定。在索引創(chuàng)建之后,可以在任何時候動態(tài)地改變復制的數量,但是事后不能改變分片的數量。默認情況下,Elasticsearch中的每個索引被分片5個主分片和1個復制,這意味著,如果你的集群中至少有兩個節(jié)點,你
12、的索引將會有5個主分片和另外5個復制分片(1個完全拷貝),這樣的話每個索引總共就有10個分片。1.2.3 Logstash介紹Logstash的主要功能是收集和過濾,類似于shell中的管道符“|”。它的工作過程是將數據進行收集,并對收集的入職根據策略進行分類和過濾,最后進行輸出.實際上,Logstash 是用不同的線程來實現(xiàn)收集、過濾、輸出功能的,可運行 top 命令然后按下 H 鍵查看線程。數據在線程之間以事件的形式流傳。并且,logstash 可以處理多行事件。Logstash 會給事件添加一些額外信息。其中最重要的就是 timestamp,是用來標記事件的發(fā)生時間。因為這個字段涉與到
13、Logstash 的部流轉,所以必須是一個json對象,如果自定義給一個字符串字段重命名為 timestamp 的話,Logstash會直接報錯,那么就需要使用filters/date插件來管理這個特殊字段。額外信息還包括以下幾個概念:A.host 標記事件發(fā)生在哪里。B.type 標記事件的唯一類型。C.tags 標記事件的某方面屬性。這是一個數組,一個事件可以有多個標簽。也可以自定義個事件添加字段或者從事件里刪除字段。事實上事件本身就是是一個 Ruby對象。1.2.4 Kibana介紹Kibana是一個開源的分析與可視化平臺,用于和Elasticsearch一起使用,可以用kibana搜索
14、、查看、交互存放在Elasticsearch索引里的數據,使用各種不同的圖表、表格、地圖等kibana能夠很輕易地展示高級數據分析與可視化。Kibana對大量數據的呈現(xiàn)非常清晰。它簡單、基于瀏覽器的接口能快速創(chuàng)建和分享實時展現(xiàn)Elasticsearch查詢變化的動態(tài)儀表盤。Kibana支持LInux、Windows等操作系統(tǒng)。版本要求:Kibana要求安裝版本要和Elasticsearch一致。Kibana版本Elasticsearch版本是否支持5.X2.X不支持5.15.0不支持5.15.1支持5.15.2支持(會有提示升級的警告)5.1.05.1.1支持本次安裝部署的Kibana版本為4
15、.3.1版本,對應Elasticsearch版本為2.4.6版本。2 ELK安裝配置2.1 系統(tǒng)架構介紹此架構的工作流程是 Logstash agent(shipper)監(jiān)控并過濾客戶端日志,將過濾后的日志容發(fā)給Redis(indexer),此處的Redis既充當消息隊列的角色,由于其優(yōu)越的持久化機制也被用來做緩存,然后Logstash Server(indexer)從Redis的對應位置拿出日志數據,并將其輸出到ElasticSearch中,ElasticSearch獲取到數據后開始生產索引,然后使用Kibana進行頁面展示。這是一個完成的日志收集、存儲、檢索流程。2.2 安裝Elastic
16、searchOS:Centos 6.5elk-node1:8elk-node2:7在兩臺主機上分別安裝Elasticsearch。準備工作:(1) 、關閉防火墻、Selinux# iptables -F# chkconfig iptables off# setenforce 0# vim /etc/sysconfig/selinux改為:SELINUX=disabled(2) 、配置java環(huán)境# yum install -y java# java -versionjava version "1.7.0_151"OpenJDK Run
17、time Environment (rhel-.el6_9-x86_64 u151-b00)OpenJDK 64-Bit Server VM (build 24.151-b00, mixed mode)(3) 、配置主機信息node1、node2節(jié)點分別配置:其中node1是master,node2是slave# vim /etc/hosts8 elk-node1 7 elk-node22.2.1 Yum方式安裝(1)、下載并安裝GPG-Key# rpm -import s:/packages.elastic.co/GPG-KEY-ela
18、sticsearch(2)、添加yum倉庫# vim /etc/yum.repos.d/elasticsearch.repoelasticsearch-2.xname=Elasticsearch repository for 2.x packagesbaseurl=packages.elastic.co/elasticsearch/2.x/centosgpgcheck=1gpgkey=packages.elastic.co/GPG-KEY-elasticsearchenabled=1(3)、安裝elasticsearch# yum install -y elasticsearch(4)、安裝測
19、試軟件注:提前先下載安裝epel源:epel-release-latest-6.noarch.rpm,否則yum會報錯:No Package.# wget ftp.riken.jp/Linux/fedora/epel/epel-release-latest-6.noarch.rpm# rpm -ivh epel-release-latest-6.noarch.rpm# yum install -y redis# yum install -y nginx(5)、部署配置# mkdir -p /data/es-dataelk-node1:# vim /etc/elasticsearch/elast
20、icsearch.yml : nova #集群名稱 : elk-node1 #節(jié)點名,建議和主機一致node.master: true #指定該節(jié)點是否有資格被選舉成為master node,默認是true,es是默認集群中的第一臺機器為master,如果這臺機掛了就會重新選舉master。node.data: false #指定該節(jié)點是否存儲索引數據,默認為true。 path.data: /data/es-data #數據存放路徑 path.logs: /var/log/elasticsearch/ #日志存放文件bootstrap.memory_
21、lock: true #存鎖機制,鎖住存,不被使用到交換分區(qū)去network.host: #網絡主機訪問權限設置 .port: 9200 #web端口elk-node2:# vim /etc/elasticsearch/elasticsearch.yml : nova #集群名稱 : elk-node2 #節(jié)點名,建議和主機一致node.master: false #指定該節(jié)點是否有資格被選舉成為master node,默認是true,默認集群中的第一臺機器為master,如果這臺機掛了就會重新選舉master。node.data: t
22、rue #指定本節(jié)點為數據存儲節(jié)點 path.data: /data/es-data #數據存放路徑 path.logs: /var/log/elasticsearch/ #日志存放文件bootstrap.memory_lock: true #存鎖機制,鎖住存,不被使用到交換分區(qū)去network.host: #網絡主機訪問權限設置 .port: 9200 #web端口discovery.zen.ping.multicast.enabled: false#多播自動發(fā)現(xiàn)禁用開關,當前設置為關閉 discovery.zen.ping.unicast.hosts: "
23、;8", "7"# chown -R elasticsearch.elasticsearch /data/(6)、啟動服務# /etc/init.d/elasticsearch startStarting elasticsearch: OK # chkconfig elasticsearch on# /etc/init.d/elasticsearch statuselasticsearch (pid 2309) is running.# netstat -antplu| egrep "9200|9300"
24、tcp 0 0 :9200 :* LISTEN 2309/java tcp 0 0 :9300 :* LISTEN 2309/java (7) 、驗證1)、web瀏覽器訪問打開瀏覽器(最好是google瀏覽器),輸入IP+端口:8:9200,查看界面顯示。驗證正確。2)、通過命令的方式查看注:即可在本機查看,也可在其他主機查看。# curl -i -XGET '8:9200/_count?pretty' -d '"query":"match_all":' /1.1 200 OK #訪
25、問成功Content-Type: application/json; charset=UTF-8Content-Length: 95 "count" : 0, "_shards" : "total" : 0, "successful" : 0, "failed" : 02.2.2 源碼安裝(1) 、獲取elasticsearch-2.4.6.tar.gz源碼包,并保存在系統(tǒng)/usr/local/src中。(2) 、解壓安裝# cd /usr/local/src# tar -xvf elastic
26、search-2.4.6.tar.gz# mv elasticsearch-2.4.6 /usr/loca/es(3) 、創(chuàng)建es用戶與數據目錄# groupadd es# useradd -g es es# mkdir -r /data/es-data# chown -R es:es /data/es-data# mkdir -r /var/log/elasticsearch# chown -R es:es /var/log/elasticsearch(4) 、es配置# vim /usr/local/es/config/elasticsearch.yml注:配置參數時,需要先設置一個空格,
27、否則啟動時會報錯。: : elk-node3node.master: falsenode.data: truepath.data: /data/es-datapath.logs: /data/logs/espath.logs: /data/logs/esnetwork.host: .port: 9200discovery.zen.ping.multicast.enabled: falsediscovery.zen.ping.unicast.hosts: "8", "10.20.2
28、0.47","8"(5) 、啟動源碼安裝的es不能使用root用戶啟動,必須使用創(chuàng)建好的普通用戶進行啟動。# su - es$ /usr/local/es/bin/elasticsearch &2017-09-29 23:57:38,334WARN bootstrap unable to install syscall filter: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER
29、 are needed2017-09-29 23:57:38,346WARN bootstrap Unable to lock JVM Memory: error=12,reason=Cannot allocate memory2017-09-29 23:57:38,346WARN bootstrap This can result in part of the JVM being swapped out.2017-09-29 23:57:38,346WARN bootstrap Increase RLIMIT_MEMLOCK, soft limit: 65536, hard limit: 6
30、55362017-09-29 23:57:38,346WARN bootstrap These can be adjusted by modifying /etc/security/limits.conf, for example: # allow user 'es' mlockalles soft memlock unlimitedes hard memlock unlimited2017-09-29 23:57:38,347WARN bootstrap If you are logged in interactively, you will have to re-login
31、 for the new limits to take effect.2017-09-29 23:57:38,704INFO node elk-node3 version2.4.6, pid3375, build5376dca/2017-07-18T12:17:44Z2017-09-29 23:57:38,704INFO node elk-node3 initializing .2017-09-29 23:57:39,167INFO plugins elk-node3 modules lang-groovy, reindex, lang-expression, plugins , sites
32、2017-09-29 23:57:39,205INFO env elk-node3 using 1 data paths, mounts / (/dev/mapper/vg_nginx-lv_root), net usable_space 33.2gb, net total_space 36.8gb, spins? possibly, types ext42017-09-29 23:57:39,205INFO env elk-node3 heap size 1015.6mb, compressed ordinary object pointers true2017-09-29 23:57:39
33、,205WARN env elk-node3 max file descriptors 4096 for elasticsearch process likely too low, consider increasing to at least 655362017-09-29 23:57:40,645INFO node elk-node3 initialized2017-09-29 23:57:40,645INFO node elk-node3 starting .2017-09-29 23:57:40,691INFO transport elk-node3 publish_address 1
34、8:9300, bound_addresses :93002017-09-2923:57:40,695INFOdiscoveryelk-node3 nova/DSP41KSoR2C_RdXJNPO4zg顯示以上信息表示es啟動成功。$ netstat -antplu | grep javatcp 0 0 :9200 :* LISTEN 3375/java tcp 0 0 :9300 :* LISTEN 3375/java 端口已開啟。驗證:$ curl -i -XGET '8:9200/_count?pretty' -d '&quo
35、t;query":"match_all":' /1.1 200 OKContent-Type: application/json; charset=UTF-8Content-Length: 98 "count" : 78, "_shards" : "total" : 21, "successful" : 21, "failed" : 0 驗證正常。2.2.3 head插件安裝(1) 、方法一:直接安裝# /usr/share/elasticsearch/bi
36、n/plugin install mobz/elasticsearch-head安裝完成,進行驗證。打開瀏覽器,輸入8:9200/_plugin/head/,查看顯示結果。插件安裝成功。刪除插件:# /usr/share/elasticsearch/bin/plugin listInstalled plugins in /usr/share/elasticsearch/plugins: - head #當前已安裝插件# /usr/share/elasticsearch/bin/plugin remove head-> Removing head.Removed hea
37、d #刪除成功注:源碼安裝的es,在安裝head插件后,重啟會報錯。報錯信息:Exception in thread "main" java.lang.IllegalArgumentException: Property version is missing for plugin head解決方案:# vim /usr/local/es/plugins/head/perties description=head - A web front end for an elastic search clusterversion=master
38、site=truename=head然后進行重啟,重啟后正常。(2) 、方法二:源碼安裝head插件包百度云盤下載: s:/pan.baidu./s/1boBE0qj,提取密碼:ifj7# cd /usr/local/src/# unzip elasticsearch-head-master.zip # cd /usr/share/elasticsearch/plugins/# mkdir head# cd head/# cp -r /usr/local/src/elasticsearch-head-master/* ./# chown -R elasticsearch:elasticsear
39、ch /usr/share/elasticsearch/plugins# /etc/init.d/elasticsearch restart# curl -i -XGET '8:9200/_count?pretty' -d '"query":"match_all":'命令測試插件安裝成功。Web界面顯示正確,說明插件安裝成功。2.2.4 實例測試(1) 、插入數據實例測試打開”復合查詢“,在POST選項下,任意輸入如/index-demo/test,然后在下面輸入數據,查看返回結果。注:容之間換行的逗號
40、不要漏掉點擊”驗證JSON“->”提交請求“,提交成功后,觀察右欄里出現(xiàn)的信息:有index,type,version等信息,failed:0(成功消息)測試成功。(2) 、實例測試選擇"復合查詢"選項,選擇GET選項,在/index-demo/test/后面輸入上面POST結果中的id號,不輸入容,即括號里為空!點擊”驗證JSON“和"提交請求",觀察右欄顯示結果。結果中有上述插入的數據,這就是elasticsearch檢索功能的具體體現(xiàn)。(3) 、實例查詢打開"基本查詢",查看下數據,如下,即可查詢到(1)步驟中插入的數據。
41、打開“數據瀏覽”,也能查看到插入的數據。其中也可通過mesg和user關鍵字檢索相應數據。2.2.5 kopf監(jiān)控插件(1) 、方法一# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf安裝成功。(2) 、方法二:源碼安裝# wget s:/github./lmenezes/elasticsearch-kopf/archive/master.zip# unzip master.zip # cd /usr/share/elasticsearch/plugins/# mkdir kopf# cd kopf
42、# cp -r /usr/local/src/elasticsearch-kopf-master/* ./# chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins# /etc/init.d/elasticsearch restartStopping elasticsearch: FAILEDStarting elasticsearch: OK 測試驗證:2.3 安裝Logstash安裝包:/components/cache/logstash/logstash-2.3.4
43、.tar.gz2.3.1 下載源碼安裝包# wget /components/cache/logstash/logstash-2.3.4.tar.gz2.3.2 安裝# tar -xvf logstash-2.3.4.tar.gz# mv logstash-2.3.4/ /usr/local/logstash2.3.3 配置環(huán)境# vim /etc/profileexport PATH=$PATH:/usr/local/logstash/bin# source /etc/profile2.3.4 重啟elasticsearch# /etc/init.d/
44、elasticsearch restart2.3.5 數據測試logstash常用參數:-e :指定logstash的配置信息,可以用于快速測試;-f :指定logstash的配置文件;可以用于生產環(huán)境;(1)、基本輸入輸出(數據未寫入elasticsearch中)# logstash -e 'input stdin output stdout 'Settings: Default filter workers: 1Logstash startup completedhello #輸入 2017-09-19T18:51:29.082Z hello #輸出worl
45、d #輸入 2017-09-19T18:51:38.151Z world #輸出(2)、使用rubydebug詳細輸出(數據未寫入elasticsearch中)# logstash -e 'input stdin output stdout codec => rubydebug 'Settings: Default filter workers: 1Logstash startup completedhello #輸入 #輸出下面信息 "message" => "hello", "version&qu
46、ot; => "1", "timestamp" => "2017-09-19T19:32:44.701Z", "host" => ""world #輸入#輸出線面信息 "message" => "world", "version" => "1", "timestamp" => "2017-09-19T19:32:55.357Z"
47、, "host" => ""(3) 、把輸入容輸出到elasticsearch中# logstash -e 'input stdin output elasticsearch hosts => "9:19200" 'Settings: Default filter workers: 1Logstash startup completed 123456 #輸入容novahelloworldSIGINT received. Shutting down the pipeline.
48、 :level=>:warnLogstash shutdown completed注:使用rubydebug和寫到elasticsearch中的區(qū)別:其實就在于后面標準輸出的區(qū)別,前者使用codec;后者使用elasticsearch。測試:寫到elasticsearch中容在logstash中查看,如下圖:注:master收集到日志后,會把一部分數據碎片到salve上(隨機的一部分數據),master和slave又都會各自做副本,并把副本放到對方機器上,這樣就保證了數據不會丟失。如下,master收集到的數據放到了自己的第3分片上,其他的放到了slave的第0,1,2,4分片上。(1)
49、、elasticsearch查看(2)、Logstash查看(3)、文本查看(4)、既寫到elasticsearch中又寫到文件中# logstash -e 'input stdin output elasticsearch hosts => "9:19200" stdout codec => rubydebug'Settings: Default filter workers: 1Logstash startup completedyangguoqiang #輸入 #輸出容 "message" =>
50、 "yangguoqiang", "version" => "1", "timestamp" => "2017-09-19T21:02:36.313Z", "host" => ""nihao#輸入#輸出容 "message" => "nihao", "version" => "1", "timestamp" =&g
51、t; "2017-09-19T21:02:39.163Z", "host" => ""Logstash shutdown completed注:以上文本可以長期保留、操作簡單、壓縮比大。驗證:輸出信息被記錄在文本中,可實時查詢。2.3.6 logstash的配置和文件編寫參考文檔: s:/.elastic.co/guide/en/logstash/current/configuration.html s:/.elastic.co/guide/en/logstash/current/configuration-fil
52、e-structure.html# mkdir /etc/logstash(1) 、logstash的配置# vim /etc/logstash/conf.d/01.logstash.confinputstdin output elasticsearch hosts => "9:19200" stdout codec => rubydebug 執(zhí)行:# logstash -f /etc/logstash/conf.d/01.logstash.confSettings: Default filter workers: 1Logstash sta
53、rtup completedbeijing #輸入信息#輸出信息 "message" => "beijing", "version" => "1", "timestamp" => "2017-09-20T09:00:46.581Z", "host" => ""驗證:(2)、收集系統(tǒng)日志配置# vim /etc/logstash/log_file.confinput file path => &
54、quot;/var/log/messages" type => "system" start_position => "beginning" output elasticsearch hosts => "9:19200" index => "system-%+YYYY.MM.dd" 驗證:(3) 、收集java日志,其中包含上面講到的系統(tǒng)日志收集# vim /etc/logstash/log_java.confinput #系統(tǒng)日志輸入 file path =&
55、gt; "/var/log/messages" type => "system" start_position => "beginning" input #es-error日志輸入 file path => "/var/log/elasticsearch/nova.log" type => "es-error" start_position => "beginning" output #輸出到es中 if type = "system" elasticsearch hosts => "9:19200" index => "system-%+YYYY.MM.dd" if type = "es-error"#判斷日志type,如果符合es-error字段,則輸出到es中。 elasticsearch hosts => "9:19200" index => "es-error-%+YYYY.MM.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共同富裕背景下國有企業(yè)綠色發(fā)展的理論基礎
- 創(chuàng)新創(chuàng)業(yè)教育在大學生使命感形成中的價值
- 殘疾人就業(yè)服務體系建設與優(yōu)化
- 餐飲企業(yè)股權轉讓及品牌使用權協(xié)議范本
- 口袋公園景觀設計實 用手冊
- 2025至2030中國電加工設備行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國遠程醫(yī)療行業(yè)發(fā)展趨勢與前景動態(tài)分析報告
- 2025至2030中國素食食品行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030動漫圖書出版行業(yè)項目調研及市場前景預測評估報告
- 酒店行業(yè)傳染病突發(fā)應急預案及報告流程
- 截癱患者的并發(fā)癥及護理
- 《大模型原理與技術》全套教學課件
- 民族宗教理論政策知識競賽考試題及答案
- 外貿傭金合同模板英文
- 中國貨權風險判例研究報告 2024 -供應鏈企業(yè)篇
- 【五升六暑期閱讀】專題10.環(huán)境描寫及其作用-2024年五升六暑期閱讀專項提升(統(tǒng)編版)5
- DL∕T 1057-2023 自動跟蹤補償消弧線圈成套裝置技術條件
- 【電商直播對消費者購買行為影響:以抖音直播為例開題報告1800字】
- 抑郁病診斷證明書
- 氣體分析儀檢定規(guī)程
- 2024-2029年吞咽困難飲食增稠劑行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃投資研究報告
評論
0/150
提交評論