Logstash安裝和使用

2022-03-29 08:38:04 字數 3690 閱讀 1964

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 用{}來定義區域。區域內可以包括外掛程式區域定義,你可以在乙個區域內定義多個外掛程式。外掛程式區域內則可以定義鍵值對設定。示例如下:

input 

syslog {}

}

logstash 支援少量的資料值型別:

bool   debug => true 

string  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

引數:

執行 -e           bin/logstash -e ''

檔案 --config 或 -f    bin/logstash -f agent.conf

測試 --configtest 或 -t 用來測試 logstash 讀取到的配置檔案語法是否能正常解析。

日誌 --log 或 -l      logstash 預設輸出日誌到標準錯誤。生產環境下你可以通過 bin/logstash -l logs/logstash.log 命令來統一儲存日誌。

使用logstash的kafka外掛程式

啟動乙個kafka作為輸入,並輸入1231212

~/software/apache/kafka_2.11-0.10.0.0$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
stdin.conf檔案

input

}output

}

啟動logstash

bin/logstash -f stdin.conf
輸出

關於auto_offset_reset引數

由於kafka是訊息佇列,消費過的就不會再消費

可以在stdin.conf中設定auto_offset_reset="earliest",比如

input

}output

}

在kafka中依次輸入

1111

2222

3333

輸出為,注意這裡timestamp的時間是1111 -> 2222 -> 3333,logstash會從頭開始消費沒有消費的訊息

當auto_offset_reset="latest"

logstash會從程序啟動的時候開始消費訊息,之前的訊息會丟棄

在kafka中依次輸入

1111

2222

3333

輸出為kafka -> logstash -> es的conf檔案

input

}output

}

kafka -> logstash -> file的conf檔案參考

注意:如果是kafka輸入是line格式的,使用codec => line "}關於codec的說明

如果kafka輸入是json格式的,使用codec => json

input

}output

}file "}

codec => json

}}

使用logstash的hdfs外掛程式

配置檔案

input

}output

}webhdfs /logstash-%.log" # (required)

user => "lintong" # (required)

codec => json

}}

到 http://localhost:50070 下看檔案內容

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...