1. 程式人生 > >ElasticSearch+Logstash+Kibana+log4j2 官方6.1.1版安裝配置簡介

ElasticSearch+Logstash+Kibana+log4j2 官方6.1.1版安裝配置簡介

簡介

         在搜尋ELK資料的時候,發現這篇文章比較好,於是摘抄一小段

        日誌主要包括系統日誌、應用程式日誌和安全日誌。系統運維和開發人員可以通過日誌瞭解伺服器軟硬體資訊、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以瞭解伺服器的負荷,效能安全性,從而及時採取措施糾正錯誤。

        通常,日誌被分散的儲存不同的裝置上。如果你管理數十上百臺伺服器,你還在使用依次登入每臺機器的傳統方法查閱日誌。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日誌管理,例如:開源的syslog,將所有伺服器上的日誌收集彙總。

        集中化管理日誌後,日誌的統計和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現檢索和統計,但是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。

        開源實時日誌分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。

  • Elasticsearch是個開源分散式搜尋引擎,它的特點有:分散式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多資料來源,自動搜尋負載等。

  • Logstash是一個完全開源的工具,他可以對你的日誌進行收集、過濾,並將其儲存供以後使用(如,搜尋)。

  • Kibana 也是一個開源和免費的工具,它Kibana可以為 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 介面,可以幫助您彙總、分析和搜尋重要資料日誌。

本篇博文介紹elk的安裝配置以及與log4j2結合的簡單應用以下內容為原創

系統環境

ubuntu 14.04

jdk版本 1.8.0_144

ElasticSearch6.1.1

Logstash6.1.1

kibana6.1.1

網路環境

只做測試演示elk均部署在一臺伺服器上

ubuntu地址:10.32.23.253

前期準備

通過apt-get install 方式安裝需要先執行以下命令

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-
https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main"| sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

sudo apt-get update

ElasticSearch

1.安裝elasticsearch命令:sudo apt-get install elasticsearch

2.檢視檔案及配置檔案路徑whereis elasticsearch

配置檔案路徑/etc/elasticsearch

檔案路徑/usr/share/elasticsearch

修改配置檔案elasticsearch.yml

3.命令:vi /etc/elasticsearch/elasticsearch.yml

檔案末新增以下內容儲存(只做演示故大部分配置使用預設值不做配置,詳細配置見:常用配置說明)

#資料存放目錄

path.data: /var/lib/elasticsearch
#日誌目錄
path.logs: /var/log/elasticsearch

#當前hostname或IP,我這裡是本機ip 如填寫localhost則外部無法訪問只可本機呼叫
network.host: 10.32.23.253

4.執行:service elasticsearch start 

常見異常:

執行命令返回:Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME

配置elasticsearch的JAVA_HOME

執行命令:vi /etc/init.d/elasticsearch 在檔案頭新增:JAVA_HOME="JDK目錄" 本機為/home/jdk 故新增為 JAVA_HOME="/home/jdk"

如果上一步出現異常則修改配置後再次執行:service elasticsearch start 如提示Ok

* Starting Elasticsearch Server                                                                                                                                                                     [ OK ]

5.執行:service elasticsearch status 檢視執行狀態

6.訪問:伺服器ip:9200 本次演示地址為:10.32.23.253:9200

命令:curl 10.32.23.253:9200

Logstash

1.安裝Logstash命令:sudo apt-get install logstash

2.檢視檔案及配置檔案路徑whereis elasticsearch

3.配置檔案路徑/etc/logstash

檔案路徑/usr/share/logstash

4.修改配置檔案,執行命令:vi /etc/logstash/logstash.yml

檔案末尾新增 或取消註釋

path.data: /var/lib/logstash

path.config: /etc/logstash/*.conf

path.logs: /var/log/logstash

5.進入/usr/share/logstash目錄,新增檔案logstash-test.conf

vi /usr/share/logstash/logstash-test.conf

input {
    stdin{}
}
filter {
}
output {
    stdout {
        codec => rubydebug
    }
    elasticsearch {
         hosts => "10.32.23.253:9200"
    }
}

執行命令:/usr/share/logstash/bin/./logstash -f /usr/share/logstash/logstash-test.conf,在控制檯輸入hello logstash,結果如下圖則logstash配置成功

Kibana

1.安裝 Kibana命令:sudo apt-get install kibana

2.檢視檔案及配置檔案路徑whereis kibana

3.修改配置檔案 

執行命令:vi /etc/kibana.yml 

新增如下內容

server.port: 5601

server.host: "10.32.23.253" (伺服器IP)

4.執行啟動命令:service kibana start

測試訪問 10.32.23.253:5601

 log4j日誌輸出到logstash

1.首先配置logstash

執行命令:vi /usr/share/logstah/logstash-tcp.conf

input {
tcp {
host => "10.32.23.253"
port => "4560"
mode => "server"
type => "microwiki"
add_field => {
"name" => "Routh"
}
}
}
filter {
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "10.32.23.253:9200"
}
}

2.進入logstash根目錄 /usr/share/logstash

執行命令:nohup ./bin/logstash -f logstash-tcp.conf &

3.在集成了log4j的專案中修改log4j2.xml,host為logstash伺服器ip port為logstash設定的埠號

新增

<Socket name="Logstash" host="10.32.23.253" port="4560" protocol="TCP">
 <PatternLayout>%d{HH:mm:ss,SSS} %-5level [%c{1.}] %C{1} %m%n</PatternLayout>
</Socket>
<Root level="info" includeLocation="true">
    <AppenderRef ref="Logstash"/>
</Root>

4.正常部署執行到與logstash伺服器網路通暢的伺服器後即可接收其日誌推送

5.進入kibana設定