• 5.1.1 读取Redis 数据


    Redis 服务器是Logstash 推荐的Broker选择,Broker 角色就意味会同时存在输入和输出两个插件。
    
    5.1.1 读取Redis 数据
    
    LogStash::Input::Redis 支持三种data_type(实际上是redis_type),
    
    不同的数据类型会导致实际采用不同的Redis命令操作:
    
    
    
    
    1. 配置示例:
    
    zjtest7-frontend:/usr/local/logstash-2.3.4/config/redis# cat redis01.conf 
    input {
       redis {
        data_type =>"pattern_channel"
        key=>"logstash-redis01"
        host => "192.168.32.67"
        password => "1234567"
        port =>"6379"
            }
    }
    
    output {
          	stdout {
    	codec => rubydebug
    	}
             }
    
    
    
    redis 输入:
    127.0.0.1:6379> PUBLISH logstash-redis01 "hello 20160912 world"
    (integer) 1
    127.0.0.1:6379> 
    
    
    [elk@zjtest7-frontend redis]$ ../../bin/logstash -f redis01.conf 
    Settings: Default pipeline workers: 1
    Pipeline main started
    {
           "message" => "hello 20160912 world",
              "tags" => [
            [0] "_jsonparsefailure"
        ],
          "@version" => "1",
        "@timestamp" => "2016-09-12T01:31:47.292Z"
    }
    
    
    
    
    
    5.1.2 采用list类型扩展Logstash
    
    
    
    通过频道发布的一条消息,会被所有订阅了该频道的Logstash 进程同时接收到,然后输出重复内容:
    
    1.
    [elk@zjtest7-frontend redis]$ ../../bin/logstash -f redis01.conf 
    Settings: Default pipeline workers: 1
    Pipeline main started
    {
           "message" => "hello 20160912 world",
              "tags" => [
            [0] "_jsonparsefailure"
        ],
          "@version" => "1",
        "@timestamp" => "2016-09-12T01:31:47.292Z"
    }
    
    
    {
           "message" => "hello 20160912 aaaa bbbb  world",
              "tags" => [
            [0] "_jsonparsefailure"
        ],
          "@version" => "1",
        "@timestamp" => "2016-09-12T01:40:12.672Z"
    }
    
    2.
    [elk@zjtest7-frontend redis]$ ../../bin/logstash -f redis01.conf 
    Settings: Default pipeline workers: 1
    Pipeline main started
    
    
    
    
    {
           "message" => "hello 20160912 aaaa bbbb  world",
              "tags" => [
            [0] "_jsonparsefailure"
        ],
          "@version" => "1",
        "@timestamp" => "2016-09-12T01:40:13.466Z"
    }
    
    
    这种情况下,就需要使用list类型,在这种类型下,数据输入到Redis 服务器上暂存,Logstash 则连上Redis 服务器取走数据
    

  • 相关阅读:
    VS2019调试 asp.net core 2.2 出现《ANCM In-Process Handler Load Failure 发布后启动错误处理》处理
    网页上显示数学公式的三种方案
    FileStream实现多线程断点续传(已封装)
    绝对定位不脱离文档流的方法
    百度地图InfoWindow弹窗圆角
    并发:线程池异步执行与创建单独的线程执行
    互斥锁和自旋锁的区别
    事务的特性和隔离级别
    线程不安全与线程安全示例
    多线程过去与现在
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350276.html
Copyright © 2020-2023  润新知