logstash的使用教程
一、簡單使用
cd logstash_HOME
bin/logstash -e 'input { stdin { } } output { stdout {} }'
啟動 Logstash 后,再鍵入 Hello hiekay,結果如下:
image.png
在生產環境中,Logstash 的管道要復雜很多,可能需要配置多個輸入、過濾器和輸出插件。
因此,需要一個配置文件管理輸入、過濾器和輸出相關的配置。配置文件內容格式如下:
# 輸入 input {... }# 過濾器 filter {... }# 輸出 output {... }二、配置使用 插件用法
在使用插件之前,我們先了解一個概念:事件。
Logstash 每讀取一次數據的行為叫做事件。
在 Logstach_HOME 目錄中創建一個配置文件,名為 logstash.conf(名字任意)。
- 1、 輸入插件
輸入插件允許一個特定的事件源可以讀取到 Logstash 管道中,配置在 input {} 中,且可以設置多個。
修改配置文件:
input {# 從文件讀取日志信息file {path => "/var/log/syslog"type => "system"start_position => "beginning"} }# filter { # # }output {# 標準輸出stdout { codec => rubydebug } }其中,syslog 為系統日志。保存文件。
運行
bin/logstash -f logstash.conf
在控制臺結果如下:
image.png
- 2、 輸出插件
輸出插件將事件數據發送到特定的目的地,配置在 output {} 中,且可以設置多個。
修改配置文件:
input {# 從文件讀取日志信息file {path => "/var/log/syslog"type => "error"start_position => "beginning"}}# filter { # # }output {# 輸出到 elasticsearchelasticsearch {hosts => ["127.0.0.1:9201"]index => "syslog-%{+YYYY.MM.dd}"} }配置文件中使用 elasticsearch 輸出插件。輸出的日志信息將被保存到 Elasticsearch 中,索引名稱為 index 參數設置的格式。保存文件。
運行
bin/logstash -f logstash.conf
- 打開瀏覽器訪問 http://127.0.0.1:9100 使用 head 插件查看 Elasticsearch 數據,結果如下圖:
image.png - 3、 編碼解碼插件
編碼解碼插件本質是一種流過濾器,配合輸入插件或輸出插件使用。
從上圖中,我們發現一個問題:Java 異常日志被拆分成單行事件記錄到 Elasticsearch 中,這不符合開發者或運維人員的查看習慣。因此,我們需要對日志信息進行編碼將多行事件轉成單行事件記錄起來。
我們需要配置 Multiline codec 插件,這個插件可以將多行日志信息合并成一行,作為一個事件處理。
Logstash 默認沒有安裝該插件,需要開發者自行安裝。
bin/logstash-plugin install logstash-codec-multiline
修改配置文件:
input {# 從文件讀取日志信息file {path => "/var/log/syslog"type => "error"start_position => "beginning"# 使用 multiline 插件codec => multiline {# 通過正則表達式匹配,具體配置根據自身實際情況而定pattern => "^\d"negate => truewhat => "previous"}}}# filter { # # }output {# 輸出到 elasticsearchelasticsearch {hosts => ["127.0.0.1:9201"]index => "syslog-%{+YYYY.MM.dd}"} }保存文件。
- 運行
bin/logstash -f logstash.conf
使用 head 插件查看 Elasticsearch 數據,結果如下圖:
image.png
- 4 過濾器插件
過濾器插件位于 Logstash 管道的中間位置,對事件執行過濾處理,配置在 filter {},且可以配置多個。
本次測試使用 grok 插件演示,grok 插件用于過濾雜亂的內容,將其結構化,增加可讀性。
安裝:
bin/logstash-plugin install logstash-filter-grok
修改配置文件:
input {stdin {} }filter {grok {match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER :duration}" }} }output {stdout {codec => "rubydebug"} }保存文件。
- 運行
bin/logstash -f logstash.conf
啟動成功后,我們輸入:
127.0.0.1 GET /index.html 16688 0.066
控制臺返回:
image.png
輸入的內容被匹配到相應的名字中。
總結
以上是生活随笔為你收集整理的logstash的使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AIX是什么
- 下一篇: 2.30mongodb创建集合,数据管理