Windows 下配置 Logstash 為后台服務


到目前為止,logstash 沒有給出官方的,在 windows 系統中作為后台服務運行的方式。本文將介紹如何使用第三方工具 nssm 讓 logstash 作為后台服務運行在 windows 中。
說明:演示的環境為 windows server 2016,logstash 的版本為 6.2.4。

安裝 Java Development Kit(JDK)

運行 logstash 6.2.4 需要先在環境中安裝 JDK,演示中筆者安裝的版本為 jdk-8u111-windows-x64,直接安裝到默認的目錄中。

在 logstash 的運行腳本中用到了 JAVA_HOME 環境變量,因此我們需要先添加這個環境變量(注意,環境變量的值為 JDK 的實際安裝目錄):

環境變量添加完成后,新啟動一個 PowerShell 窗口,執行下面的命令:

> echo $env:JAVA_HOME

通過輸出的結果驗證環境變量是否被正確添加。

安裝 NSSM

NSSM 是 windows 下的一個后台服務管理程序,完整功能請參考其官方文檔。本文中我們使用它輕松地把 logstash 這樣的程序配置為后台運行的服務。請從 NSSM 官方下載安裝包,解壓縮后把合適架構的可執行程序拷貝到安裝目錄。比如筆者把 x64 目錄下的 nssm.exe 文件拷貝到了 C:\Program Files\nssm 目錄下。
為了方便使用,把路徑 C:\Program Files\nssm 添加到 PATH 環境變量中,這樣在任何路徑下都可以執行 nssm 命令而不用寫出其完整的路徑。

安裝 logstash

在 windows 中安裝 logstash 就是把從官方下載的安裝包 logstash-6.2.4.zip 解壓縮。示例中,我把它解壓到了 C 盤的根目錄下,並重命名為 logstash,因此 logstash 的安裝目錄為:C:\logstash。

為了驗證最終的安裝結果,我們創建一個測試用的配置文件。在 C:\logstash\bin 目錄下創建文件 logstash.conf,編輯其內容如下:

input {
    # Accept input from the file.
    file {
        path => ["c:\input.txt"]
    }
}

output {
    # Output to the file.
    file {
        path => "c:\output.txt"
        codec => line { format => "custom format: %{message}"}
    }
}

同時在 C 盤的根目錄下創建兩個文本文件,分別為 input.txt 和 output.txt。

配置 logstash 為后台服務

以管理員權限啟動 PowerShell,進入 C:\logstash\bin 目錄,然后執行下面的命令:

> nssm install logstash

在上面的對話框中分別設置 Path、Startup directory 和 Arguments。

比如 Path 為:C:\logstash\bin\logstash.bat
Startup directory 為:C:\logstash\bin
Arguments 為:-f C:\logstash\bin\logstash.conf
最后點擊 "Install service" 按鈕。
安裝成功后,在服務管理程序中會出現一個名稱為 "logstash" 的服務,其啟動類型為 "自動"。以后我們就可以在服務管理器中像管理其他服務一樣管理 logstash 服務了!現在先在服務管理器中啟動 logstash 服務。

驗證 logstash 服務運行正常

我們剛才添加了一個 logstash 配置,input 和 output 都是文件,分別是 c:\input.txt 和 c:\output.txt。
在 PowerShell 中執行下面的命令:

> echo "hello" >> c:\input.txt
> echo "world" >> c:\input.txt

然后查看 c:\output.txt 文件的內容,如果正常的話,其內容應該是:

custom format: hello
custom format: world 

如果與上面的內容不符,可能是配置有問題,請參考本文重新檢查配置信息。如果確認配置信息正確,可以檢查 C:\logstash\logs 目錄下的日志文件,看看問題究竟出在哪里。

參考:
Installing Logstash on Windows
NSSM
Set Logstash as a Windows service


免責聲明!

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



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