ELK簡介及其配置和常規用法

0、前提

Java環境

注:運行ELK需要有對應的java環境,此處要注意的時候如果ELK的版本不是很高,那麼jdk的版本也不宜過高

 

1、ELK簡介

       ELK是Elasticsearch、Logstash、Kibana的簡稱,這三者是核心套件,但並非全部。

(1)Elasticsearch

       是實時全文搜索和分析引擎,提供蒐集、分析、存儲數據三大功能;是一套開放REST和JAVA API等結構提供高效搜索功能,可擴展的分佈式系統。它構建於Apache Lucene搜索引擎庫之上。

(2)Logstash

       是一個用來蒐集、分析、過濾日誌的工具。它支持幾乎任何類型的日誌,包括系統日誌、錯誤日誌和自定義應用程序日誌。它可以從許多來源接收日誌,這些來源包括 syslog、消息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出數據,包括電子郵件、websockets和Elasticsearch。

logstash架構:

  • input:設置數據來源。
  • filter:可以對數據進行一定的加工處理過濾,可以做複雜的處理邏輯。這個步驟不是必須的。
  • output:設置輸出目標,如elasticSearch等。

(3)Kibana

是一個基於Web的圖形界面,用於搜索、分析和可視化存儲在 Elasticsearch指標中的日誌數據。它利用Elasticsearch的REST接口來檢索數據,不僅允許用戶創建他們自己的數據的定製儀表板視圖,還允許他們以特殊的方式查詢和過濾數據

 

2、下載並解壓ELK

curl -O https://artifacts.elastic.co/downloads/logstash/logstash-5.4.3.tar.gz

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.3.tar.gz

curl -O https://artifacts.elastic.co/downloads/kibana/kibana-5.4.3-linux-x86_64.tar.gz

下載解壓縮,如tar -zxvf kibana-5.4.3-linux-x86_64.tar.gz

 

3、配置文件

(1)Elasticsearch

       在解壓出來的文件夾的elasticsearch-5.4.3/config修改elasticsearch.yml文件,在Network中添加:

network.host: 0.0.0.0  ##允許外部主機訪問

(2)Logstash

logstash.yml:主配置文件(有些版本爲simple.conf)

input{
    file{
        path => "/home/wzh/Docker/MediaServer/convertServer/release/linux/Debug/log/*.log"
        type => "myLog"
        codec => multiline{
            pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}.\d{3}"
            what => "previous"
            negate => true
        }
        start_position => "beginning"
        sincedb_path => "/dev/null"
        }
}

filter{
    grok{
        match => {"message" => "%{TIMESTAMP_ISO8601:logdate}"}
        add_field => ["SrcIP", "192.168.152.128"]
    }
    date{
        match => ["logdate" , "yyyy-MM-dd HH:mm:ss.SSS", "ISO8601"]
        target => "@timestamp"
    }
}

output{
    elasticsearch{
        hosts => ["localhost:9200"]
        index => "logstash-%{+YYYY-MM-dd}"
    }
}

jvm.options:關於jvm的配置,可配置運行時內存的最大最小值,垃圾清理機制等。

startup.options:logstash運行相關的參數

(3)Kibana

 

4、常用命令

(1)elasticsearch

./elasticsearch					// 臨時啓動
./elasticsearch					// 守護進程
nohup ./elasticsearch & exit	    // 守護進程
curl 'localhost:9200/'			// 查看elasticsearch是否開啓

curl -XGET http://localhost:9200/_cat/indices?v      // 查看elasticsearch全部索引

(2)logstash

./logstash -f ../config/logstash.yml					// 臨時啓動並加載配置文件
nohup ./logstash -f ../config/logstash.yml & exit		// 守護進程

(3)kibana

./kibana						// 臨時啓動
nohup ./kibana & exit			// 守護進程

 

5、kibana使用

(1)匹配索引

       我們在正式使用Kibana之前,需要先匹配我們Elasticsearch中的索引庫,因爲我們的Elasticsearch有可能會有很多索引庫,Kibana爲了性能因素,是不會事先把所有的索引庫都導進來的,我們需要用那個索引就導哪個索引。

       按照如下步驟操作:Management >> Index Patterns >> Create Index Patterns 然後我們可以看到如下界面:

       在index pattern輸入框中輸入索引庫,可以使用模糊查詢的方式匹配。注意此索引和logstash中的配置文件設置有關係,如果配置文件沒寫好則有可能搜索不出索引。如配置文件裏“index => "logstash-%{+YYYY-MM-dd}”則kibana輸入:“lostash-*”即可創建對應索引。

(2)查看日誌

       在左上角選擇服務,右上角中選擇日期即可查看對應日期的日誌。點擊小三角即可展開對應信息,裏面包含具體的日誌信息。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章