天天看點

ELKStack日志分析系統單機安裝

運作環境:

作業系統:CentOS 7.0 64位

JDK:1.8

logstash:1.5.4

elasticsearch:1.7.1

kibana:4.1.4

目的:

通過ELKStack管理Java日志

Java測試類如下:

(該類隻用了log4j的jar包)

package org.logstash;

import org.apache.log4j.Logger;

public class HelloExample

{

final static Logger logger=Logger.getLogger(HelloExample.class);

public static void main(String[] args)

{

HelloExample obj=new HelloExample();

try{

obj.divide();

}catch(Exception ex){

logger.error("報錯了,報錯了。。");

System.out.println("System:"+"報錯了,報錯了。。");

}

}

private void divide(){

int i=10/0;

}

}

log4j.properties配置檔案如下:

log4j.rootLogger=DEBUG,logstash

#####SocketAppender######

log4j.appender.logstash=org.apache.log4j.net.SocketAppender

log4j.appender.logstash.Port=4560

log4j.appender.logstash.RemoteHost=127.0.0.1

log4j.appender.logstash.ReconnectionDelay=60000

log4j.appender.logstash.LocationInfo=true

該類最後打包成了一個可執行jar包LogstashExample.jar

ELKStack部署步驟:

1、安裝JDK1.8,這個步驟省略

2、建立一個檔案夾專門存放ELK套件,我這裡是在根目錄建立了一個名為ELKStack的檔案夾,将安裝包全部拷貝到該檔案夾下,這個步驟非必須,看個人。

3、部署logstash

      tar -xzvf logstash-1.5.4.tar.gz    #解壓logstash

      cd /ELKStack/logstash-1.5.4/bin

      ./logstash -e ''      #執行logstash,測試logstash是否正常

      直接在控制台任意輸入,如:Hello World,logstash輸出如下,表示logstash可以正常運作:

{

        "message" => "Hello World",

      "@version" => "1",

    "@timestamp" => "2017-02-13T06:33:36.486Z",

          "type" => "stdin",

          "host" => "localhost.localdomain"

}

(Ctrl+C可以關閉logstash程序)

4、修改logstash執行配置檔案

      vi logstash_to_elasticsearch.conf   #建立并編輯logstash_to_elasticsearch.conf檔案,該檔案在/ELKStack目錄下

      logstash_to_elasticsearch.conf内容如下:

input{

log4j{

type=>"log4j-json" 

port=>4560

}

}

output{

stdout{

codec=>rubydebug

}

elasticsearch{

host=>localhost    #這個位置如果是在同一個計算機上一定要用localhost,且不需要引号,用IP會出錯

}

}

5、部署elasticsearch

tar -xzvf elasticsearch-1.7.1.tar.gz   #解壓

cd /ELKStack/elasticsearch-1.7.1/bin

./elasticsearch   #執行elasticsearch

cd /ELKStack/logstash-1.5.4/bin

./logstash -f ../../logstash_to_elasticsearch.conf  #執行logstash,通過該方式執行logstash,可以加載配置檔案中的參數,使得logstash可以将日志輸出到elasticsearch

6、部署kibana

tar -xzvf kibana-4.1.4-linux-x64.tar.gz   #解壓

cd /ELKStack/kibana-4.1.4-linux-x64/bin

./kibana   #執行kibana,kibana天然就與elasticsearch相連,在elasticsearch處于運作情況下可以直接搜尋elasticsearch的端口号,與elasticsearch進行連接配接,是以不需要修改任何配置就可以運作,隻需注意elasticsearch和kibana的版本

7、運作測試類jar

      java -cp LogstashExample.jar org.logstash.HelloExample

浏覽器中輸入kibana的位址:http://192.168.213.129:5601/    #IP根據個人電腦會有不同,但是端口号肯定是5601

這時我們就可以在kibana中看到輸出的錯誤日志

ELKStack日志分析系統單機安裝

遇到的問題:

ELKStack是很強大的日志分析系統,但是不同三個套件必須版本比對,不然将無法使用ELK,我這邊是自己通過很多版本的嘗試之後找到的比較比對的版本。

在編寫logstash的配置檔案的時候也需要注意,我也不知道為啥用IP就不行,可能是沒有hosts的支援吧,畢竟是單機安裝,建議還是使用localhost。

遇到的問題:

ELKStack是很強大的日志分析系統,但是不同三個套件必須版本比對,不然将無法使用ELK,我這邊是自己通過很多版本的嘗試之後找到的比較比對的版本。