天天看點

ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

ELK是什麼

ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建
  • ElasticSearch簡稱ES,它是一個實時的分布式搜尋和分析引擎,它可以用于全文搜尋,結構化搜尋以及分析。它是一個建立在全文搜尋引擎 Apache Lucene 基礎上的搜尋引擎,使用 Java 語言編寫。
  • Logstash是一個具有實時傳輸能力的資料收集引擎,用來進行資料收集(如:讀取文本檔案)、解析,并将資料發送給ES。
  • Kibana為 Elasticsearch 提供了分析和可視化的 Web 平台。它可以在 Elasticsearch 的索引中查找,互動資料,并生成各種次元表格、圖形。

ELK的用途

日志分析并不僅僅包括系統産生的錯誤日志,異常,也包括業務邏輯,或者任何文本類的分析。而基于日志的分析,能夠在其上産生非常多的解決方案,譬如:

  1. 問題排查。日志分析技術是問題排查的基石。基于日志做問題排查,還有一個很帥的技術,叫全鍊路追蹤,比如SkyWalking、Cat、Zipkin,也算是日志分析技術裡的一種。
  2. 監控和預警。 日志,監控,預警是相輔相成的。
  3. 關聯事件。多個資料源産生的日志進行關聯分析,通過某種分析算法,就能夠解決生活中各個問題。
  4. 資料分析。可以根據日志進行某些資料的分析。

架構圖

ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

搭建Elasticsearch

https://blog.csdn.net/qq_37598011/article/details/103137571

https://blog.csdn.net/qq_37598011/article/details/103140376

我這裡用的版本還是6.7

安裝NPM

wget https://npm.taobao.org/mirrors/node/v4.4.7/node-v4.4.7-linux-x64.tar.gz
tar -zxvf node-v4.4.7-linux-x64.tar.gz
rm -rf node-v4.4.7-linux-x64.tar.gz
ln -s /usr/local/node/node-v4.4.7-linux-x64/bin/npm /usr/local/bin/npm
ln -s /usr/local/node/node-v4.4.7-linux-x64/bin/node /usr/local/bin/node
npm -v
           
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

安裝elasticsearch-head

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
           
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

如果要其他機器通路,則需要修改Gruntfile.js,在options對象屬性下增加一個hostname屬性,值為"*"

vim Gruntfile.js
           
hostname: '*'
           
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

啟動

npm run start
           
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

安裝Logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.7.0.tar.gz
tar -zxvf logstash-6.7.0.tar.gz 
cd logstash-6.7.0/config/
           

建立logstash-es.conf:

vim logstash-es.conf
           

配置如下:

input {
  stdin { }
  beats {
    port => 9900
    ssl => false
  }
}
output {
    elasticsearch {
        action => "index"
        hosts => "127.0.0.1:9200"
        index  => "logstash-%{+YYYY-MM}"
    }
    stdout { codec=> rubydebug }
}
           

ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

啟動

../bin/logstash -f ./logstash-es.conf 
           
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

安裝kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gz
cd kibana-6.7.0-linux-x86_64/config/
           

修改配置檔案

vim kibana.yml 
           
server.port: 5601
server.host: "192.168.78.133"
elasticsearch.hosts: ["http://192.168.78.133:9200"]
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"
i18n.locale: "zh-CN"
           

啟動

../bin/kibana
           
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

    OK~

    設定Index Pattern,因為我們在logstash-es.conf中設定為logstash-%{+YYYY-MM},是以設定為logstash-*就可以了。

ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

文檔:https://www.elastic.co/guide/index.html

建立Index:https://www.elastic.co/guide/en/kibana/6.7/tutorial-load-dataset.html

批量導入資料到Kibana:https://www.cnblogs.com/hai-ping/p/6068946.html

與Kafka內建

Kafka安裝:https://blog.csdn.net/qq_37598011/article/details/88980317

在logstash的config目錄下添加logstash_kafka.conf

vim logstash_kafka.conf
           
input {
  kafka{
    bootstrap_servers=>"192.168.78.133:9092"
    topics=>"test"
    codec=>plain
  }
  #stdin { }
}
output {
    elasticsearch {
        #action => "index"
        hosts => "127.0.0.1:9200"
        index  => "test-%{+YYYY-MM}"
    }
    #stdout { codec=> rubydebug }
}
           

重新開機logstash

../bin/logstash -f  ./logstash_kafka.conf 
           

在Kibana裡建立test索引

ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

測試通過kafka添加資料

./kafka-console-producer.sh --broker-list localhost:9092 --topic test
           
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建
ELK+Kafka日志內建環境搭建ELK是什麼ELK的用途架構圖安裝NPM安裝elasticsearch-head安裝Logstash安裝kibana與Kafka內建

叢集方式:https://cloud.tencent.com/developer/article/1376678

繼續閱讀