ELK安裝文檔及相關優化

前言:隨着硬件成本的不斷低廉,咱們能夠存儲更多數據內容,也會對各數據加以利用,其中一項很重要的數據內容即是日誌文件,不管是訪問日誌仍是系統日誌或是應用日誌,都顯得十分重要,而怎麼加以利用一直是一個難題,本文就着重於ELK三套件的搭建,是比較流行或者說可靠的日誌分析組件,值得注意的說,本文暫時只考慮單機Elasticsearch,而且爲了做爲演示,就linux的系統日誌收集做爲演示。linux


版本說明:git

ElasticSearch  1.7.1github

Kibana      4..1ruby

Logstash     1.5.2bash

JAVA      jdk-7u76服務器

注: 最新的上面不必定是最新的版本,不一樣的版本之間可能有兼容問題,而上面的組合是本人已經驗證過的了。app


首先放一張圖鎮鎮樓cors

wKiom1Z0_A7zXU6PAAHD1ftur0k764.png

強調:不要用IE瀏覽Kibana!!!運維

ELK下載地址:https://www.elastic.co/downloads curl

JAVA環境的安裝就不演示了!!!(推薦使用jdk-7u76-linux-x64.gz)

tar zxvf elasticsearch-1.7.1.tar.gz
tar zxvf kibana-4.1.1-linux-x64.tar.gz
tar zxvf logstash-1.5.2.tar.gz

 

值得注意的是,你能夠經過elastic提供的rpm包直接安裝,可是那對於一個運維人員太沒挑戰性了~~再者,對ELK的認識實在不夠深入。


下載elasticsearch-servicewrapper(是一個elasticsearch的啓動腳本) 

#wget https://github.com/elastic/elasticsearch-servicewrapper/archive/master.zip

###經過這個腳本能夠更簡單執行Elasticsearch服務啓動關閉等命令

其中包括

Console 在前臺啓動

Start     在後臺啓動

Stop     關閉

Install   裝到啓動項裏面

Remove 移除卸載


開始安裝

mv elasticsearch-1.7.1 /data/elasticsearch
unzip master.zip
mv elasticsearch-servicewrapper-master/*/data/elasticsearch/bin/
mv logstash-1.5.2 /data/logstash
mv kibana-4.1.1 /data/kibana


  ELK三套件都是依賴JAVA環境並不須要編譯安裝,因此安裝其實很是簡單,只是有版本兼容問題因此部分人老是裝不上,再者ELK須要相關優化,否則就會老是拋出異常。

 ELK中的E,elasticsearch一個全文搜索引擎,存儲着收集過來的全部數據並支持集羣模式,你只用真正的會用的時候你纔會體會到它的異常強大,雖然筆者也是剛剛深刻,可是又一次經過Python調用API查詢自安裝使用至今,查詢結果大於五萬條數據,嗖的一下就返回,沒有任何延遲,而且是結果聚合的數據,因而可知一斑,並且是單機版的。


配置elasticsearch

vi/data/elasticsearch/config/elasticsearch.yml

 

增長下面兩行

http.cors.enabled:true
http.cors.allow-origin:http://ip(本機IP)


啓動Elasticsearch

/data/elasticsearch/bin/service/elasticsearch start


本地測試Elasticsearch

curl -X GET http://localhost:9200/
{
  "status" : 200,
  "name" : "Jack Flag",
  "cluster_name" :"elasticsearch",
  "version" : {
    "number" : "1.7.1",
    "build_hash" :"927caff6f05403e936c20bf4529f144f0c89fd8c",
    "build_timestamp" : "2015-07-16T14:11:12Z",
    "build_snapshot" : false,
    "lucene_version" :"4.10.2"
  },
  "tagline" : "You Know, forSearch"
}

 

  ELK中的L指Logstash,是一個日誌收集應用,本文主要用來收集系統日誌,你固然也能夠用來解析各類日誌,如Tomcat,Nginx,MongoDB等相關應用日誌,此文檔做爲安裝文檔就不作演示了。

    

配置logstash

mkdir /data/logstash/conf/
vi /data/logstash/conf/sys.conf

input {

    syslog{

    port => "514"

    type => "syslog"

  }

}

   

output {

  elasticsearch {

    host => "127.0.0.1"

  }

}


  上面的信息是說,以syslog做爲輸入,監聽514端口,Type爲syslog,將接收的信息輸出到本機的elasticsearch。

  若是你執行/data/logstash/bin/logstash -f /data/logstash/conf/sys.conf 

你會發現本機監聽514端口,可是沒有用,由於沒有配置任何機器的rsyslog,其餘機器怎麼會發信息過來~

 因此咱們配置一下,須要收集系統日誌的主機的rsyslog

 yum -y install rsyslog
 vi /etc/rsyslog.conf
 ##加入下面一行,ip填日誌服務器的IP
 *.* @@ip:514


當你重啓被收集日誌主機的rsyslog,該主機就會往日誌服務器的514端口以syslog的格式發送系統日誌了。


由於是源碼安裝的,因此可能須要用& 或者nohup 或者本身寫的啓動腳本將logstash服務放到後臺,這裏推薦supverisor,後面的kibana也經過supervisor放到後臺。


#修改kibana配置文件

# vi/data/kibana/config/kibana.yml
port: 80   ##改成80(默認監聽5601端口)


 

而後啓動kibana

/data/kibana/bin/kibana>/dev/null 2>&1 &


可是經過&或者nohup實在太不優雅了,咱們使用supervisor

yum -y install supervisor

[program:kibana]
command=/data/kibana/bin/kibana
autorestart = true
redirect = true
stderr_logfile = /var/log/kibana/kibana.log
startsecs = 3

[program:logstash]
command=/data/logstash/bin/logstash -f /data/logstash/conf/logstash.conf -l /data/logstash/logstash_debug.log
autorestart = true
redirect = true
stderr_logfile = /var/log/logstash/logstash.log
startsecs = 3

至於supervisord的詳細配置,請參考:http://youerning.blog.51cto.com/10513771/1714627


最後啓動supervisord便可。


如今你就能夠訪問日誌服務器了。


第一次登錄,應該是下面的頁面

wKioL1Z1Boyw5YTjAAEM8FGZmVs894.png

由於咱們沒有建立索引,因此他會提示咱們建立索引,點擊create便可,若是你沒有配置發送系統日誌的rsyslog你會發現,輸入框是紅色,不能create,這是由於elasticsearch沒有任何內容。


固然能夠手工的建立一條信息。

建立一個配置文件

vi hello.conf
input {
  stdin {
    type => "human"
  }
}
 
output {
  stdout {
    codec => rubydebug
  }
 
  elasticsearch {
    host => "127.0.0.1"
  }
}


/data/logstash/bin/logstash -f hello.conf

在提示Completed以後,隨便輸入一條信息便可。


上面安裝完成後,你會發現kibana老是會出現紅色提示框"shards faild",因此須要相關優化


關於elasticsearch的優化

配置文件/data/elasticsearch/config/elasticsearch.yml增長一面內容


# Search pool

threadpool.search.type: fixed

threadpool.search.size: 20

threadpool.search.queue_size: 10000

 

系統優化

vi /etc/security/limits.conf 

elasticsearch soft  nofile 32000
elasticsearch hard  nofile 32000
root          hard nofile 32000
root          soft nofile  32000

 

後記:好吧,安裝文檔就到這裏吧,關於Elasticsearch的API調用(主要經過Python)以及Kibana的使用在之後的內容文章會說到

相關文章
相關標籤/搜索