騰訊雲 Elasticsearch 進階篇(二十三)Logstash 實戰

前言 |

由於目前在騰訊雲Elasticsearch產品中,服務產品主要包括ES、Kibana、Xpack插件。那麼,很多使用產品的客戶需要把數據接入ES集群。那麼比較常用的工具就是filebeat和logstash.那麼今天開始我們講講Logstash的實用,filebeat我們後續再講。

es-ldu6984s

一、logstash的安裝、配置、使用

前面的章節中,我們講了Logstash的相關知識以及介紹,那麼今天我們講一下它的安裝、配置、使用。那麼本次還是以6.8.2版本進行演示:步驟如下:

1,去官網上下載合適的產品,然後解壓到指定文件夾即可。(過程略)

2,去安裝目錄看一下它的配置目錄,這裡要講一下:默認情況下Logstash有一個系統配置文件(一般不需要修改),在啟動Logstash服務的時候,需要指定一個第三方的配置文件才能啟動。

logstash系統默認的配置文件

logstash

3,啟動服務,需要指定一個第三方的配置文件,以*.conf文件結尾,那麼這個配置文件是以什麼格式的呢?具體如下:

input {

#輸入插件

}

filter {

#過濾匹配插件—-》可選項

}

output {

#輸出插件

}

從上面可以看到: Logstash配置文件有三部分組成,其中input、output部分是必須配置,filter部分是可選配置,而filter就是過濾器插件,可以在這部分實現各種日誌過濾功能。

4,啟動一個logstash服務,使用$PATH/bin/logstash -f *.conf「」命令啟動。列如如下:

/usr/local/logstash-6.8.2/bin/logstash -f /usr/local/logstash-6.8.2/config/test_logstash.conf

我們看一下啟動過程:如下截圖

Logstash啟動過程

啟動過程分析:

1,檢查系統配置、日誌級別配置

2,發現錯誤提示「ERROR][logstash.plugins.registry] Tried to load a plugin's code, but failed,:exception=>#<LoadError: no such file to load — logstash/filters/json_encode>」

3,然後logstash agent沒有正常啟動,然後Logstah服務關閉。

4,Logstash,啟動失敗。

二、logstash故障解決、啟動配置文件分析

通過上面的故障提示,應該提示我們Logstash里沒有那個插件,於是我們看看這個配置文件是怎麼配置的吧?如下:

test.logstash.conf文件

將某一個文本里的內容中,帶addition欄位的文本用JSON編碼的形式進行輸出。那麼我們根據上面的提示,看看我們的Logstash里到底有沒有這個叫json_encode的插件呢?我們去看看

$PATH/bin/logstash-plugin list

pluginlist 清單

結果:發現真沒有這個插件,那麼我們安裝一下這個插件:安裝過程時間比較長。。。。

安裝插件

接下來,安裝完畢,我們再來啟動Logstash,使用如上命令

Logstash啟動成功

看看JPS,有進程否,發現是有的

查看Logstash進程

服務也起來啦,再來看看數據有沒有入到ES里來?數據是有的。

logstash數據輸出驗證

三、總結

本節從實際應用出發,講了logstash配置並傳輸數據到ES的過程。在啟動過程中,我們啟動故障,通過查看啟動日誌,排查故障原因,進而服務啟動成功。後續,我們針對這logstash插件做更進一步的實戰演練。

logstash-filter-json_encode 將欄位序列化為JSON的插件