天天看點

Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

目錄

介紹

ELK的基礎

安裝

安裝Elastic Search作為服務

安裝Logstash作為服務

安裝Kibana作為服務

安裝WinLogbeat作為服務

安裝Jenkins插件

配置Kibana以顯示日志

興趣點

介紹

這是一篇基礎文章,解釋了使用Jenkins和Windows日志事件安裝和配置ELK的詳細資訊。

ELK的基礎

ELK代表Elastic Search,Logstash和Kibana。

  1. Elastic Search是基于Lucene的搜尋索引器。
  2. Logstash用于存儲日志,并将其串行提供給Elastic Search。
  3. 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:

Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

由于我們将使用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。如果要作為指令行運作,請随時嘗試。

Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

我在elastic search的依賴項中還有其他頁籤,但這是可選的。

現在轉到服務管理器并啟動服務。

Logstash現在正在運作,我們将在以後看到我們能做什麼。

安裝Kibana作為服務

這很簡單:

cd /d C:\ELK_stack\kibana\bin 
dir kaibana.bat
           

Kibana.bat應該存在于:

C:\ELK_stack\nssm\win64\nssm install
           

這将觸發一個UI。如果要作為指令行運作,請随時嘗試。

Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

您可以更改一些設定,但現在,我們将保持不變。

如果要檢視配置,則位于以下位置:

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并運作其他插件。

Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

現在,讓我們在Jenkins中配置插件。

http://<JenkinsIP:Port> /configure

Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

這是我們在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>
           
Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

一旦您看到了logstash的索引,我們就可以建立一個索引模式,以便我們獲得期望的資料:

Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

是以在索引名稱中,輸入logstash- *之類的内容。

現在,如果您轉到儀表闆,将會看到類似以下内容:

Beats與Jenkins日志讀取在Windows上的基本實作介紹ELK的基礎安裝興趣點

興趣點

我在各個站點遇到的主要學習之一——有人提到已經安裝了許多logstash。當我運作指令logstash-plugin list時,這總是給我一個巨大的清單。但是在我沒有安裝filebeats插件和tcp-output插件之前,無論我嘗試什麼,我都無法使它工作。現在,我的所有Jenkins建構日志都可以通過适當的搜尋在Kibana中看到。

繼續閱讀