天天看點

logstash讀取redis中的資料

本文描述了一個簡單的case,就是怎麼在logstash進行配置,講多個日志資料流,通過redis緩存接收,再導出到elasticsearch索引。

假設有兩組日志資料由日志端寫入redis緩存,兩組日志标記其類型為redis-data-A和redis-data-B,則編寫logstash配置檔案如下

input {

redis {

host => “127.0.0.1”

type => “redis-data-A”

data_type => “list”

key => “listA”

}

redis {

host => “127.0.0.1”

type => “redis-data-B”

data_type => “list”

key => “listB”

}

}

output {

if [type] == “redis-data-A”{

elasticsearch {

host => localhost

index => “logstash_event_a-%{+YYYY.MM.dd}”

}

stdout { codec => rubydebug }

}

if [type] == “redis-data-B”{

elasticsearch {

host => localhost

index => “logstash_event_b-%{+YYYY.MM.dd}”

}

stdout { codec => rubydebug }

}

}

以上logstash的配置檔案含義為:

1、在input處,設定兩組redis輸入資料,通過type指定兩組資料的類型

2、在output處,通過if [type] == “”,設定條件輸出,當滿足type = redis-data-A,将資料導出到elasticsearch,索引格式為”logstash_event_a-%{+YYYY.MM.dd}”。如果type == redis-data-B,則導出到另一個索引裡。

測試,使用redis-cli指令連接配接redis服務,嘗試在兩個隊列listA和listB,輸入資料。listA隻輸入英文字元,listB隻輸入數字。

打開 kibana,進入其首頁,點選紅框所示的标準界面

點選最右上角的齒輪按鈕,配置dashborad讀取redis-data-A日志資料的索引,即以logstash_event_a-開頭的索引資料(同樣的方法可以設定logstash_event_b-開頭的):

點選儲存後,dashboard頁面重新整理,可以看到顯示的message内容,還有type裡記錄的redis-data-A,表示我們成功擷取到了此類日志的資料,全是英文字元,且type為redis-data-A。

為了避免關閉浏覽器後,下次重複以上配置,點選界面右上方的儲存按鈕,将這個配置儲存下來。以後,隻要點選打開圖示,就可以找到這個配置了。

使用同樣的方法檢視日志資料redis-data-B,全是數字,且type為redis-data-B:

繼續閱讀