ELKB日志流:读取Redis队列

0、引言

Logstash.input可以支持Redis的三种data_type,分别是list,channel,pattern_channel;
数据流转 : Redis >> Logstash >> Elasticsearch
本次主要讲解Logstash从Redis-list读取数据,存入ES。
channel类型实践后会更新

官方文档

1、数据类型

Logstash对Redis不同的数据类型会导致实际采用不同的 Redis 命令操作:

数据类型对应操作类型理解
listBLPOP队列
channelSUBSCRIBE发布订阅的某个特定的频道
pattern_channelPSUBSCRIBE发布订阅某组频道

2、配置参数

添加配置文件,重启Logstash并引入。

vim test-redis.conf #配置名字自定义就可以,以.conf 结尾
input {
  redis {
	host => "xxxx"			#redis地址
    port => "6379"			#redis端口号
    password => ''			#如果有安全认证,此项为密码
    db => "0"				#redis数据库 默认0
    data_type => "list"		#redis插件工作方式
	key => "test1"			#redis的键值
    }
}

output {
  elasticsearch {
    hosts => ["xxxx:9200"]
    index => "redis-test1-%{+YYYY.MM.dd}"
  }
}

3、其他的参数

  • db
    Redis里面有数据库的概念,一般是16个,默认登录后是0,可以通过命令选择。如果应用系统选择使用了不同的数据库,那么可以通过配置这个参数从指定的数据库中读取信息。

  • key
    Redis中的数据都是通过键值来索引的,不管是字符串还是列表,所以这个key相当于数据库中的表。
    如果是list或者channel模式,key都是指定的键值;而如果是pattern_channel,那么key可以通过glob通配的方式来指定。

  • password
    有的Redis为了安全,是需要进行验证的。只有设置了password,才能正确的读取信息。相反,如果redis没有设置密码,而logstash中配置了密码,也会报错!

ERR Client sent AUTH, but no password is set
解决方案 : 就是将配置文件中的password注释掉。

4、测试

因为对于list类型,Logstash的操作是BLPOP,所以我们向队列插入数据时使用:
RPUSH test1 “hello world”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值