logstash是開源的伺服器端資料處理管道,能夠同時 從多個**採集資料、轉換資料,然後將資料傳送到您最喜歡的 「儲存庫」 中。(我們的儲存庫當然是 elasticsearch。)
作用:集中、轉換和儲存資料
bin/logstash -e 'input}output}'輸入:hello world
輸出:
logstash 會給事件新增一些額外資訊。最重要的就是@timestamp,用來標記事件的發生時間。因為這個字段涉及到 logstash 的內部流轉,所以必須是乙個 joda 物件,如果你嘗試自己給乙個字串字段重新命名為@timestamp
的話,logstash 會直接報錯。所以,請使用 filters/date 外掛程式 來管理這個特殊字段。
此外,大多數時候,還可以見到另外幾個:
host標記事件發生在**。
type標記事件的唯一型別。
標記事件的某方面屬性。這是乙個陣列,乙個事件可以有多個標籤。
logstash 設計了自己的 dsl —— 有點像 puppet 的 dsl,或許因為都是用 ruby 語言寫的吧 —— 包括有區域,注釋,資料型別(布林值,字串,數值,陣列,雜湊),條件判斷,字段引用等。
logstash 用{}
來定義區域。區域內可以包括外掛程式區域定義,你可以在乙個區域內定義多個外掛程式。外掛程式區域內則可以定義鍵值對設定。示例如下:
inputlogstash 支援少量的資料值型別:syslog {}
}
bool debug => truestring host => "hostname"
number port => 514
array match => ["datetime", "unix", "iso8601"]
hash
options =>
表示式支援下面這些操作符:equality, etc: ==, !=, , <=, >=
regexp: =~, !~
inclusion: in, not in
boolean: and, or, nand, xor
unary: !()
比如:if "_grokparsefailure" not in [tags] else if [status] !~ /^2\d\d/ and [url] == "/noc.gif" else
引數:使用logstash的kafka外掛程式 啟動乙個kafka作為輸入,並輸入1231212執行 -e bin/logstash -e ''
檔案 --config 或 -f bin/logstash -f agent.conf
測試 --configtest 或 -t 用來測試 logstash 讀取到的配置檔案語法是否能正常解析。
日誌 --log 或 -l logstash 預設輸出日誌到標準錯誤。生產環境下你可以通過 bin/logstash -l logs/logstash.log 命令來統一儲存日誌。
~/software/apache/kafka_2.11-0.10.0.0$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic teststdin.conf檔案
input啟動logstash}output
}
bin/logstash -f stdin.conf輸出
關於auto_offset_reset引數:
由於kafka是訊息佇列,消費過的就不會再消費
可以在stdin.conf中設定auto_offset_reset="earliest",比如
input在kafka中依次輸入}output
}
1111輸出為,注意這裡timestamp的時間是1111 -> 2222 -> 3333,logstash會從頭開始消費沒有消費的訊息2222
3333
當auto_offset_reset="latest"
logstash會從程序啟動的時候開始消費訊息,之前的訊息會丟棄
在kafka中依次輸入
1111輸出為kafka -> logstash -> es的conf檔案2222
3333
inputkafka -> logstash -> file的conf檔案參考 注意:如果是kafka輸入是line格式的,使用codec => line "}關於codec的說明 如果kafka輸入是json格式的,使用codec => json}output
}
input使用logstash的hdfs外掛程式 配置檔案}output
}file "}
codec => json
}}
input到 http://localhost:50070 下看檔案內容}output
}webhdfs /logstash-%.log" # (required)
user => "lintong" # (required)
codec => json
}}
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...
logstash 使用和搭建
官方介紹 logstash is an open source data collection engine with real time pipelining capabilities。簡單來說logstash就是一根具備實時資料傳輸能力的管道,負責將資料資訊從管道的輸入端傳輸到管道的輸出端 與此...
Logstash的安裝與使用
logstash logstash是elastic技術棧中的乙個技術。它是乙個資料採集引擎,可以從資料庫採集資料到es中。我們可以通過設定自增id主鍵或者時間來控制資料的自動同步,這個id或者時間就是用於給logstash進行識別的 安裝logstash 外掛程式 logstash input jd...