Centos7.2 搭建ELK-5.6.4日誌分析平臺(二)
上一篇,我記錄了elasticsearch,logstash,kibana三個軟體的安裝和執行,並按照我之前的博文,使用supervisor進行程序管理,且我們elasticsearch是做了叢集的,兩個節點,都可以作為master和data節點。架構圖如下:
架構圖上,已完成後面的部分,接下來記錄一下前半部分的實現,即filebeat和redis,和一起其他需要注意的地方。
1. redis
在這個架構中, redis用來做訊息管道,用來快取儲峰值資料等。並不需要特別的設定,直接安裝一個redis服務即可。因為知識用來一個管道,所以基本並不消耗redis的記憶體磁碟的儲存資源,就像一箇中轉站,先放一下,馬上就被取走。沒有資料或資料量較小的時候哦。在redis中看不到任何資料,要像測試filebeat是否正常輸出到redis,就要將logstash關掉,然後啟動filebeat,觀察redis中指定資料庫中的資料,然後再開啟logstash,會發現redis中的資料以可觀的速度在開始減少,直到重新整理不出資料。則驗證了filebeat --> redis --> logstash 的管道的連通性。
2. filebeat的安裝與配置
filebeat是5.x版本後的採集器beats中的其中一個,用於對日誌檔案的資料進行採集,簡單處理,傳送給logstash,elasticsearch,kafka,redis等。這裡我們是傳送給redis。
首先,去官網下載對應版本的filebeat並安裝
$ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.4-x86_64.rpm ##下載rpm安裝包,更方便的進行服務管理 $ yum localinstall filebeat-5.6.4-x86_64.rpm ## 本地安裝 $ vim /etc/filebeat/filebeat.yml ## 修改配置檔案,下面為配置檔案內容 filebeat.prospectors: - input_type: log ## 輸入型別,為log日誌,有兩種型別可選,log日誌和stdin標準輸入 paths: ## 要實時監聽採集日誌的日誌檔案路徑,下面可以寫多個路徑,指定多個檔案。這裡以tomcat日誌為例 - /usr/local/apache-tomcat-8080/logs/x5.log encoding: utf-8 ## 日誌編碼方式 document_type: tomcat_log_x5sit ## 資料型別,增加這個欄位與資料一起傳送給後面,可以用來進行日誌的分類 multiline.pattern: ^20 ## filebeat預設是以一行為一條日誌資料,但是tomcat的錯誤日誌等,有時會輸出很多行,需要將下面資料的多行歸類為同一條資料。 multiline.negate: true ## pattern是正則匹配規則,這個為true標識,單行資料滿足上述匹配規則則視為一條資料,否則則視為上一條資料的內容。 multiline.match: after ## after是表示如果視為上一條資料的內容是加到資料的後面, before則是前面。 - input_type: log ## 類似上面,可以新增多個監聽的日誌程序,每個程序又可監聽多個日誌檔案。 paths: - /usr/local/apache-tomcat-8082/logs/pmsSrv-custSrv_*.log ## 這裡指定了多個日誌檔案。 encoding: utf-8 #close_older: 0 document_type: tomcat_log_sms multiline.pattern: ^20 multiline.negate: true multiline.match: after name: "192.168.9.87" ## filebeat的name,這裡我用IP來區分不同機器。 output.redis: ## 輸出出口配置redis hosts: ["192.168.9.79"] port: 6379 key: "redis-pipeline" ## 這個key則是設定輸出的資料存到redis佇列的key值,要跟logstash中向redis取資料時設定的key相同,才能取到資料,也就是說可以通過這個配置多個管道 db: "10" ## 指定redis資料庫。
OK,配置完成後,啟動filebeat。filebeat
$ systemctl start filebeat
OK,然後通過上面說的方法,驗證一下是否正常啟動,管道是否聯通。
一切正常後,則可以訪問kibana的頁面,http://192.168.9.90:5601。 然後用預設的index,即logstash-* 來進行索引,即可進入系統,則可以在discover上看到實時日誌輸出。
如果你能看到類似的介面,則恭喜你,到此,整個系統算是搭建成功了
OK,到此,基礎的系統就搭建完成了,然後在此基礎上,要想拓展多種別的功能,則需要新增x-pack外掛包,下面說一下,如何安裝並修改配置:
1. 取官網下載對應版本的x-pack的外掛包,然後利用本地檔案安裝,官網上是寫的自動用網路下載安裝,但由於下載速度奇慢,其x-pack較大,每個都自動安裝則要重複下載多次。這裡用檔案本地安裝:
$ wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-5.6.4.zip
$ /usr/local/ELK/bielasticsearch-5.6.4/bin/elasticsearch-plugin install file:///path/to/file/x-pack-5.6.4.zip
$ /usr/local/ELK/logstash-5.6.4/bin/logstash-plugin install file:///path/to/file/x-pack-5.6.4.zip
$ /usr/local/ELK/kibana-5.6.4-linux-x86_64/bin/kibana-plugin install file:///path/to/file/x-pack-5.6.4.zip
安裝後,預設的使用者密碼為: user:elastic password:changeme
需要修該配置,新增免密認證,才能正常的讓logstash連線到elasticsearch,kibana連線elasticsearch。
vim /usr/local/ELK/kibana-5.6.4-linux-x86_64/config/kibana.yml ## 修改kiban配置,新增下面兩行配置,然後重啟
elasticsearch.username: "elastic"
elasticsearch.password: "changeme"
vim /usr/local/ELK/logstash-5.6.4/config/logstash.yml ## 修改logstash的配置,新增下面三行,然後重啟
xpack.monitoring.elasticsearch.url: "http://192.168.9.89:9200"
xpack.monitoring.elasticsearch.username: "logstash_system"
xpack.monitoring.elasticsearch.password: "changeme"
vim /usr/local/ELK/conf/all.conf ## 修改logstash指定執行的自定義過濾規則的配置檔案,在輸出到elasticsearch時需要新增使用者密碼驗證。
output {
elasticsearch {
hosts => ["192.168.9.89:9200","192.168.9.90:9200"]
index => "logstash-test"
user => "elastic"
password => "changeme"
}
}
OK,重啟elk三個服務後,訪問kibana介面,會出現使用者名稱密碼驗證,用x-pack預設的使用者密碼進行驗證即可。
但是,到此還只是算是基礎的完成了,剩下的就是根據你要監控的系統,配置各種不同的filebeat,各種不同logstash過濾方式,將各種不同型別的資料傳輸到elasticsearch。然後再配置不同的監檢視標,儀表盤,來進行視覺化的監控分析。
在上面,我都是以tomcat日誌為例子,進行的採集,logstash中grok也是寫的tomcat的日誌過濾格式,為了能同時過濾多種日誌,然後設定多個儀表盤,多個監控圖示。
今天就到這裡吧,下一篇則重點記錄講解,系統的其他的各種日誌的採集,lotstash的過濾配置檔案編寫,和kibana上介面的配置,監控的配置等等。