天天看點

ELK日志分析系統架構演變背景介紹部署步驟參考文章

文章轉自:https://www.jianshu.com/p/66db4d660d9c

ELK中文網: https://elasticsearch.cn/

目錄

背景介紹

老架構

新架構

部署步驟

1.準備工作(ELK 三個元件必須使用同一個版本)

2.開始安裝ES叢集

3.開始安裝filebeat

4.開始安裝logstash

5.開始安裝kibana

6.分别啟動ES叢集,logstash,filebeat,kibana

參考文章

背景介紹

       随着軟體行業的發展,軟體系統的生産部署結構日趨複雜。對于一個分布式的系統,同一應用通常部署在不同的節點上,通過負載均衡的方式将請求分發到各個不同的節點進行處理。此時就會相對增加生産運維的複雜度,在進行問題查詢的時候很難判斷本次請求是在哪台機器上執行的,也就無法快速的對日志進行查詢進而定位問題,是以,就需要對日志進行統一的處理和分析,以便友善開發和運維人員的問題處理速度。

本文介紹的是elastic stack開源的ELK元件,主要包括elasticsearch(簡稱es),logstash,kibana三個核心元件。

es是實時全文搜尋和分析引擎,提供搜集、分析、存儲資料三大功能,對外提供REST和java api,可擴充性的分布式系統。

Logstash是一個用來搜集、分析、過濾日志的工具,幾乎支援所有類型的日志,能夠接收多種來源的日志,包括syslog、mq,并且能夠輸出到多種媒體中,包括es,郵件等等。

Kibana是一個基于Web的圖形界面,用于搜尋、分析和可視化存儲在 Elasticsearch名額中的日志資料。它利用Elasticsearch的REST接口來檢索資料,不僅允許使用者定制儀表闆視圖,還允許使用者使用es文法進行操作。

一個完整的集中式日志系統,需要包含以下幾個主要特點:

  • 收集-能夠采集多種來源的日志資料
  • 傳輸-能夠穩定的把日志資料傳輸到中央系統
  • 存儲-如何存儲日志資料
  • 分析-可以支援 UI 分析
  • 警告-能夠提供錯誤報告,監控機制

ELK提供了一整套解決方案,并且都是開源軟體,之間互相配合使用,完美銜接,高效的滿足了很多場合的應用。目前主流的一種日志系統。

老架構

ELK日志分析系統架構演變背景介紹部署步驟參考文章

ELK初版部署結構圖

新架構

但是,在實際使用的過程中發現,logstash會占用很多系統資源,是以決定加入一個更輕量的日志收集元件(也是elastic stack的元件之一)filebeat。是以在加入filebeat之後,整個部署架構變成了如下圖所示。

ELK日志分析系統架構演變背景介紹部署步驟參考文章

ELK第二版部署結構圖

部署步驟

1.準備工作(ELK 三個元件必須使用同一個版本)

安裝包:

    elasticsearch-6.6.2.tar.gz

    kibana-6.6.2-linux-x86_64.tar.gz

    logstash-6.6.2.tar.gz

    filebeat-6.6.0-linux-x86_64.tar.gz

    jdk-8u192-linux-x64.tar.gz

機器:

    192.168.45.174,192.168.45.175,192.168.45.176(ES叢集)

    192.168.45.2(logstash,kibana)

    192.168.45.136(應用伺服器,安裝filebeat)

2.開始安裝ES叢集

   注(1):由于ELK元件都是使用java開發的,是以需要安裝1.8以上版本的jdk

      jdk的安裝方法:https://www.cnblogs.com/kuoAT/p/7555298.html

   注(2):Elasticsearch不能使用root使用者運作,需要單獨建立使用者

1)為es建立一個目錄

mkdir elasticsearch
           

2)建立一個elk使用者,并為elk使用者授權elasticsearch目錄

groupadd elk
useradd elk -g elk -p elk
chown -R elk:elk elasticsearch
           

