ELK5.3日誌分析平臺&部署

https://www.cnblogs.com/xing901022/p/6030296.htmlhtml

ELK簡介:前端

Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等java

ELK官網:https://www.elastic.co/node

Logstash是一個徹底開源的工具,他能夠對你的日誌進行收集、過濾,並將其存儲供之後使用(如,搜索)。linux

Kibana 也是一個開源和免費的工具,它Kibana能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。git

Logstash和Elasticsearch是用Java語言編寫,而Kibana使用node.js框架,在配置ELK環境要保證系統有JAVA JDK開發庫哦。github

1)Elasticsearch是一個基於Lucene的開元分佈式搜索服務器,特色爲分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等,提供了分佈式多用戶能力全問搜索服務器,基於RESTful web接口,全部節點的數據是均等的web

2)Logstash是一個徹底開源的工具,能夠對日誌進行收集,過濾,分析,並將其存儲Elasticsearch裏提供使用,redis

3)Kibana是一個基於瀏覽器頁面的elasticsearch前端展現工具,也是一個開源和免費的工具,kibana能夠爲logstash和elasticsearch提供日誌分析的web展現平臺,能夠幫助彙總,分析和搜索重要的數據日誌npm

ELK原理拓撲圖

Elk工做流程

1)經過logstash收集客戶端App的日誌數據,將全部的日誌過濾 出來,並存入Elasticsearch搜索引擎,而後經過Kibana GUI在web前端展現給用戶,最後用戶可能夠進行查看制定的日誌內容

2)若是加入Redis通訊流程如一下圖所示:

                                                                 ELK+Redis工做流程(樣板一)

                                                           ELK+Redis工做流程(樣板二)

Redis+ELK工做流程

 Logstash包含index和Agent(shipper),agent負責收集客戶端日誌監控和過濾 ,而index負責收集日誌並提交給Elasticsearch,ES將index收集來的日誌存儲到本地,並創建搜素引擎,提供搜素,最後由Kibana從ES中獲取本身想要的日誌數據信息;

[root@elasticsearch ~]# tar zxvf jdk1.8.0_131.tar.gz

[root@elasticsearch ~]# mv jdk1.8.0_131 /usr/

export JAVA_HOME=/usr/jdk1.8.0_131/
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

[root@elasticsearch ~]# source /etc/profile

[root@elasticsearch ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

[root@elasticsearch ~]# wget   https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz 

[root@elasticsearch ~]# tar zxvf elasticsearch-5.3.0.tar.gz 

[root@elasticsearch ~]# mv elasticsearch-5.3.0 /usr/local/elasticsearch
[root@elasticsearch ~]# vim /usr/local/elasticsearch/config/elasticsearch.yml

[root@elasticsearch ~]# useradd elk
[root@elasticsearch ~]# chown -R elk:elk /usr/local/elasticsearch/
[root@elasticsearch ~]# su - elk

[elk@elasticsearch elasticsearch]$ /usr/local/elasticsearch/bin/elasticsearch -d     #啓動elasticsearch,隨後tail查看日誌信息,發現未能正常啓動,出現一下報錯

【解決方法以下】

[root@elasticsearch ~]# vim /etc/security/limits.conf         #設置守護進程的文件數量限制

* soft nofile 65536
* hard nofile 65536

PS【參數詳解信息以下】

type:

有 soft,hard 和 -,

soft 指的是當前系統生效的設置值。

hard 代表系統中所能設定的最大值。

soft 的限制不能比har 限制高。用 - 就代表同時設置了 soft 和 hard 的值。

resource:

core - 限制內核文件的大小

date - 最大數據大小

fsize - 最大文件大小

memlock - 最大鎖定內存地址空間

nofile - 打開文件的最大數目

rss - 最大持久設置大小

stack - 最大棧大小

[root@elasticsearch ~]# vim /etc/security/limits.d/20-nproc.conf 

[root@elasticsearch ~]# vim /etc/sysctl.conf    #修改內核參數

vm.max_map_count=655360

[root@elasticsearch ~]# sysctl  -p (reboot重啓)

root@elasticsearch ~]# su - elk
上一次登陸:三 10月 25 12:14:36 CST 2017pts/1 上
[elk@elasticsearch ~]$ /usr/local/elasticsearch/bin/elasticsearch -d                #切換到新建 普通用戶啓動ES

[elk@elasticsearch ~]$ netstat -anput | grep -E "9200|9300"

