Logstash输入之Redis

释放双眼,带上耳机,听听看~!

Redis插件简介

通过redis输入插件将从redis实例中读取事件,它同时支持redis通道和列表以及在logstash中使用list命令。

Redis输入插件配置选项

设置 输入类型 描述
batch_count number 可选
data_type string 必选
db number 可选
host string 可选
key string 必选
password password 可选
port number 可选
threads number 可选
timeout number 可选

batch_count

  • 值类型为number数字
  • 默认为125
  • 描述:使用EVAL从redis返回的事件数量

data_type

  • 必须设置项
  • 值类型可以是:list,channel,pattern_channel其中之一
  • 没有默认值
  • 描述:指定列表或通道,如果redis数据类型为list,那么将BLPOP键。如果redis数据类型是channel,那么将订阅密钥,如果redis数据类型是pattern_channel,那么同样是订阅密钥。

db

  • 值类型为number数字
  • 默认为0
  • 描述:指定redis的数据号,redis默认有16个数据库,编号为0-15,指定从哪个数据库中读取数据

host

  • 值类型为number数字
  • 默认值为"127.0.0.1"
  • 描述:指定redis的IP地址或者主机名

key

  • 必须设置
  • 值类型为string字符串
  • 没有默认值
  • 描述:指定reids列表或通道名称

password

  • 值类型为password密码
  • 没有默认值
  • 描述:如果reids设置了密码认证,则需要启用password选项来指定redis连接密码,redis默认不存在身份验证

port

  • 值类型为number数字
  • 默认值为6379
  • 描述:指定redis的端口

threads

  • 值类型为number数字
  • 默认为1
  • 描述:指定redis输入插件的线程数量,因为reids是单线程的中间件,所以默认为1即可

timeout

  • 值类型为number数字
  • 默认为5秒
  • 描述:logstash初始和redis连接超时时间(以秒为单位)

通用配置选项

设置 输入类型 描述
add_field hash 可选
codec codec 可选
enable_metric boolean 可选
id string 可选
tags array 可选
type string 可选

add_field
哈希是一组键值对的集合,以 key => value格式置顶,多个键值条目由空格分隔

  • 值类型是哈希值
  • 默认为{ }
  • 作用:向配置中添加字段

举个栗子:

add_field => { 
    "Key1" => "value1"
    "Key2" => "value2"
    ...
}

或者也可以写成这样
add_field => { "Key1" => "value1" "Key2" => "value2" }

codec
用于输入数据的编解码器。输入编解码器是一种在数据进入输入之前解码数据的便捷方法,无需在Logstash管道中使用单独的过滤器。

  • 值类型是编解码器
  • 默认是为"line"
  • 作用:编解码器可用于输入和输出,输入编解码器提供了一种方法的方法,可以在数据输入之前对其进行解码,输出编解码器可在数据离开输出之前对其进行编码,也就是对数据进行了一次拆封在封装,封装格式为codec所指定的格式,如果在logstash中设置了编解码器,那么就不需要在logstash管道中再单独使用过滤功能了
    举个栗子:
    我们在输出管道配置文件中设置编解码器的格式为json,默认为line,当数据输出的时候,就是已经经过了编解码器拆封再封装的json格式数据。
codec => "json"

enable_metric
默认情况下,我们会记录我们能记录的所有度量,但是你可以禁用特定插件的度量集合

  • 值类型是布尔,布尔型的值只有两个结果,truefalse
  • 默认值为true
    举个例子:
enable_metric => false

id

  • 值类型为字符串
  • 此类型没有默认值
    向插件配置添加唯一ID,如果没有指定ID,Logstash将生产一个ID,强烈建议在配置中设置此ID,当你有两个或者多个相同类型插件时,这尤其有用,例如,如果你有两个stdin输入,在本例中添加一个命名ID将有助于在使用监视API时监视Logstash
    大概意思为:在我们stdin输入中添加一个标识符ID,以防多个stdin混淆
    举个栗子:
    我们ID即是为name字段,添加了一个标示而已
 name =>“Hello world”

tags

  • 值类型为数组
  • 没有默认值
  • 作用:在配置中添加标记,有助于以后的处理
    举个栗子:
users => [ {id => 1, name => bob}, {id => 2, name => jane} ]

type
此类型用的较多,主要是为了根据类型值来进行判断输出指向或者过滤内容

  • 值类型为字符串
  • 没有默认值
  • 作用:type指定一个字符串,同样可用作标示,一般会根据判断type值来进行输出或过滤

Redis输入插件示例配置

下面配置请结合上面讲的选项含义结合参考

input {
  redis {
     batch_count => "300"
     data_type => "list"
     db => "3"
     key => "list"
     host => "10.150.30.246"
     port => "6003"
     timeout => "30"
 }
}

output {
  stdout {
     codec => rubydebug
 }
}

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索