分散式系統日誌收集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即為同步的資料