目錄
介紹
ELK的基礎
安裝
安裝Elastic Search作為服務
安裝Logstash作為服務
安裝Kibana作為服務
安裝WinLogbeat作為服務
安裝Jenkins插件
配置Kibana以顯示日志
興趣點
這是一篇基礎文章,解釋了使用Jenkins和Windows日志事件安裝和配置ELK的詳細信息。
ELK代表Elastic Search,Logstash和Kibana。
您可以直接在elastic?search中加載數據。所有這三個工具都可以單獨使用。但是最好將它們一起使用。
工具堆棧的問題之一是安全性。如果需要,您需要手動附加安全層。就像Kibana一樣,可以直接訪問。但是,如果需要用戶授權(例如SSO,LDAP)或自己的授權,則需要附加代理進行授權。在本文的此處,我們將不作贅述。
您可以直接將日志加載到Elastic Search。對于本文檔,我們將僅介紹基礎知識。
鏈接下載工具。我們暫時不使用Docker。
我們可以使用各種節拍,但是在本文檔中,我們將僅使用filebeat和winlogbeat,我們將不對此進行詳細介紹:
將所有zip文件解壓縮到一個文件夾中。我在C:驅動器上將文件夾命名為ELK_Stack:
由于我們將使用Windows,因此我們需要這些應用程序作為服務運行。
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_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
beats耳機恢復出廠設置、記住我們下載了NSSM:
C:\ELK_stack\nssm\win64\nssm install
這將觸發一個UI。如果要作為命令行運行,請隨時嘗試。
我在elastic search的依賴項中還有其他選項卡,但這是可選的。
現在轉到服務管理器并啟動服務。
Logstash現在正在運行,我們將在以后看到我們能做什么。
這很簡單:
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?。
但是我們不在這里詳細介紹。
將zip解壓縮到其他服務器上,您將看到有一個Powershell腳本用于將winlogbeat作為服務安裝。繼續并運行install-service-winlogbeat.ps1。
安裝該服務后,打開軟件包中的配置文件winlogbeat.yml,并用Logstash的IP和您在logstash 配置中指定為beats 偵聽器的端口修改第122行。在我們的例子中,我們使用5044。
output.logstash:# The Logstash hostshosts: ["localhost:5044"]
轉到服務并啟動winlogbeat服務,它將開始將數據推送到logstash。
現在,您已經安裝了logstash,并且想要將構建數據從Jenkins發送到Logstash。因此,首先安裝:
在這里,我們假設已經安裝了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
<a href="http://localhost:5601/app/kibana#/home?_g=()">http://localhost:5601/app/kibana#/home?_g=()</a>
一旦您看到了logstash的索引,我們就可以創建一個索引模式,以便我們獲得期望的數據:
因此在索引名稱中,輸入logstash- *之類的內容。
現在,如果您轉到儀表板,將會看到類似以下內容:
我在各個站點遇到的主要學習之一——有人提到已經安裝了許多logstash。當我運行命令logstash-plugin list時,這總是給我一個巨大的列表。但是在我沒有安裝filebeats插件和tcp-output插件之前,無論我嘗試什么,我都無法使它工作。現在,我的所有Jenkins構建日志都可以通過適當的搜索在Kibana中看到。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态