1. 程式人生 > >分散式系統日誌收集ELK

分散式系統日誌收集ELK

1.ELK介紹

ElK,即ElasticSearch+Logstash+Kibana

ElasticSearch是一個基於Lucene的開源分散式搜尋伺服器。它的特點有:分散式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多資料來源,自動搜尋負載等。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是第二流行的企業搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。

Logstash是一個完全開源的工具,它可以對你的日誌進行收集、過濾、分析,支援大量的資料獲取方法,並將其儲存供以後使用(如搜尋)。說到搜尋,logstash帶有一個web介面,搜尋和展示所有日誌。一般工作方式為c/s架構,client端安裝在需要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操作在一併發往elasticsearch上去。  

Kibana是一個基於瀏覽器頁面的Elasticsearch前端展示工具,也是一個開源和免費的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 介面,可以幫助您彙總、分析和搜尋重要資料日誌。

2. 安裝logstash

前面的部落格已經講解了如何安裝elasticsearch和kibanba,所以這裡只講解如何安裝logstash

① 上傳以下壓縮檔案到/usr/local目錄

② 解壓logstash-6.4.3.tar.gz

[[email protected] local]# tar -zxvf logstash-6.4.3.tar.gz

③ 演示收集elasticsearch的日誌資訊

首先把以下檔案上傳到伺服器/usr/local/logstash-6.4.3/config

  mayikt01.conf

input {
    # 從檔案讀取日誌資訊 輸送到控制檯
    # path 讀取的日誌位置
    # type 型別,可自定義
    file {
        path => "/usr/local/elasticsearch-6.4.3/logs/myes.log"
        codec => "json" ## 以JSON格式讀取日誌
        type => "elasticsearch"
        start_position => "beginning"
    }
	
}

# filter {
#
# }

output {
    # 標準輸出 
    # stdout {}
    # 輸出進行格式化,採用Ruby庫來解析日誌   
     stdout { codec => rubydebug }
}

④ 啟動,進入logstash下的bin目錄,執行以下命令

[[email protected] bin]# ./logstash -f ../config/mayikt01.conf

此時在/usr/local/elasticsearch-6.4.3/logs/myes.log日誌檔案輸入內容:

可以看到logstash會實時重新整理,且是json格式資料,message即為同步的資料