3)上傳es的安裝包,并解壓到elasticsearch目錄

tar -zxvf elasticsearch-6.6.2.tar.gz
           

4)切換到root使用者,修改以下檔案

vi /etc/security/limits.conf
 添加如下四行
@elk hard nofile 65536
@elk soft nofile 65536
@elk  hard    nproc    4096
@elk  soft     nproc    4096
vi /etc/sysctl.conf
 添加以下内容
vm.max_map_count=655360
           

5)執行sysctl –p ,使配置生效

6)切換回elk使用者,進入 elasticsearch/config/目錄下,修改es的配置檔案elasticsearch.yml

cluster.name: my-application
  node.name: node-1
  node.master: true
  node.data: true
  path.data: elasticsearch/data
  path.logs: elasticsearch/logs
  network.host: 192.168.45.174
  http.port: 9200
  discovery.zen.ping.unicast.hosts: ["192.168.45.174", "192.168.45.175","192.168.45.176"]  // 配置ES叢集各個節點
  discovery.zen.minimum_master_nodes:2  // 防止腦裂
           

3.開始安裝filebeat

1)将filebeat上傳到要進行日志收集的伺服器上192.168.45.136,并解壓

tar -zxvf filebeat-6.6.0-linux-x86_64.tar.gz
           

2)修改配置檔案

vi filebeat-6.6.0-linux-x86_64/filebeat.yml
           

a. 修改其中的enabled為true,并配置paths(要收集的日志路徑,可以使用* 代替)。也可以根據exclude_lines和include_lines來做一些過濾日志的行為。

ELK日志分析系統架構演變背景介紹部署步驟參考文章

filebeat.yml

b. filebeat的配置檔案路徑,以及是否允許重新加載配置檔案。并設定索引的分片數量

ELK日志分析系統架構演變背景介紹部署步驟參考文章

filebeat.yml

c. 配置kibana位址

ELK日志分析系統架構演變背景介紹部署步驟參考文章

filebeat.yml

d. 配置logstash位址

ELK日志分析系統架構演變背景介紹部署步驟參考文章

filebeat.yml

4.開始安裝logstash

1)将logstash安裝包上傳到192.168.45.2伺服器并解壓

tar -xvf logstash-6.6.2.tar.gz

2)修改logstash輸入輸出的配置檔案logstash-sample.yml

a.input中配置filebeat的監聽端口

b.filter中可以增加過濾條件對所有或者指定索引進行過濾

c.output中可以配置filebeat輸出之後的索引

ELK日志分析系統架構演變背景介紹部署步驟參考文章

logstash-sample.yml

5.開始安裝kibana

1)将kibana安裝包kibana-6.6.2-linux-x86_64.tar.gz上傳到192.168.45.2,并解壓

tar -xvf kibana-6.6.2-linux-x86_64.tar.gz

2)修改配置檔案

vi kibana-6.6.2-linux-x86_64/config/kibana.yml
  修改下列内容
  server.port:5601
  server.host:"192.168.45.2"
  elasticsearch.host:["http://192.168.45.174", "192.168.45.175","192.168.45.176"]
           

6.分别啟動ES叢集,logstash,filebeat,kibana

1)分别在對應的bin目錄下執行下列操作

nohup ./elasticsearch >elasticsearch.log 2>&1 &    //ES啟動服務
  nohup ./logstash >logstash.log 2>&1 &    //logstash啟動服務
  nohup ./filebeat -e -c filebeat.yml >filebeat.log 2>&1 &    // filebeat啟動服務
  nohup ./kibana >kibana.log 2>&1 &   //kibana啟動服務
           

2)啟動後可以在浏覽器中輸入192.168.45.2:5601來進入kibana界面進行日志查詢

ELK日志分析系統架構演變背景介紹部署步驟參考文章

kibana查詢界面

參考文章

ELK原理與介紹

ELK日志分析平台的運維

ELK + Filebeat + Kafka 分布式日志管理平台搭建

繼續閱讀