Logstash - Getting Data
安裝完成以後,要知道如何使用Logstash進行資料蒐集。
簡單來說,Logstash蒐集處理資料分三個階段,分別為:
- Input - 告訴Logstash蒐集資料的來源
- Filter - 對資料進行中間過程的處理
- Output - 輸出資料
整個Logstash具有相當的歷史和多種變化方式,在此先以主要使用的內容進行說明。
設定Logstash組態檔, 配置在
/etc/logstash.conf
組態檔案內容大略有三個區塊,對應到蒐集處理資料的三大階段。
Input
告訴Logstash蒐集資料的來源,我們使用的情境,Input來源有file (讀取特定路徑下的檔案)以及TCP Connection送入的資訊(例如rsyslog傳來的資料)。在第一階段
Filter
中間的處理是最需要花時間規劃的地方,正確的欄位與資料識別有注於後續使用Elasticsearch和Kibana進行分析。 Filter之中,先使用
欄位截取的資料型態
grok {NUMBER:num:int}
:int :float
Output
情境就直接送到Elasticsearch,先不做太大的著墨, 未來應可嘗試轉向自己的配置。
啟動Logstash
nohup
我們建立的服務需要長期執行,透過以下的方式進行:
nohup command &> /dev/null
nohup是由兩個字組成的命令:no-hup,hup的意思是SIGHUP(hangup),因此,nohup就是忽略SIGHUP。當我們使用ssh登入主機後所下達的命令,在連線登出時,在此登入shell所執行的程序(process)都會收到掛斷的SIGHUP信號,沒有用nohup下達command執行的process就會中斷,而有透過nohup下達的command就不受影響會持續執行。
& 就是把 command 放到被警執行,不受到前景的干擾。
screen
這屬進階技巧,待有時間再來摸索。