Redis插件參數配置詳解
最小化配置
input {
redis {
data_type => "list" #logstash redis插件工作方式
key => "logstash-test-list" #監聽的鍵值
host => "127.0.0.1" #redis位址
port => 6379 #redis端口号
}
}
output {
stdout{}
}
詳細配置
input {
redis {
batch_count => 1 #EVAL指令傳回的事件數目
data_type => "list" #logstash redis插件工作方式
key => "logstash-test-list" #監聽的鍵值
host => "127.0.0.1" #redis位址
port => 6379 #redis端口号
password => "123qwe" #如果有安全認證,此項為密碼
db => 0 #redis資料庫的編号
threads => 1 #啟用線程數量
}
}
output {
stdout{}
}
threads參數測試
單個logstash啟動後,如果配置多個threads,那麼最後列印出的資訊與隊列中的資訊順序是不一樣的。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yM5ATN2Q2MiBTN3QmY3UmNxYzX1MzMwYTM5EzLcBTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.png)
下面給出了2w資料量,logstash在不同線程下的讀取速度:
關于其他的參數
db
Redis裡面有資料庫的概念,一般是16個,預設登入後是0,可以通過指令選擇。如果應用系統選擇使用了不同的資料庫,那麼可以通過配置這個參數從指定的資料庫中讀取資訊。
key
Redis中的資料都是通過鍵值來索引的,不管是字元串還是清單,是以這個key相當于資料庫中的表。
如果是list或者channel模式,key都是指定的鍵值;而如果是pattern_channel,那麼key可以通過glob通配的方式來指定。
password
有的Redis為了安全,是需要進行驗證的。隻有設定了password,才能正确的讀取資訊。相反,如果redis沒有設定密碼,而logstash中配置了密碼,也會報錯!
batch_count
這個屬性設定了伺服器端傳回的事件數目,比如設定了5條,那麼每次請求最多會直接擷取5條日志傳回。
data_type logstash工作的類型
logstash中的redis插件,指定了三種方式來讀取redis隊列中的資訊。
- list=>BLPOP
- channel=>SUBSCRIBE
- pattern_channel=>PSUBSCRIBE
其中list,相當于隊列;channel相當于釋出訂閱的某個特定的頻道;pattern_channel相當于釋出訂閱某組頻道。
【list】運作結果
【channel】運作結果
【pattern_channel】運作結果
可以看到channel與pattern_channel差別就在于一個是監聽特定的鍵值,一個是監聽某一組鍵值。