E=ElasticSearch ,一款基於的Lucene的分佈式搜索引擎,我們熟悉的github,就是由ElastiSearch提供的搜索,據傳已經有10TB+的數據量。
L=LogStash , 一款分佈式日誌收集系統,支持多輸入源,並內置一些過濾操作,支持多輸入元
K=Kibana , 一款配合ElasticSearch的web可視化界面,內置非常各種查詢,聚合操作,並擁有漂亮的圖形化展示功能
爲什麼要用ELK?
在實際應用中,我們的日誌是非常重要的,它通常會記錄一些比較重要的信息,如應用程序的log記錄的error,warn級別的log,通常在量小的情況下,我們可以直接vi+awk+sed+grep定位原因,在量大的時候,這種方式就捉襟見肘了,而且我們還要各種聚合,或者基於異常多個關鍵詞的搜索,並有且,或,交,並,差,補,排序等一些操作,而且相應速度必須給力,如果線上環境出了故障,能夠立刻準確定位,ELK就是高手,在百萬大軍中取上將首級,猶如探囊取物,所以這時候ELK就非常適合了,當然除此之外,ELK也經常在運維工作中大放光彩,在應用級別的實時監控,非常適合一些重要核心服務的預警。
ELK如何安裝搭建?
環境要求:
Linux系統:Centos6.5
[iyunv@ELK-Server ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
Java版本:JDK1.8
[iyunv@ELK-Server ~]# java -version
openjdk version "1.8.0_51"
OpenJDK Runtime Environment (build 1.8.0_51-b16)
OpenJDK 64-Bit Server VM (build 25.51-b03, mixed mode)
ELK均爲最新版本:
(1)ElasticSearch1.7.2 基於Lucene4.10.4的版本
(2)Logstash1.5.4
(3)Kibana4.1.2
集羣拓撲:
ElasticSearch 3臺機器:
集羣名:search
機器名+es節點名 => ip地址
h1 => 192.168.1.120
h2 => 192.168.1.121
h3 => 192.168.1.122
Logstash 192.168.1.120
Kibana 192.168.1.120
下載:
elasticsearch: wget https://download.elastic.co/elas ... search-1.7.3.tar.gz
logstash : wget https://download.elastic.co/logs ... gstash-1.5.4.tar.gz
kibana : wget https://download.elastic.co/kiba ... .2-linux-x64.tar.gz
一: 安裝elasticsearch集羣:
(1)解壓到指定目錄
(2)配置elasticsearch.yml裏面,集羣名字和節點名字,如果不配置默認集羣名爲elasticsearch,節點名隨機生成一個
(3) 在線安裝head和bigdisk插件
直接在elasticsearch的根目錄下,分別輸入:
bin/plugin --install mobz/elasticsearch-head 安裝head
bin/plugin --install lukas-vlcek/bigdesk 安裝bigdesk
(4)scp分發安裝完畢後的elasticsearch
(5)依次啓動各個機器上的elasticsearch
如果啓動時遇到以下報錯信息:
[iyunv@localhost elasticsearch]# ./bin/elasticsearch
{1.7.3}: Initialization Failed ...
- RuntimeException[Java version: 1.7.0_45 suffers from critical bug https://bugs.openjdk.java.net/browse/JDK-8024830 which can cause data corruption.
Please upgrade the JVM, see http://www.elastic.co/guide/en/e ... /_installation.html for current recommendations.
If you absolutely cannot upgrade, please add -XX:-UseSuperWord to the JVM_OPTS environment variable.
Upgrading is preferred, this workaround will result in degraded performance.]
解決方法:
# yum -y install java-1.8.0*
# yum remove java
查看下java版本號:是否是1.8.0(因爲最新版elasticsearch需要最新的java支持)
[iyunv@localhost elasticsearch]# java -version
openjdk version "1.8.0_71"
OpenJDK Runtime Environment (build 1.8.0_71-b15)
OpenJDK 64-Bit Server VM (build 25.71-b15, mixed mode)
(6)head顯示如下:
(7)bigdisk顯示如下:
二:安裝logstash
(1)解壓到指定目錄
(2)在根木下新建一個conf目錄,在裏面新建一個配置文件first.conf
(3)啓動logstash
執行命令: bin/logstash -f conf/first.conf
三:安裝kibana
(1)解壓到指定目錄
(2)在根目錄執行bin/kibana直接啓動
(3)訪問http://192.168.1.120:5601/ 配置一個ElasticSearch索引
(4)在logstach裏面添加數據
(5)查看圖表:剛新加的數據
四: 至此,ELK組件已經安裝完畢,帶圖形化界面的簡單日誌查詢分析系統就搞定了
本篇只是一個簡單的入門例子,如需深入可以研究elastic的官網文檔:
https://www.elastic.co/guide/index.html