【參考】
官網:
<a href="https://www.elastic.co/downloads" target="_blank">https://www.elastic.co/downloads</a>
參考:
<a href="http://517sou.net/archives/centos%E4%B8%8B%E4%BD%BF%E7%94%A8elk%E5%A5%97%E4%BB%B6%E6%90%AD%E5%BB%BA%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90%E5%92%8C%E7%9B%91%E6%8E%A7%E5%B9%B3%E5%8F%B0/" target="_blank">http://517sou.net/archives/centos%E4%B8%8B%E4%BD%BF%E7%94%A8elk%E5%A5%97%E4%BB%B6%E6%90%AD%E5%BB%BA%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90%E5%92%8C%E7%9B%91%E6%8E%A7%E5%B9%B3%E5%8F%B0/</a>
<a href="http://my.oschina.net/itblog/blog/547250" target="_blank">http://my.oschina.net/itblog/blog/547250</a>
<a href="http://baidu.blog.51cto.com/71938/1676798" target="_blank">http://baidu.blog.51cto.com/71938/1676798</a>
【ELK組成】
Elasticsearch:
Search and analyze data in real time.
Logstash:
Collect, enrich, and transport data.
Kibana:
Explore and visualize your data.
注意:三個組建縮寫ELK
【安裝系統環境和軟體包】
系統資訊:
29M elasticsearch-2.2.1.tar.gz
72M logstash-2.2.2.tar.gz
32M kibana-4.4.2-linux-x64.tar.gz
可以檢查的校驗碼與官網對比是否包已經下載下傳完整
6251dbab12722ea1a036d8113963183f077f9fa7 kibana-4.4.2-linux-x64.tar.gz
CentOS release 6.4 (Final)
x86_64
關閉防火牆
iptables: Firewall is not running.
Disabled
最大檔案描述符(默人使用者級别的1024太小咯 要求是65536以上)
[root@master ~]# ulimit -n
102400
修改方式:
打開檔案增加兩行 /etc/security/limits.conf
* soft nofile 102400
* hard nofile 102400
檢視 ulimit -n
java version "1.7.0_99"
OpenJDK Runtime Environment (rhel-2.6.5.0.el6_7-x86_64 u99-b00)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
注意:jdk可自行網上搜尋安裝方法
注:由于Logstash的運作依賴于Java環境, 而Logstash 1.5以上版本不低于java 1.7,是以推薦使用最新版本的Java。因為我們隻需要Java的運作環境,是以可以隻安裝JRE,不過這裡我依然使用JDK,請自行搜尋安裝。
(推薦yum安裝yum install -y java-1.7.0-openjdk)
yum install -y java-1.8.0-openjdk.x86_64 (推薦用1.8 否則會有警告)
!!! Please upgrade your java version, the current version '1.7.0_09-icedtea-mockbuild_2013_01_16_18_52-b00' may cause problems. We recommend a minimum version of 1.7.0_51
這是版本建議(推薦1.8)
【下載下傳來自官網源和軟體安裝介紹】
<a href="http://s1.51cto.com/wyfs02/M02/7F/A3/wKioL1cnQiqyWAMJAACr_DGJnHw790.png" target="_blank"></a>
系統環境和版本資訊:本文把ELK套件部署在一台CentOS單機上。
具體的版本要求如下:
<code>wget https:</code><code>//download</code><code>.elasticsearch.org</code><code>/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2</code><code>.2.1</code><code>/elasticsearch-2</code><code>.2.1.</code><code>tar</code><code>.gz</code>
<code>wget https:</code><code>//download</code><code>.elastic.co</code><code>/logstash/logstash/logstash-2</code><code>.2.2.</code><code>tar</code><code>.gz</code>
<code>wget https:</code><code>//download</code><code>.elastic.co</code><code>/kibana/kibana/kibana-4</code><code>.4.2-linux-x64.</code><code>tar</code><code>.gz</code>
<a href="http://s4.51cto.com/wyfs02/M02/7F/A5/wKiom1cnQfWjIXgDAAD6KIFnyNI326.png" target="_blank"></a>
<a href="http://s4.51cto.com/wyfs02/M02/7F/A3/wKioL1cnQsjSDzv1AACz_HEEhNQ969.png" target="_blank"></a>
<a href="http://s4.51cto.com/wyfs02/M02/7F/A3/wKioL1cnQsjj_L8MAAEp1HH4NgM563.png" target="_blank"></a>
【安裝elasticsearch】
解壓、軟連接配接、cd到目錄下
<code>tar</code> <code>xvf elasticsearch-2.2.1.</code><code>tar</code><code>.gz -C </code><code>/usr/local/</code>
<code>ln</code> <code>-s </code><code>/usr/local/elasticsearch-2</code><code>.2.1/ </code><code>/usr/local/elasticsearch</code>
<code>cd</code> <code>/usr/local/elasticsearc</code>
安裝這個重要的插件:
<code>[root@master elasticsearc]</code><code># ./bin/plugin install mobz/elasticsearch-head</code>
-> Installing mobz/elasticsearch-head...
Plugins directory [/usr/local/elasticsearc/plugins] does not exist. Creating...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
Downloading .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DONE
Verifying https://github.com/mobz/elasticsearch-head/archive/master.zip checksums if available ...
NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)
Installed head into /usr/local/elasticsearc/plugins/head
建立使用者和目錄(因為elasticsearch 2.0.0 以上版本不能用root使用者運作)
<code>[root@master elasticsearc]</code><code># groupadd -g 1000 elasticsearch </code>
<code>[root@master elasticsearc]</code><code># useradd -g 1000 -u 1000 elasticsearch </code>
<code>[root@master elasticsearc]</code><code># sudo -u elasticsearch mkdir /tmp/elasticsearch</code>
<code>[root@master elasticsearc]</code><code># ls /tmp/elasticsearch</code>
<code>[root@master elasticsearc]</code><code># sudo -u elasticsearch mkdir /tmp/elasticsearch/{data,logs}</code>
mkdir /usr/local/elasticsearch/config/scripts
編輯配置檔案vim config/elasticsearch.yml 加如以下四行(注意冒号後面有空格):
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: 192.168.100.10
network.port: 9200
啟動配置預設,啟動elasticsearch
<code>sudo</code> <code>-u elastsearch </code><code>/usr/local/elasticsearch/bin/elasticsearch</code>
<a href="http://s5.51cto.com/wyfs02/M01/7F/A4/wKioL1cnUT-TvKKMAAC9iLaHDXQ785.png" target="_blank"></a>
注意:如果正式應用需要在背景運作
<code>sudo</code> <code>-u elastsearch </code><code>/usr/local/elasticsearch/bin/elasticsearch</code> <code>-d</code>
檢視程序和端口
[root@master ~]# ps -ef | grep java
1000 9477 9338 2 21:02 pts/4 00:00:07 /usr/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/usr/local/elasticsearch -cp /usr/local/elasticsearch/lib/elasticsearch-2.2.1.jar:/usr/local/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch start
root 9620 9576 0 21:07 pts/0 00:00:00 grep --color=auto java
[root@master ~]# netstat -tulnp |grep java
tcp 0 0 ::ffff:192.168.100.10:9200 :::* LISTEN 9477/java
tcp 0 0 ::ffff:192.168.100.10:9300 :::* LISTEN 9477/java
注意:
可以看到,它跟其他的節點的傳輸端口為9300,接受HTTP請求的端口為9200。
# curl 192.168.100.10:9200
{
"name" : "Wilson Fisk",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.2.1",
"build_hash" : "d045fc29d1932bce18b2e65ab8b297fbf6cd41a1",
"build_timestamp" : "2016-03-09T09:38:54Z",
"build_snapshot" : false,
"lucene_version" : "5.4.1"
},
"tagline" : "You Know, for Search"
}
傳回展示了配置的cluster_name和name,以及安裝的ES的版本等資訊。
上面的功能還是不錯的!
<a href="http://s1.51cto.com/wyfs02/M00/7F/A6/wKiom1cnUbnivnHSAACHck6M0T8351.png" target="_blank"></a>
【安裝Logstash---資料日志存儲和傳輸】
Logstash的功能如下:
<a href="http://s4.51cto.com/wyfs02/M01/7F/A6/wKiom1cnUk2TZAxfAAFbN_7tYLc036.png" target="_blank"></a>
其實它就是一個收集器而已,收集(input)和傳輸(output),我們需要為它指定Input和Output(當然Input和Output可以為多個)。可以指定input的日志和output到elasticsearch中
解壓、軟連接配接
<code>tar</code> <code>xvf logstash-2.2.2.</code><code>tar</code><code>.gz -C </code><code>/usr/local/</code>
<code>ln</code> <code>-s </code><code>/usr/local/logstash-2</code><code>.2.2/ </code><code>/usr/local/logstash</code>
測試logstash
(1) 螢幕輸入輸出方式測試
/usr/local/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
<a href="http://s1.51cto.com/wyfs02/M01/7F/A6/wKiom1cnU8mxO4KmAAA-81Be9KY249.png" target="_blank"></a>
我們可以看到,我們輸入什麼内容logstash按照某種格式輸出,其中-e參數參數允許Logstash直接通過指令行接受設定。這點尤其快速的幫助我們反複的測試配置是否正确而不用寫配置檔案。使用CTRL-C指令可以退出之前運作的Logstash。
使用-e參數在指令行中指定配置是很常用的方式
不過如果需要配置更多設定則需要很長的内容。這種情況,我們首先建立一個簡單的配置檔案,并且指定logstash使用這個配置檔案。例如:在logstash安裝目錄下建立
配置logstash
<code>建立配置檔案目錄:</code>
<code>mkdir</code> <code>-p </code><code>/usr/local/logstash/etc</code>
<code>vim </code><code>/usr/local/logstash/etc/hello_search</code><code>.conf</code>
<code>輸入下面:</code>
<code># cat /usr/local/logstash/etc/hello_search.conf</code>
<code></code>
<code>input {</code>
<code> stdin {</code>
<code> type => "human"</code>
<code> }</code>
<code>}</code>
<code>output {</code>
<code> stdout {</code>
<code> codec => rubydebug</code>
<code> elasticsearch {</code>
<code> hosts => "192.168.100.10:9200"</code>
<code>啟動: /usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/hello_search.conf</code>
<code>(以頻幕上輸入的方式輸入,以rubydebug格式輸出到螢幕,并且傳遞到elasticsearch)</code>
測試logstash日志是否傳輸到了elasticsearch
通過以下接口:
<a href="http://s3.51cto.com/wyfs02/M02/7F/A4/wKioL1cnXUuhvgCrAABQEikbuGw657.png" target="_blank"></a>
表明已經接收到了日志
至此,你已經成功利用Elasticsearch和Logstash來收集日志資料了。
【安裝kibana---展示資料】
注:現在kibanna可以自帶了web服務,bin/kibana就可以直接啟動了,建議不用nginx進行配合啟動了。
使用自帶的web
5.1 安裝Kibana
下載下傳kibana後,解壓到對應的目錄就完成kibana的安裝
<code>tar</code> <code>-xzvf kibana-4.4.2-linux-x64.</code><code>tar</code><code>.gz -C </code><code>/usr/local/</code>
<code>ln</code> <code>-s </code><code>/usr/local/kibana-4</code><code>.4.2-linux-x64/ </code><code>/usr/local/kibana</code>
啟動kibanna
<code>/usr/local/kibana-4</code><code>.4.2-linux-x64</code><code>/bin/kibana</code>
或者
<code>/usr/local/kibana/bin/kibana</code>
此時是沒有連接配接上elasticsearch
配置kibanna
vim /usr/local/kibana/config/kibana.yml
修改
重新開機
/usr/local/kibana/bin/kibana
<a href="http://s4.51cto.com/wyfs02/M02/7F/A4/wKioL1cnX5PTBCAmAACSn-zs2sA400.png" target="_blank"></a>
web通路:
監聽了5601作為web端口
In order to use Kibana you must configure at least one index pattern. Index patterns are used to identify the Elasticsearch index to run search and analytics against. They are also used to configure fields.
為了後續使用Kibana,需要配置至少一個Index名字或者Pattern,它用于在分析時确定ES中的Index
<a href="http://s4.51cto.com/wyfs02/M00/7F/A6/wKiom1cnX77AKXkUAAD96BFyc_8652.png" target="_blank"></a>
點選“Discover”,可以搜尋和浏覽Elasticsearch中的資料,預設搜尋的是最近15分鐘的資料。可以自定義選擇時間。
<a href="http://s4.51cto.com/wyfs02/M01/7F/A6/wKiom1cnYOHx8u_SAADpwrc2l5g183.png" target="_blank"></a>
到此,說明你的ELK平台安裝部署完成。
補充:
[配置logstash作為Indexer]
将logstash配置為索引器,并将logstash的日志資料存儲到Elasticsearch,本範例主要是索引本地系統日志
cat /usr/local/logstash/etc/logstash-indexer.conf
input {
file {
type =>"syslog"
path => ["/var/log/messages", "/var/log/secure" ]
}
syslog {
port =>"5544"
output {
stdout { codec=> rubydebug }
elasticsearch {hosts => "192.168.100.10:9200" }
執行:
/usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/logstash-indexer.conf
echo "谷歌alphago和李世石圍棋大戰" >> /var/log/messages
<a href="http://s5.51cto.com/wyfs02/M01/7F/A4/wKioL1cnY2TSvlHlAABK7XNFBBg494.png" target="_blank"></a>
重新整理kibana
<a href="http://s3.51cto.com/wyfs02/M00/7F/A6/wKiom1cnYvbgBCkvAACsJEfDtPk910.png" target="_blank"></a>
每個收集日志的啟動,都是一個獨立的程序
<a href="http://s5.51cto.com/wyfs02/M01/7F/A6/wKiom1cnY-vyufajAAC0fDQ5_u4295.png" target="_blank"></a>
本文轉自殘劍部落格51CTO部落格,原文連結http://blog.51cto.com/cuidehua/1769525如需轉載請自行聯系原作者
cuizhiliang