目錄
介紹
ELK的基礎
安裝
安裝Elastic Search作為服務
安裝Logstash作為服務
安裝Kibana作為服務
安裝WinLogbeat作為服務
安裝Jenkins插件
配置Kibana以顯示日志
興趣點
介紹
這是一篇基礎文章,解釋了使用Jenkins和Windows日志事件安裝和配置ELK的詳細資訊。
ELK的基礎
ELK代表Elastic Search,Logstash和Kibana。
- Elastic Search是基于Lucene的搜尋索引器。
- Logstash用于存儲日志,并将其串行提供給Elastic Search。
- Kibana是搜尋索引的UI表示,用于在Elastic Search中進行設定。
您可以直接在elastic search中加載資料。所有這三個工具都可以單獨使用。但是最好将它們一起使用。
工具堆棧的問題之一是安全性。如果需要,您需要手動附加安全層。就像Kibana一樣,可以直接通路。但是,如果需要使用者授權(例如SSO,LDAP)或自己的授權,則需要附加代理進行授權。在本文的此處,我們将不作贅述。
您可以直接将日志加載到Elastic Search。對于本文檔,我們将僅介紹基礎知識。
安裝
連結下載下傳工具。我們暫時不使用Docker。
- Elastic Search: https://www.elastic.co/downloads/elasticsearch download WINDOWS shaasc
- Logstash: https://www.elastic.co/downloads/logstash download ZIP shaasc
- Kibana: https://www.elastic.co/downloads/kibana download WINDOWS shaasc
- NSSM: https://nssm.cc/download download nssm 2.24 (2014-08-31)
- Winlogbeats: https://www.elastic.co/downloads/beats/winlogbeat WINDOWS 64-BIT shaasc
我們可以使用各種節拍,但是在本文檔中,我們将僅使用filebeat和winlogbeat,我們将不對此進行詳細介紹:
- https://www.elastic.co/downloads/beats
将所有zip檔案解壓縮到一個檔案夾中。我在C:驅動器上将檔案夾命名為ELK_Stack:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4MjM3MjM0EjMwEjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
由于我們将使用Windows,是以我們需要這些應用程式作為服務運作。
安裝Elastic Search作為服務
Elastic Search帶有一個批處理檔案,該檔案在指令提示符下運作時将安裝服務。
cd /d C:\ELK_stack\elasticsearch\bin
elasticsearch-service.bat install.
C:\ELK_stack\elasticsearch\config有一個名為elasticsearch.yml的配置——其有預設值。預設情況下,elastic search 将在端口9200上運作。
這将在Windows中安裝elastic search 作為服務:
安裝Logstash作為服務
解壓縮檔案後,在提取logstash的同一檔案夾下建立一個名為Logstash_config.conf的檔案。它可以在系統中的任何位置,但是為了更好的管理,我将其保留在此處。
C:\ELK_stack\logstash
該檔案是JSON檔案。
\\logstash_config.conf
input {
file {
path => "D:/jenkins_QA/jobs/**/log"
start_position => "beginning"
}
file{
path=>"\\s608109dl2nsqa\stars_qa\EE\ContinuousDeployment/*/*.log"
start_position => "beginning"
}
beats {
port => 5044
}
tcp {
id=>"Jenkins_Plugin"
port => 5045
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
stdout { codec => rubydebug }
}
然後打開指令提示符并運作以下指令:
cd /d C:\ELK_stack\logstash\bin
logstash-plugin install logstash-output-tcp
logstash-plugin install logstash-input-beats
記住我們下載下傳了NSSM:
C:\ELK_stack\nssm\win64\nssm install
這将觸發一個UI。如果要作為指令行運作,請随時嘗試。
我在elastic search的依賴項中還有其他頁籤,但這是可選的。
現在轉到服務管理器并啟動服務。
Logstash現在正在運作,我們将在以後看到我們能做什麼。
安裝Kibana作為服務
這很簡單:
cd /d C:\ELK_stack\kibana\bin
dir kaibana.bat
Kibana.bat應該存在于:
C:\ELK_stack\nssm\win64\nssm install
這将觸發一個UI。如果要作為指令行運作,請随時嘗試。
您可以更改一些設定,但現在,我們将保持不變。
如果要檢視配置,則位于以下位置:
C:\ELK_stack\kibana\config\kibana.yml
預設端口為5601,隻要可以通路該端口,就可以從任何地方進行通路。理想情況下,應使用ngnix https://logz.io/blog/securing-elk-nginx/來運作kibana 。
但是我們不在這裡詳細介紹。
安裝WinLogbeat作為服務
将zip解壓縮到其他伺服器上,您将看到有一個Powershell腳本用于将winlogbeat作為服務安裝。繼續并運作install-service-winlogbeat.ps1。
安裝該服務後,打開軟體包中的配置檔案winlogbeat.yml,并用Logstash的IP和您在logstash 配置中指定為beats 偵聽器的端口修改第122行。在我們的例子中,我們使用5044。
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
轉到服務并啟動winlogbeat服務,它将開始将資料推送到logstash。
安裝Jenkins插件
現在,您已經安裝了logstash,并且想要将建構資料從Jenkins發送到Logstash。是以,首先安裝:
-
https://wiki.jenkins.io/display/JENKINS/Logstash+Plugin
http://<JenkinsIP:Port>/pluginManager/installed
在這裡,我們假設已經安裝了Jenkins并運作其他插件。
現在,讓我們在Jenkins中配置插件。
http://<JenkinsIP:Port> /configure
這是我們在logstash_config.conf中為TCP輸入配置的端口。
現在,所有的工作都将開始。
如果推送日志時出現問題,您将收到如下錯誤:
[logstash-plugin]: Failed to send log data: <Logstash Server>:5045.
[logstash-plugin]: No Further logs will be sent to <Logstash Server>: 5045.
java.net.ConnectException: Connection refused: connect
配置Kibana以顯示日志
<a href="http://localhost:5601/app/kibana#/home?_g=()" target="_blank" rel="external nofollow" >http://localhost:5601/app/kibana#/home?_g=()</a>
一旦您看到了logstash的索引,我們就可以建立一個索引模式,以便我們獲得期望的資料:
是以在索引名稱中,輸入logstash- *之類的内容。
現在,如果您轉到儀表闆,将會看到類似以下内容:
興趣點
我在各個站點遇到的主要學習之一——有人提到已經安裝了許多logstash。當我運作指令logstash-plugin list時,這總是給我一個巨大的清單。但是在我沒有安裝filebeats插件和tcp-output插件之前,無論我嘗試什麼,我都無法使它工作。現在,我的所有Jenkins建構日志都可以通過适當的搜尋在Kibana中看到。