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


  

1.背景

日志主要包括系統日志、應用程序日志和安全日志。系統運維和開發人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤。

通常,日志被分散的儲存不同的設備上。如果需要管理數十上百台服務器,必須依次登錄每台機器的傳統方法查閱日志,這樣很繁瑣和效率低下。當務之急是使用集中化的日志管理,開源實時日志分析ELK平台能夠完美的解決上述所提到的問題。

2.需要安裝的工具

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

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

Logstash是一個完全開源的工具,可以對日志進行收集、分析、並將其存儲供以后使用。

kibana也是一個開源和免費的工具,他Kibana可以為Logstash和ES提供的日志分析友好的Web界面,可以幫助您匯總、分析和搜索重要數據日志

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

 ELK是基於java的開源,所以需要安裝jdk,配置環境變量

安裝過程比較簡單,運行可執行文件一直下一步即可。安裝完成后,配置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/

 

歡迎關注微信公眾平台聯系我:上帝派來改造世界的人


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM