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,很是易用,目前是很是活躍的開源搜索工具。
它支持多種類型的簡單查詢和複合查詢,本身動手實踐一下就知道他有多好用了:
歡迎關注微信公衆平臺聯繫我:上帝派來改造世界的人