Windows下ELK環境搭建(單機多節點集羣部署)

  

1.背景html

日誌主要包括系統日誌、應用程序日誌和安全日誌。系統運維和開發人員能夠經過日誌瞭解服務器軟硬件信息、檢查配置過程當中的錯誤及錯誤發生的緣由。常常分析日誌能夠了解服務器的負荷,性能安全性,從而及時採起措施糾正錯誤。java

一般,日誌被分散的儲存不一樣的設備上。若是須要管理數十上百臺服務器,必須依次登陸每臺機器的傳統方法查閱日誌,這樣很繁瑣和效率低下。當務之急是使用集中化的日誌管理,開源實時日誌分析ELK平臺可以完美的解決上述所提到的問題。node

2.須要安裝的工具
windows

ELK由ElasticSearch(ES)、Logstash和Kiabana三個開源工具組成。api

ES是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等,最重要的是近實時搜索。瀏覽器

Logstash是一個徹底開源的工具,能夠對日誌進行收集、分析、並將其存儲供之後使用。安全

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

下載地址:https://www.elastic.co/downloads 微信

 ELK是基於java的開源,因此須要安裝jdk,配置環境變量restful

安裝過程比較簡單,運行可執行文件一直下一步便可。安裝完成後,配置JAVA_HOME和JRE_HOME,以下圖所示:

 

 

在cmd命令窗口中運行java -version命令,若是現實以下結果,表示安裝成功:

Logstash服務依賴與ES服務,Kibana服務依賴Logstash和ES,因此ELK的服務啓動順序爲:ES->Logstash->Kibana,爲了配合服務啓動順序,咱們安裝順序和啓動順序保持一致。

解壓三個壓縮包到同一個目錄中,目錄的絕對路徑中最好不要出現中文字符和空格,解壓目錄以下:

 

 

3.安裝

而後依次安裝,在es的bin目錄下執行service install命令安裝就行了,默認端口是9200。

安裝成功以後瀏覽器直接訪問: http://localhost:9200/  若出現如下結果,則表示安裝成功,服務啓動::

接下來咱們安裝head插件,在bin目錄下,運行plugin install mobz/elasticsearch-head。安裝完成後,在瀏覽器裏輸入:http://localhost:9200/_plugin/head/,出現相似如下結果,表示插件安裝成功:(默認狀況下是單節點的,下圖是我配置的單機多節點,模擬集羣部署的環境)

接下來安裝 logstash服務,咱們須要藉助 nssm 來安裝,具體nssm 是什麼東西,請看官網解釋:

nssm is a service helper which doesn't suck. srvany and other service helper programs suck because they don't handle failure of the application running as a service. If you use such a program you may see a service listed as started when in fact the application has died. nssm monitors the running service and will restart it if it dies. With nssm you know that if a service says it's running, it really is. Alternatively, if your application is well-behaved you can configure nssm to absolve all responsibility for restarting it and let Windows take care of recovery actions.

具體就不翻譯了,應該都能看得懂。

從官網下載nssm.exe以後 拷貝到logstash的bin目錄下,而後在bin目錄下新建logstash.conf配置文件,具體內容以下,具體參數能夠自定義:

個人定義以下:

具體參數什麼意思請參考官網文檔解釋。

而後再新建 run.bat文件,內容以下:

而後運行命令:nssm install logstash 安裝:

 

在依賴裏面根據填寫以下內容(注意:Java是32位的後綴是x86,64位的是x64):

 

 

 

添加依賴的緣由是,logstash的輸出配置的是Elasticsearch,若是Elasticsearch沒有啓動,logstash沒法正常工做。

最後單擊install service按鈕,執行安裝過程。

 

最後安裝kibana,步驟和上面的步驟同樣,依賴裏面配置以下內容:

 

 

 4.啓動服務

在cmd中運行services.msc打開windows服務,依次啓動以下服務:

Elasticsearch

Logstash

Kibana

 

在瀏覽器中輸入:http://localhost:5601/,若是出現以下界面,表示服務啓動成功:

單擊「create」按鈕,個人index名字是:.kibana  而後點擊Discover

 

到此咱們的單節點的配置就完了,在生產環境通常都是多節點集羣化部署,再加loadbalance處理。

咱們也能夠在單機作多節點部署,模仿集羣環境,配置也比較簡單把 es的目錄拷貝三份

 

 而後分別修改config/elasticsearch.yml 文件中的下面參數:

 cluster.name: elasticsearch  集羣名稱,4個節點的集羣名稱同樣才能識別到是屬於同一個集羣(前提是要在同一個網段,單機自己就是同一網段的)

 node.name: followNode1 節點名稱,集羣中各個節點的名稱,個人分別是 followNode1,followNode2,followNode3,主節點叫:masterNode

 transport.tcp.port: 9301  tcp通訊端口,默認主節點是:9300,個人幾個從節點分別是: 9301,9302,9303

 http.port: 9201  http通訊端口,默認主節點是:9200,個人幾個從節點分別是: 9201,9202,9203

  

注意我是直接拷貝的三份,因此service的名字也是同樣的,咱們須要手動修改一下

 

修改service_id參數,這就是安裝到windows服務的名稱,不能重複,因此咱們依次改成backup1,backup2,backup3 ,名字能夠本身隨便起,可是最好起的有點意義

叫backup是由於他做爲備份接節點存在。咱們知道在集羣化的管理中有master/slave的概念,也就是主/從節點,主要是爲了雙機備份,防止單節點宕機,幾乎全部的集羣化

都有這樣的功能。好比solr,HBase,Cassandra,Hadoop等等。當master節點掛掉以後,其餘的slave節點會自動從新選舉出一個master節點,這個選舉在ES集羣中已經

實現,不像solr等其餘的須要藉助於zookeeper。

咱們在建立節點的時候能夠在配置文件elasticsearch.yml 中指定當前節點是否爲主節點:

node.master: false 是否爲主節點
node.data: true  是否做爲數據節點

更多參數命令園子裏已經有朋友整理的很詳細了請參考: http://www.cnblogs.com/hanyouchun/p/5163183.html

修改好配置以後咱們依次安裝各個節點的服務,裝好以後以下:

 

而後重啓 elasticsearch-service-x64 服務,此時他做爲master節點存在,重啓以後才能識別到新的slave節點的存在,須要注意的是:

 elasticsearch-service-x64 服務和 logstash,kibana有依賴,它中止以後這兩個服務也就中止了,須要從新啓動。

 等服務從新啓動完成以後在瀏覽器輸入任何一個slave節點,都會顯示在一個集羣中:

 

ES提供了很是易用的Reful風格的api,很是易用,目前是很是活躍的開源搜索工具。

它支持多種類型的簡單查詢和複合查詢,本身動手實踐一下就知道他有多好用了:

學習地址:http://www.learnes.net/

 

歡迎關注微信公衆平臺聯繫我:上帝派來改造世界的人

相關文章
相關標籤/搜索