【安裝Elasticsearch-head插件】

 [root@elasticsearch ~]#git clone git://github.com/mobz/elasticsearch-head.git

【下載nodejs】

 [root@elasticsearch ~]#https://nodejs.org/en/download/

 [root@elasticsearch ~]# wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz

 [root@elasticsearch ~]# xz node-v8.9.4-linux-x64.tar.xz 

[root@elasticsearch ~]# tar xvf node-v8.9.4-linux-x64.tar.xz
[root@elasticsearch ~]# set node environment

解壓完node的安裝文件後,須要配置下環境變量,編輯/etc/profile,添加
[root@elasticsearch ~]# vim /etc/profile
export NODE_HOME=/root/node-v8.9.4-linux-x64
export PATH=$PATH:$NODE_HOME/bin
[root@elasticsearch ~]# source /etc/profile
root@elasticsearch ~]# echo $NODE_HOME
/root/node-v8.9.4-linux-x64
[root@elasticsearch ~]# node -v
v8.9.4
[root@elasticsearch ~]# npm -v
5.6.0
【安裝grunt】
把grunt的命令行工具安裝到全局
[root@elasticsearch elasticsearch-head]# npm install -g grunt-cli
/root/node-v8.9.4-linux-x64/bin/grunt -> /root/node-v8.9.4-linux-x64/lib/node_modules/grunt-cli/bin/grunt
+ grunt-cli@1.2.0
added 16 packages in 2.579s

[root@elasticsearch elasticsearch-head]# vim /usr/local/elasticsearch/config/elasticsearch.yml

http.cors.enabled: true
http.cors.allow-origin: "*"

【修改head源碼】

[root@elasticsearch ~]# vim elasticsearch-head/Gruntfile.js      #修改服務器監聽地址

 編輯head/_site/app.js,修改head鏈接es的地址;

將localhost修改成es的IP地址。

[root@elasticsearch ~]# vim elasticsearch-head/_site/app.js

[root@elasticsearch elasticsearch-head]# nohup grunt server &

瀏覽器訪問:http://192.168.20.223:9100/便可【目前ES裏面沒有默認是沒有任何數據,也沒有和Kibana以及Logstash整合】

【Kibana部署&配置】

[root@kibana ~]# wget   https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-linux-x86_64.tar.gz 

root@kibana ~]# tar zxvf kibana-5.3.0-linux-x86_64.tar.gz 

[root@kibana ~]# mv kibana-5.3.0-linux-x86_64 /usr/local/kibana
[root@kibana ~]# vim /usr/local/kibana/config/kibana.yml

[root@kibana ~]# nohup /usr/local/kibana/bin/kibana &

 

【安裝Logstash】

[root@Logstash ~]# tar zxvf jdk1.8.0_131.tar.gz 

[root@Logstash ~]# mv jdk1.8.0_131 /usr/
[root@Logstash ~]# vim /etc/profile

export JAVA_HOME=/usr/jdk1.8.0_131/
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

[root@Logstash ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-5.3.0.tar.gz

[root@Logstash ~]# tar zxvf logstash-5.3.0.tar.gz

[root@Logstash ~]# mv logstash-5.3.0 /usr/local/logstash
[root@Logstash ~]# mkdir /usr/local/logstash/config/etc
[root@Logstash ~]# cd /usr/local/logstash/config/etc/
[root@Logstash etc]# vim logstash.conf

input {              #標準輸入
stdin { }
}
output {          #標準輸出
stdout {
codec =>rubydebug {}
}
elasticsearch {
hosts => "192.168.20.2223" }      #指定Elasticsearch的ip地址信息
}

[root@logstash etc]# /usr/local/logstash/bin/logstash -f logstash.conf     #手動輸出日誌個格式,隨後查看Kibana可以收集到

爲了使用Kibana,必需要配置至少一個索引,索引模式是爲了確認Elasticsearch  Iindex,用來運行搜索和分析,也能夠用來配置字段

Index contains time-based events   索引基於時間的事件 

Use event times to create index names [DEPRECATED]  使用事件時間來建立索引名字【過期】

Index  name  or  pattern  索引名字或者模式 

模式容許你定義動態的索引名字 使用*做爲通配符,例如默認:

logstash-* 

選擇:  

 

 

搭建完成以後,咱們能夠將ELK與redis整合,從而實現高效,一下鏈接即是ELK+redis+Nginx日誌收集的配置步驟!

http://www.cnblogs.com/bixiaoyu/p/7739785.html

相關文章
相關標籤/搜索