搞懂ELK並不是一件特別難的事(ELK)
文章推薦指數: 80 %
ELK是Elasticsearch、Logstash、Kibana三大開源框架首字母大寫簡稱(但是後期出現的filebeat(beats中的一種)可以用來替代logstash的數據收集功能,比較 ...
搞懂ELK並不是一件特別難的事(ELK)
2020年6月29日
筆記
ELK
本篇文章主要介紹elk的一些框架組成,原理和實踐,採用的ELK本版為7.7.0版本
一、ELK介紹
1.1、ELK簡介
ELK是Elasticsearch、Logstash、Kibana三大開源框架首字母大寫簡稱(但是後期出現的filebeat(beats中的一種)可以用來替代logstash的數據收集功能,比較輕量級)。
市面上也被成為ElasticStack。
Filebeat是用於轉發和集中日誌數據的輕量級傳送工具。
Filebeat監視您指定的日誌文件或位置,收集日誌事件,並將它們轉發到Elasticsearch或Logstash進行索引。
Filebeat的工作方式如下:啟動Filebeat時,它將啟動一個或多個輸入,這些輸入將在為日誌數據指定的位置中查找。
對於Filebeat所找到的每個日誌,Filebeat都會啟動收集器。
每個收集器都讀取單個日誌以獲取新內容,並將新日誌數據發送到libbeat,libbeat將聚集事件,並將聚集的數據發送到為Filebeat配置的輸出。
Logstash是免費且開放的伺服器端數據處理管道,能夠從多個來源採集數據,轉換數據,然後將數據發送到您最喜歡的「存儲庫」中。
Logstash能夠動態地採集、轉換和傳輸數據,不受格式或複雜度的影響。
利用Grok從非結構化數據中派生出結構,從IP地址解碼出地理坐標,匿名化或排除敏感欄位,並簡化整體處理過程。
Elasticsearch是ElasticStack核心的分散式搜索和分析引擎,是一個基於Lucene、分散式、通過Restful方式進行交互的近實時搜索平台框架。
Elasticsearch為所有類型的數據提供近乎實時的搜索和分析。
無論您是結構化文本還是非結構化文本,數字數據或地理空間數據,Elasticsearch都能以支援快速搜索的方式有效地對其進行存儲和索引。
Kibana是一個針對Elasticsearch的開源分析及可視化平台,用來搜索、查看交互存儲在Elasticsearch索引中的數據。
使用Kibana,可以通過各種圖表進行高級數據分析及展示。
並且可以為Logstash和ElasticSearch提供的日誌分析友好的Web介面,可以匯總、分析和搜索重要數據日誌。
還可以讓海量數據更容易理解。
它操作簡單,基於瀏覽器的用戶介面可以快速創建儀錶板(dashboard)實時顯示Elasticsearch查詢動態
1.2、為什麼要使用ELK
日誌主要包括系統日誌、應用程式日誌和安全日誌。
系統運維和開發人員可以通過日誌了解伺服器軟硬體資訊、檢查配置過程中的錯誤及錯誤發生的原因。
經常分析日誌可以了解伺服器的負荷,性能安全性,從而及時採取措施糾正錯誤。
往往單台機器的日誌我們使用grep、awk等工具就能基本實現簡單分析,但是當日誌被分散的儲存不同的設備上。
如果你管理數十上百台伺服器,你還在使用依次登錄每台機器的傳統方法查閱日誌。
這樣是不是感覺很繁瑣和效率低下。
當務之急我們使用集中化的日誌管理,例如:開源的syslog,將所有伺服器上的日誌收集匯總。
集中化管理日誌後,日誌的統計和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現檢索和統計,但是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。
一般大型系統是一個分散式部署的架構,不同的服務模組部署在不同的伺服器上,問題出現時,大部分情況需要根據問題暴露的關鍵資訊,定位到具體的伺服器和服務模組,構建一套集中式日誌系統,可以提高定位問題的效率。
1.3、完整日誌系統基本特徵
收集:能夠採集多種來源的日誌數據
傳輸:能夠穩定的把日誌數據解析過濾並傳輸到存儲系統
存儲:存儲日誌數據
分析:支援UI分析
警告:能夠提供錯誤報告,監控機制
二、ELK架構分析
2.1、beats+elasticsearch+kibana模式
如上圖所示,該ELK框架由beats(日誌分析我們通常使用filebeat)+elasticsearch+kibana構成,這個框架比較簡單,入門級的框架。
其中filebeat也能通過module對日誌進行簡單的解析和索引。
並查看預建的Kibana儀錶板。
該框架適合簡單的日誌數據,一般可以用來玩玩,生產環境建議接入logstash
2.2、beats+logstash+elasticsearch+kibana模式
該框架是在上面的框架的基礎上引入了logstash,引入logstash帶來的好處如下:
通Logstash具有基於磁碟的自適應緩衝系統,該系統將吸收傳入的吞吐量,從而減輕背壓
從其他數據源(例如資料庫,S3或消息傳遞隊列)中提取
將數據發送到多個目的地,例如S3,HDFS或寫入文件
使用條件數據流邏輯組成更複雜的處理管道
filebeat結合logstash帶來的優勢:
1、水平可擴展性,高可用性和可變負載處理:filebeat和logstash可以實現節點之間的負載均衡,多個logstash可以實現logstash的高可用
2、消息持久性與至少一次交付保證:使用Filebeat或Winlogbeat進行日誌收集時,可以保證至少一次交付。
從Filebeat或Winlogbeat到Logstash以及從Logstash到Elasticsearch的兩種通訊協議都是同步的,並且支援確認。
Logstash持久隊列提供跨節點故障的保護。
對於Logstash中的磁碟級彈性,確保磁碟冗餘非常重要。
3、具有身份驗證和有線加密的端到端安全傳輸:從Beats到Logstash以及從Logstash到Elasticsearch的傳輸都可以使用加密方式傳遞。
與Elasticsearch進行通訊時,有很多安全選項,包括基本身份驗證,TLS,PKI,LDAP,AD和其他自定義領域
當然在該框架的基礎上還可以引入其他的輸入數據的方式:比如:TCP,UDP和HTTP協議是將數據輸入Logstash的常用方法(如下圖所示):
2.3、beats+快取/消息隊列+logstash+elasticsearch+kibana模式
在如上的基礎上我們可以在beats和logstash中間添加一些組件redis、kafka、RabbitMQ等,添加中間件將會有如下好處:第一,降低對日誌所在機器的影響,這些機器上一般都部署著反向代理或應用服務,本身負載就很重了,所以儘可能的在這些機器上少做事;第二,如果有很多台機器需要做日誌收集,那麼讓每台機器都向Elasticsearch持續寫入數據,必然會對Elasticsearch造成壓力,因此需要對數據進行緩衝,同時,這樣的緩衝也可以一定程度的保護數據不丟失;第三,將日誌數據的格式化與處理放到Indexer中統一做,可以在一處修改程式碼、部署,避免需要到多台機器上去修改配置
三、ELK部署
elk各個組件的網址可以在官網下載://www.elastic.co/cn/
或者在中文社區下載://elasticsearch.cn/download/
註:本次安裝都是採用壓縮包的方式安裝
3.1、filebeat的安裝介紹
3.1.1、原理
Filebeat的工作方式如下:啟動Filebeat時,它將啟動一個或多個輸入,這些輸入將在為日誌數據指定的位置中查找。
對於Filebeat所找到的每個日誌,Filebeat都會啟動收集器。
每個收集器都讀取單個日誌以獲取新內容,並將新日誌數據發送到libbeat,libbeat將聚集事件,並將聚集的數據發送到為Filebeat配置的輸出
Filebeat結構:由兩個組件構成,分別是inputs(輸入)和harvesters(收集器),這些組件一起工作來跟蹤文件並將事件數據發送到您指定的輸出,harvester負責讀取單個文件的內容。
harvester逐行讀取每個文件,並將內容發送到輸出。
為每個文件啟動一個harvester。
harvester負責打開和關閉文件,這意味著文件描述符在harvester運行時保持打開狀態。
如果在收集文件時刪除或重命名文件,Filebeat將繼續讀取該文件。
這樣做的副作用是,磁碟上的空間一直保留到harvester關閉。
默認情況下,Filebeat保持文件打開,直到達到close_inactive
3.1.2、簡單安裝
本文採用壓縮包的方式安裝,linux版本,filebeat-7.7.0-linux-x86_64.tar.gz
curl-L-O//artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.7.0-linux-x86_64.tar.gz
tar-xzvffilebeat-7.7.0-linux-x86_64.tar.gz
配置示例文件:filebeat.reference.yml(包含所有未過時的配置項)配置文件:filebeat.yml啟動命令:./filebeat-e
具體的原理、使用、實例見文:一篇文章搞懂filebeat(ELK)
3.2、logstash的安裝介紹
3.2.1、基本原理
logstash分為三個步驟:inputs(必須的)→filters(可選的)→outputs(必須的),inputs生成時間,filters對其事件進行過濾和處理,outputs輸出到輸出端或者決定其存儲在哪些組件里。
inputs和outputs支援編碼和解碼
Logstash管道中的每個input階段都在自己的執行緒中運行。
將寫事件輸入到記憶體(默認)或磁碟上的中心隊列。
每個管道工作執行緒從該隊列中取出一批事件,通過配置的filter處理該批事件,然後通過output輸出到指定的組件存儲。
管道處理數據量的大小和管道工作執行緒的數量是可配置的
3.2.2、簡單安裝
下載地址1://www.elastic.co/cn/downloads/logstash
下載地址2://elasticsearch.cn/download/
這裡需要安裝jdk,我使用的是elasticsearch7.7.0自帶的jdk:
解壓即安裝:
tar-zxvflogstash-7.7.0.tar.gz
來個logstash版本的HelloWorld:
./bin/logstash-e'input{stdin{}}output{stdout{}}'
具體的原理、使用、實例見文:從0到1學會logstash的玩法(ELK)
3.3、elasticsearch的安裝介紹
3.3.1、基本介紹
Elasticsearch(ES)是一個基於Lucene構建的開源、分散式、RESTful介面的全文搜索引擎。
Elasticsearch還是一個分散式文檔資料庫,其中每個欄位均可被索引,而且每個欄位的數據均可被搜索,ES能夠橫向擴展至數以百計的伺服器存儲以及處理PB級的數據。
可以在極短的時間記憶體儲、搜索和分析大量的數據。
基本概念有:Cluster集群、Node節點、Index索引、Document文檔、Shards&Replicas分片與副本等
elasticsearch的優勢:
分散式:橫向擴展非常靈活
全文檢索:基於lucene的強大的全文檢索能力;
近實時搜索和分析:數據進入ES,可達到近實時搜索,還可進行聚合分析
高可用:容錯機制,自動發現新的或失敗的節點,重組和重新平衡數據
模式自由:ES的動態mapping機制可以自動檢測數據的結構和類型,創建索引並使數據可搜索。
RESTfulAPI:JSON+HTTP
3.3.2、linux系統參數設置
1、設置系統配置
ulimit#暫時修改,切換到該用戶es,ulimit-n65535
/etc/security/limits.conf#永久修改es-nofile65535
ulimit-a#查看當前用戶的資源限制
2、禁用sawpping
方式一:
swapoff-a#臨時禁用所有的swap文件
vim/etc/fstab#注釋掉所有的swap相關的行,永久禁用
方式二:
cat/proc/sys/vm/swappiness#查看該值
sysctlvm.swappiness=1#臨時修改該值為1
vim/etc/sysctl.conf#修改文件永久生效
vm.swappiness=1#如果有該值,則修改該值,若沒有,則追加該選項,sysctl-p生效命令
方式三:
配置elasticsearch.yml文件,添加如下配置:
bootstrap.memory_lock:true
GET_nodes?filter_path=**.mlockall#檢查如上配置是否成功
注意:如果試圖分配比可用記憶體更多的記憶體,mlockall可能會導致JVM或shell會話退出!
3、配置文件描述符
ulimit-n65535#臨時修改
vim/etc/security/limits.conf#永久修改
essoftnproc65535
eshardnproc65535
4、配置虛擬記憶體
sysctl-wvm.max_map_count=262144#臨時修改該值
vim/etc/sysctl.conf#永久修改
vm.max_map_count=262144
5、配置執行緒數
ulimit-u4096#臨時修改
vim/etc/security/limits.conf#永久修改
3.3.3、elasticsearch安裝
elasticsearch是需要其他用戶啟動的,所以需要先創建一個新的用戶elk:
groupaddelastic
useraddelk-d/data/hd05/elk-gelastic
echo'[email protected]'|passwdelk--stdin
下載://elasticsearch.cn/download/
也可以去官網下載:wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch–7.7.0–linux–x86_64.tar.gz
解壓:tar-zxvfelasticsearch-7.7.0-linux-x86_64.tar.gz
建立軟鏈接:ln–selasticsearch-7.7.0es
目錄介紹:
$ES_HOME:/data/hd05/elk/elasticsearch-7.7.0
bin:$ES_HOME/bin#es啟動命令和插件安裝命令
conf:$ES_HOME/conf#elasticsearch.yml配置文件目錄
data:$ES_HOME/data#對應的參數path.data,用於存放索引分片數據文件
logs:$ES_HOME/logs#對應的參數path.logs,用於存放日誌
jdk:$ES_HOME/jdk#自帶支援該es版本的jdk
plugins:$ES_HOME/jplugins#插件存放目錄
lib:$ES_HOME/lib#存放依賴包,比如java類庫
modules:$ES_HOME/modules#包含所有的es模組
配置自帶的java環境:
Vim~/.bashrc############往後面添加如下內容######################exportJAVA_HOME=/data/hd05/elk/es/jdkexportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar\:/lib/tools.jar
jvm.options文件說明:
配置java參數
一種是通過修改/data/hd05/elk/elasticsearch-7.7.0/config/jvm.options文件修改jvm參數,一個使用過一個變數ES_JAVA_OPTS來聲明jvm參數
/data/hd05/elk/elasticsearch-7.7.0/config/jvm.options介紹:
8:-Xmx2g#表示只適合java8
8-:-Xmx2g#表示適合高於java8的版本
8-9:-Xmx2g#表示適合java8,和java9
其他配置,都是jvm的相關參數,如果要想明白,得去看java虛擬機
通過變數ES_JAVA_OPTS來聲明jvm參數:
例如:exportES_JAVA_OPTS="$ES_JAVA_OPTS-Djava.io.tmpdir=/path/to/temp/dir"
./bin/elasticsearch
配置config/jvm.options
[[email protected]config]$catjvm.options|egrep-v'^$|#'
-Xms2g
-Xmx2g
8-13:-XX:+UseConcMarkSweepGC
8-13:-XX:CMSInitiatingOccupancyFraction=75
8-13:-XX:+UseCMSInitiatingOccupancyOnly
14-:-XX:+UseG1GC
14-:-XX:G1ReservePercent=25
14-:-XX:InitiatingHeapOccupancyPercent=30
-Djava.io.tmpdir=${ES_TMPDIR}
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=data
-XX:ErrorFile=logs/hs_err_pid%p.log
8:-XX:+PrintGCDetails
8:-XX:+PrintGCDateStamps
8:-XX:+PrintTenuringDistribution
8:-XX:+PrintGCApplicationStoppedTime
8:-Xloggc:logs/gc.log
8:-XX:+UseGCLogFileRotation
8:-XX:NumberOfGCLogFiles=32
8:-XX:GCLogFileSize=64m
9-:-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
配置加密通訊證書
生成證書:
方法一:
./bin/elasticsearch-certutilca-outconfig/elastic-certificates.p12-pass"password"
查看config目錄,有elastic-certificates.p12文件生成
方法二:
./bin/elasticsearch-certutilca#創建集群認證機構,需要交互輸入密碼
./bin/elasticsearch-certutilcert--caelastic-stack-ca.p12#為節點頒發證書,與上面密碼一樣
執行./bin/elasticsearch-keystoreaddxpack.security.transport.ssl.keystore.secure_password並輸入第一步輸入的密碼
執行./bin/elasticsearch-keystoreaddxpack.security.transport.ssl.truststore.secure_password並輸入第一步輸入的密碼
將生成的elastic-certificates.p12、elastic-stack-ca.p12文件移動到config目錄下
配置config/elasticsearch.yml
[[email protected]config]$catelasticsearch.yml|egrep-v'^$|#'
cluster.name:my_cluster
node.name:lgh01
node.data:true
node.master:true
path.data:/data/hd05/elk/elasticsearch-7.7.0/data
path.logs:/data/hd05/elk/elasticsearch-7.7.0/logs
network.host:192.168.110.130
http.port:9200
transport.tcp.port:9300
discovery.seed_hosts:["192.168.110.130","192.168.110.131","192.168.110.132","192.168.110.133"]
cluster.initial_master_nodes:["lgh01","lgh02","lgh03"]
cluster.routing.allocation.cluster_concurrent_rebalance:32
cluster.routing.allocation.node_concurrent_recoveries:32
cluster.routing.allocation.node_initial_primaries_recoveries:32
http.cors.enabled:true
http.cors.allow-origin:'*'#下面的是配置x-pack和tsl/ssl加密通訊的
xpack.security.enabled:true
xpack.license.self_generated.type:basic
xpack.security.transport.ssl.enabled:true
xpack.security.transport.ssl.verification_mode:certificate
xpack.security.transport.ssl.keystore.path:elastic-certificates.p12
xpack.security.transport.ssl.truststore.path:elastic-certificates.p12
bootstrap.memory_lock:false#centos6需要配置
bootstrap.system_call_filter:false#centos6需要配置
然後通過scp到其他的節點,修改上面的node.name和node.master參數,然後要刪除data目標,不然會存在報錯
然後使用./bin/elasticsearch-d後台啟動elasticsearch,去掉-d則是前端啟動elasticsearch
然後./bin/elasticsearch-setup-passwordsinteractive配置默認用戶的密碼:(有如下的交互),可以使用auto自動生成。
[[email protected]elasticsearch-7.7.0]$./bin/elasticsearch-setup-passwordsinteractive
Enterpasswordfortheelasticsearchkeystore:
Initiatingthesetupofpasswordsforreserveduserselastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
Youwillbepromptedtoenterpasswordsastheprocessprogresses.
Pleaseconfirmthatyouwouldliketocontinue[y/N]y
Enterpasswordfor[elastic]:
Reenterpasswordfor[elastic]:
Enterpasswordfor[apm_system]:
Reenterpasswordfor[apm_system]:
Enterpasswordfor[kibana]:
Reenterpasswordfor[kibana]:
Enterpasswordfor[logstash_system]:
Reenterpasswordfor[logstash_system]:
Enterpasswordfor[beats_system]:
Reenterpasswordfor[beats_system]:
Enterpasswordfor[remote_monitoring_user]:
Reenterpasswordfor[remote_monitoring_user]:
[email protected]passwordforuser[apm_system]
Changedpasswordforuser[kibana]
Changedpasswordforuser[logstash_system]
Changedpasswordforuser[beats_system]
Changedpasswordforuser[remote_monitoring_user]
然後可以登錄//192.168.110.130:9200/需要輸入密碼,輸入elastic/passwd即可登錄
3.3.4、head插件安裝
//github.com/mobz/elasticsearch-head #head官網
//nodejs.org/zh-cn/download/ #nodejs下載
官方說明,elasticsearch7有三種方式使用head插件,這裡我只試過兩種:
第一種:使用Google瀏覽器head插件,這個直接在Google瀏覽器上面安裝插件就可以使用了
第二種:使用head服務(把head當做一個服務來使用),安裝如下
#Runningwithbuiltinserver
gitclonegit://github.com/mobz/elasticsearch-head.git
cdelasticsearch-head
npminstall
npmrunstart
openhttp://localhost:9100/
如果在如上的安裝過程中報錯,可以嘗試下這個命令再繼續安裝npminstall[email protected]–ignore-scripts
3.4、kibana的安裝介紹
下載地址://elasticsearch.cn/download/
也可以去官網下載
解壓後修改kibana.yml文件
[[email protected]config]$catkibana.yml|egrep-v"^$|#"
server.port:5601
server.host:"0.0.0.0"
server.name:"my-kibana"
elasticsearch.hosts:["//192.168.110.130:9200","//192.168.110.131:9200","//192.168.110.132:9200"]
elasticsearch.preserveHost:true
kibana.index:".kibana"
elasticsearch.username:"elastic"
elasticsearch.password:"password"#或者使用keystore的保存的密碼"${ES_PWD}"
./bin/kibana 啟動
訪問網址://192.168.110.130:5601/ 並使用elastic/password登錄
四、實例分析
一篇文章搞懂filebeat(ELK) 該文章中有beats+elasticsearch+kibana的實例
從0到1學會logstash的玩法(ELK) 該文章中有beats+logstash+elasticsearch+kibana實例
現在我們弄一個beats+快取/消息隊列+logstash+elasticsearch+kibana的實例:
中間組件我們使用kafka,我們看下filebeat把kafka作為output的官網:
//www.elastic.co/guide/en/beats/filebeat/7.7/kafka-output.html
這裡要注意kafka的版本,我試過兩個都是極端的版本,坑了自己一把。
假如你已經有kafka集群了,我這裡安裝的是一個單機版本(1.1.1):
數據集我們採用apache的日誌格式,下載地址://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz
日誌格式如下:
[[email protected]~]$tail-3logstash-tutorial.log
86.1.76.62--[04/Jan/2015:05:30:37+0000]"GET/projects/xdotool/HTTP/1.1"20012292"//www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions""Mozilla/5.0(X11;Linuxx86_64;rv:24.0)Gecko/20140205Firefox/24.0Iceweasel/24.3.0"
86.1.76.62--[04/Jan/2015:05:30:37+0000]"GET/reset.cssHTTP/1.1"2001015"//www.semicomplete.com/projects/xdotool/""Mozilla/5.0(X11;Linuxx86_64;rv:24.0)Gecko/20140205Firefox/24.0Iceweasel/24.3.0"
86.1.76.62--[04/Jan/2015:05:30:37+0000]"GET/style2.cssHTTP/1.1"2004877"//www.semicomplete.com/projects/xdotool/""Mozilla/5.0(X11;Linuxx86_64;rv:24.0)Gecko/20140205Firefox/24.0Iceweasel/24.3.0"
首先我們配置filebeat的配置文件filebeat.yml
#===========================Filebeatinputs=============================
filebeat.inputs:
#Each-isaninput.Mostoptionscanbesetattheinputlevel,so
#youcanusedifferentinputsforvariousconfigurations.
#Belowaretheinputspecificconfigurations.
-type:log
#Changetotruetoenablethisinputconfiguration.
enabled:true
#Pathsthatshouldbecrawledandfetched.Globbasedpaths.
paths:
-/data/elk/logstash-tutorial.log#這裡使用的是apache的日誌格式
#-c:\programdata\elasticsearch\logs\*
#Excludelines.Alistofregularexpressionstomatch.Itdropsthelinesthatare
#matchinganyregularexpressionfromthelist.
#exclude_lines:['^DBG']
#Includelines.Alistofregularexpressionstomatch.Itexportsthelinesthatare
#matchinganyregularexpressionfromthelist.
#include_lines:['^ERR','^WARN']
#Excludefiles.Alistofregularexpressionstomatch.Filebeatdropsthefilesthat
#arematchinganyregularexpressionfromthelist.Bydefault,nofilesaredropped.
#exclude_files:['.gz$']
#Optionaladditionalfields.Thesefieldscanbefreelypicked
#toaddadditionalinformationtothecrawledlogfilesforfiltering
#fields:
#level:debug
#review:1
###Multilineoptions
#Multilinecanbeusedforlogmessagesspanningmultiplelines.Thisiscommon
#forJavaStackTracesorC-LineContinuation
#TheregexpPatternthathastobematched.Theexamplepatternmatchesalllinesstartingwith[
#multiline.pattern:^\[
#Definesifthepatternsetunderpatternshouldbenegatedornot.Defaultisfalse.
#multiline.negate:false
#Matchcanbesetto"after"or"before".Itisusedtodefineiflinesshouldbeappendtoapattern
#thatwas(not)matchedbeforeorafteroraslongasapatternisnotmatchedbasedonnegate.
#Note:AfteristheequivalenttopreviousandbeforeistheequivalenttotonextinLogstash
#multiline.match:after
#================================Outputs=====================================
output.kafka:
hosts:["192.168.110.130:9092"]#配置kafka的broker
topic:'filebeat_test'#配置topic名字
partition.round_robin:
reachable_only:false
required_acks:1
compression:gzip
max_message_bytes:1000000
然後使用命令後台啟動:
cdfilebeat-7.7.0-linux-x86_64&&nohup./filebeat-e&
接下來我們配置logstash的配置文件
cdlogstash-7.7.0/&&mkidrconf.d
cdconf.d
vimapache.conf
################apache.conf文件中填入如下內容##############################
input{
kafka{
bootstrap_servers=>"192.168.110.130:9092"
topics=>["filebeat_test"]
group_id=>"test123"
auto_offset_reset=>"earliest"
}
}
filter{
json
{
source=>"message"
}
grok{
match=>{"message"=>"%{COMBINEDAPACHELOG}"}
remove_field=>"message"
}
}
output{
stdout{codec=>rubydebug}
elasticsearch{
hosts=>["192.168.110.130:9200","192.168.110.131:9200","10.18.126.224:9200","192.168.110.132:9200"]
index=>"test_kakfa"
user=>"elastic"
password=>"${ES_PWD}"
}
}
然後後台啟動logstash命令
cdlogstash-7.7.0/&&nohup./bin/logstash-fconf.d/apache.conf&
然後我們查看elasticsearch集群查看該索引
接下來我們登錄到kibana查看該索引的分析
參考:filebeat,logstash,elasticsearch,kibana官網
分享此文:分享到Twitter(在新視窗中開啟)按一下以分享至Facebook(在新視窗中開啟)按一下以分享到Telegram(在新視窗中開啟)分享到Pinterest(在新視窗中開啟)更多點這裡列印(在新視窗中開啟)分享到LinkedIn(在新視窗中開啟)分享到Reddit(在新視窗中開啟)分享到Tumblr(在新視窗中開啟)分享到Pocket(在新視窗中開啟)分享到WhatsApp(在新視窗中開啟)按一下即可分享至Skype(在新視窗中開啟)
Tags:ELK
RelatedPosts
2022年8月2日
JavaWeb–Cookie與Session
前言JavaWeb其實就是一個技術的總和,把Web看成一個容器而已主要使用Jav..
2021年12月28日
帶你熟悉鴻蒙輕內核Kconfig使用指南
Previouspostpython中_、__、__xx__()區別及使用場景
NextpostFRP+WoL實現遠程開機+遠程桌面
VirMach便宜VPS
BlackFridayFlashSale
(2021/9/14~)
1CoreCPU
1GBRam
20GBSSD
1年只要USD$5up!!!
Tips:Offer10分鐘更新一次
Newcustomers,75%offfor2months.
1CoreCPU
1GBRam
25GBSSD
每月只要USD$1.75!!!
VirMachVPSHosting
VPSGamersVPSHosting
VPSCraftVPSHosting
VPSharedVPSHosting
QNews
熱門文章
【學習筆記】Iperf3網路性能測試工具
深度學習筆記——常用的激活(激勵)函數
狀態模式的理解和示例
分散式系統:時間、時鐘和事件序列
小白也能學會的模擬螢幕滑動與手勢密碼繪製
全世界僅有的唯一最高LINUX版本的白菜路由,支援NAND記
MongoDB非關係型資料庫開發手冊
Mysql優化總結(一)
矩陣的壓縮存儲
如何在IE瀏覽器播放RTSP或RTMP流
熱門搜尋.NET
.NETCore
5G
AMD
c#
CPU處理器
Intel
iPhone手機
JAVA
javascript
linux
MySQL
NVIDIA
PC遊戲
Python
Redmi
Windows10
Windows作業系統
三星
華為
小米
微信
微軟
新冠疫苗
新冠病毒
新冠肺炎
日本
顯示卡
智慧手機
比亞迪
汽車
遊戲
特斯拉
生科醫學
電動車
電影
筆記型電腦
演算法
網友熱議
美國
騰訊
晶片
蘋果
榮耀
馬斯克
.
简体中文
大陆简体
港澳繁體
马新简体
马来西亚简体
繁體中文
延伸文章資訊
- 1【Day01】ELK環境建置與介紹
什麼是ELK ELK其實不是一個software (「・ω・)「 ELK是 ... ELK是由elastic這間公司所開發的三個software(Elastic search、Logstash、...
- 2如何開始搭建Elastic Stack及使用方式介紹-下- 偉康科技洞察室
.env: ELK版本參數. docker-compose.yml: container相關設定 ... ELK應用場境 ... ELK在Machine learning上異常偵測必知的教學設定...
- 3搞懂ELK並不是一件特別難的事(ELK)
ELK是Elasticsearch、Logstash、Kibana三大開源框架首字母大寫簡稱(但是後期出現的filebeat(beats中的一種)可以用來替代logstash的數據收集功能,比較...
- 4ELK 安裝教學|Elasticsearch 線上及離線安裝
- 5今夜,先來個開場,什麼是ELK Stack?
ELK是一個簡單但功能強大的日誌管理和分析平台,價格卻僅為其一小部分。 我公司的運維主管,透過快速的教學,已經能讓我的同事們(客服)都會觀看Kibana ...