使用NSSM工具安裝bat檔案為Windows服務

nssm是一個可以把bat批處理檔案部署為Windows服務的小工具。例如很多.net專案可能還是在Windows伺服器上面跑的,但是很多元件只提供了.bat檔案,例如elk三件套、或者後面會用到的kafka等等。

都是開一個批處理視窗也是可以的,但是容易被不小心人為關閉,就崩潰了。所以很有必要在測試完畢以後,部署到Windows服務裡面去。

接下來是正文。首先下載nssm工具,下載地址:

http://nssm.cc/release/nssm-2.24.zip

解壓以後,有32位和64位:

我電腦是64位的,所以我把64位下面的nssm檔案拷出來備用:

然後,Windows鍵 + X,調出應用欄,選擇使用管理員許可權開啟powershell:

定位到剛才拷貝nssm的目錄下,然後先安裝Elasticsearch。為了看出效果,現在ES都已經關閉了,開啟localhost:9200看下先:

開始安裝ES服務:

Nssm.exe install ElasticSearch,即可安裝一個名為ElasticSearch的服務。或者你也可以自定義命名:

Detail裡面可以新增描述等,或者對映的名稱:

我就改個描述意思下,其他的,大佬們可以自行玩。

最後點下方的Install service按鈕,就可以安裝服務了。

安裝成功以後,預設一開始是沒有啟動的,我們去Windows服務上面手動開啟一下。效果如圖:

現在重新整理一下localhost:9200看一下啟動是否成功:

接下來是安裝kibana服務:

同理,使用 nssm.exe install kibana,然後引用kibana.bat檔案進行安裝:

開啟 localhost:5601看下是否啟動成功:

OK,說明Kibana服務也安裝成功了。

最後是安裝Logstash服務。Logstash因為需要指定配置檔案,所以操作略有一些不一樣:

在Arguments裡面,需要加 -f 配置檔案絕對路徑,例如我的是:

-f D:\xxxxx\logstash-7.13.1-windows-x86_64\logstash-7.13.1\config\rabbitmq.conf

安裝成功以後,就可以在Windows服務裡面設定啟動:

驗證一下效果,在上一篇文章上面的api裡面,改一下日誌輸出,然後啟動程式並執行api,看看效果:

啟動並執行測試的webapi:

現在去ES上面查詢一下,看看有沒有記錄:

在kibana上面查到對應的資訊記錄,說明logstash部署成服務成功~~