天天看點

Centos7.2 搭建ELK-5.6.4日志分析平台(二)

上一篇,我記錄了elasticsearch,logstash,kibana三個軟體的安裝和運作,并按照我之前的博文,使用supervisor進行程序管理,且我們elasticsearch是做了叢集的,兩個節點,都可以作為master和data節點。架構圖如下:

Centos7.2 搭建ELK-5.6.4日志分析平台(二)

架構圖上,已完成後面的部分,接下來記錄一下前半部分的實作,即filebeat和redis,和一起其他需要注意的地方。

1. redis

在這個架構中, redis用來做消息管道,用來緩存儲峰值資料等。并不需要特别的設定,直接安裝一個redis服務即可。因為知識用來一個管道,是以基本并不消耗redis的記憶體磁盤的存儲資源,就像一個中轉站,先放一下,馬上就被取走。沒有資料或資料量較小的時候哦。在redis中看不到任何資料,要像測試filebeat是否正常輸出到redis,就要将logstash關掉,然後啟動filebeat,觀察redis中指定資料庫中的資料,然後再開啟logstash,會發現redis中的資料以可觀的速度在開始減少,直到重新整理不出資料。則驗證了filebeat --> redis --> logstash 的管道的連通性。

redis的安裝這也不贅述,請參考我之前的博文,redis的安裝:Centos7.2 Redis資料庫的安裝與自啟動配置

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上看到實時日志輸出。

Centos7.2 搭建ELK-5.6.4日志分析平台(二)

如果你能看到類似的界面,則恭喜你,到此,整個系統算是搭建成功了

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上界面的配置,監控的配置等等。