Logstash 获取通道类型 Redis 数据
Redis 服务器是 logstash 官方推荐的 broker 选择。Broker 角色也就意味着会同时存在输入和输出俩个插件。这里我们先学习输入插件。
LogStash::Inputs::Redis
支持三种 data_type(实际上是redis_type),不同的数据类型会导致实际采用不同的 Redis 命令操作:
- list => BLPOP
- channel => SUBSCRIBE
- pattern_channel => PSUBSCRIBE
说明:
容器搭建的ELK,使用队列
步骤:
1、进入容器通道,复制一份logstash.conf 然后修改名称
logstash@b4779271fd0f:~$ pwd /usr/share/logstash logstash@b4779271fd0f:~$ cd pipeline/ logstash@b4779271fd0f:~/pipeline$ ls logstash.conf redis_to_es.conf
2、编写redis通道配置文件
# @Author: Wanghaipeng
# @Date: 2023-03-27 17:03:16
input { redis { data_type => "list" #["list", "channel", "pattern_channel"] host => "XXX" #153 服务器的内网地址 db => "1" port => "6379" key => "redis153-to-es-log" password => "XXXX" timeout => "30" } } output { elasticsearch { hosts => ["http://172.20.0.3:9200"] user => "" #填写ES账号信息 password => "" index => "redis-153-systemlog-%{+YYYY.MM.dd}" # 把日期去掉 这是ES的索引 会造成每天一个索引源 codec => "json" } stdout { codec => rubydebug } }
3、写入数据
[root@host-10-10-1-18 ~]# redis-cli 127.0.0.1:6379> auth XXXXXX OK 127.0.0.1:6379> select 1 #选择数据库1 OK 127.0.0.1:6379[1]> lpush redis153-to-es-log '{"name":"wanghaipeng008","age":"33","timestamp":"1695895769"}' (integer) 1 127.0.0.1:6379[1]> llen redis153-to-es-log # 已取出 (integer) 0
4、创建索引
5、ES查看数据