Skip to content

Redis Reader

Sun Jianbo edited this page Jan 16, 2018 · 3 revisions

Redis Reader 是logkit提供的从Redis读取日志的配置方式

典型配置如下

    "reader":{
        "mode":"redis",
    	"redis_datatype":"channel",
	"redis_key":"xyz",
        "redis_db":"0",
        "redis_address":"127.0.0.1:6379",
        "redis_password":"",
        "redis_timeout":"5s"
    },
  1. Redis Reader 输出的是redis中存储的字符串,具体字符串是什么格式,可以在parser中用对应方式解析。
  2. redis_db 选填,Redis的数据库名,默认为"0"
  3. redis_address: 选填,Redis的地址(IP+端口),默认为"127.0.0.1:6379"
  4. redis_password: 选填,默认为空, Redis的密码。
  5. redis_key: 必填项, Redis监听的键值,在不同模式(redis_datatype)下表示不同含义。
  6. redis_datatype 必填项,包含list,channel,pattern_channel三种模式:
    • list模式固定通过Redis的BLPOP获取数据,即用户的数据是通过LPUSH或者RPUSH的方式存进list中(持续写入的话,推荐使用RPUSH的方式,以免Redis高并发写入下出现异常情况),然后redis从最左边元素依次读取。在这个模式下redis_key模式的就是指定list的名称。
    • channel模式通过Redis的Pub/Sub模式读取,启动Redis后,订阅(Sub) redis_key指定的键(即Redis中的channel),当该channel有信息被发布(Pub)时,即获取该数据。
    • pattern_channel,该模式与channel模式几乎相同,区别是,在该模式下redis_key可以指定为一个模式串,如"abc*",则所有"abc"为前缀的channel都会被监听。
  7. redis_timeout 选填,默认为"5s",在模式为list时每次等待键值数据的超时时间
  8. tag_file可选项,可以读取一个json格式的文件,并把json的数据作为标签附着在所有数据之上。典型的应用场景为一些机器或者容器相关的元数据存以json格式放在文件中,logkit发送的数据都带上这些元数据,以便查询时可以快速定位机器元数据,并根据元数据做报警等后续事宜。
Clone this wiki locally