logstash是一款輕量級的日誌蒐集處理框架,可以方便的把分散的、多樣化的日誌蒐集起來,並進行自定義的處理,然後傳輸到指定的位置,比如某個伺服器或者檔案。本文針對官方文件進行翻譯以及實踐,希望有更多的有使用者了解、使用這款工具。
通過命令列,進入到logstash/bin目錄,執行下面的命令:
logstash -e ""可以看到提示下面資訊(這個命令稍後介紹),輸入hello world!![]()
可以看到logstash尾我們自動新增了幾個字段,時間戳@timestamp,版本@version,輸入的型別type,以及主機名host。
logstash使用管道方式進行日誌的蒐集處理和輸出。有點類似*nix系統的管道命令*** | ccc | ddd,***執行完了會執行ccc,然後執行ddd。
在logstash中,包括了三個階段:
輸入input --> 處理filter(不是必須的) --> 輸出output
每個階段都由很多的外掛程式配合工作,比如file、elasticsearch、redis等等。
每個階段也可以指定多種方式,比如輸出既可以輸出到elasticsearch中,也可以指定到stdout在控制台列印。
由於這種外掛程式式的組織方式,使得logstash變得易於擴充套件和定製。
-f:通過這個命令可以指定logstash的配置檔案,根據配置檔案配置logstash
-e:後面跟著字串,該字串可以被當做logstash的配置(如果是「」 則預設使用stdin作為輸入,stdout作為輸出)
-t:測試配置檔案是否正確,然後退出。
前面介紹過logstash基本上由三部分組成,input、output以及使用者需要才新增的filter,因此標準的配置檔案格式如下:
}類似的,如果在filter中新增了多種處理規則,則按照它的順序一一處理,但是有一些外掛程式並不是執行緒安全的。
比如在filter中指定了兩個一樣的的外掛程式,這兩個任務並不能保證準確的按順序執行,因此官方也推薦避免在filter中重複使用外掛程式。
說完這些,簡單的建立乙個配置檔案的小例子看看:
input日誌大致如下:}filter
output
}
1 hello,this is first line in test.log!注意最後有乙個空行。2 hello,my name is xingoo!
3 goodbye.this is last line in test.log!
4
執行命令得到如下資訊:
細心的會發現,這個日誌輸出與上面的logstash -e "" 並不相同,這是因為上面的命令預設指定了返回的格式是json形式。
logstash官方文件:
logstash 配置詳解
摘要 logstash配置總結和例項 這裡記錄logstash配置中注意的事項 整個配置檔案分為三部分 input,filter,output。參考這裡的介紹 1 在windows中,檔案路徑中分隔符要使用 而不是 如果使用了 那麼 匹配將會失敗。2 預設的 timestamp是使用utc時間表示的...
Logstash安裝使用
需求 將log日誌包含api 的內容放入kafka。2017 07 13 18 01 31.619 info 15096 nio 9001 exec 1 c.z.a.t.a.s.impl.serviceimpl eventreportservice haslog api 1.配置正則 在logsta...
elk部署詳解 logstash搭建
是乙個管理日誌和事件的工具。安裝部署 使用 f引數替換命令列中的 e引數bin logstash f logstash conf bin logstash f logstash conf auto reload path data mysql mysql.log path var log messa...