zoukankan      html  css  js  c++  java
  • logstash 1.5.3 配置使用redis做续传

    logstash是ELK中的一员大将,

    redis插件也是《The Logstash Book》中介绍的一个很好用的玩意儿。

    之前,用比较小的集群部署的时候,没有介入redis中间件,所以也不是很清楚里面的配置,

    后来用起来才发现配置有点坑。

    第一次配置的时候,死活就是连接不起来,总是报错,说connection refused.

    但在logstash机器redis-cli连接却不会有任何问题。

    后来才发现,估计是bug,没有使用默认端口这个事情,竟然没法连通。。

    ------------------

    不再废话,先给出我的可以工作的配置

    ------------------

    输出日志到redis: log-to-redis.conf

    input {
      file {
        path => "/opt/tengine_1.5.2/logs/access.log"
      }
    }
    
    
    output {
      redis {
        host => ["192.168.1.12"]
        port => 6379
        batch => true
        batch_events => 5
        data_type => "list"
        key => "est"
        codec => "json"
      }
      stdout {
        codec => rubydebug
      }
    }

    读取redis,并输出到elasticsearch或者其它任何地方: log-to-es.conf

    input {
      redis {
        host => ["192.168.1.12"]
        port => 6379
        data_type => "list"
        key => "est"
        codec => "json"
      }
    }
    
    output {
      stdout {
        codec => rubydebug
      }
    
    #  #open this comment, you know what happens
    #  elasticsearch {
    #    cluster => "esearch"
    #  }
    }

    几个坑:

    -  redis input plugin和output plugin的host配置类型不同

       output是array,input是string 也就是说,logstash output的时候,可以指定多个host,一个连不上,可以用另一个 防止单点故障

       唉,怪我自己看配置不仔细,默认input也是array类型,配置了 host => ['1.2.3.3:6380'],这下捅了马蜂窝,plugin干脆直接shutdown,我还以为是bug……

       报错也放这里吧,万一谁搜索到了,也免得纠结。

       

    [root@cent-7-62]~# logstash -f log-to-es.conf 
    Logstash startup completed
    A plugin had an unrecoverable error. Will restart this plugin.
      Plugin: <LogStash::Inputs::Redis host=>"192.168.1.1:6380", port=>6379, data_type=>"list", key=>"est", codec=><LogStash::Codecs::JSON charset=>"UTF-8">, debug=>false, threads=>1, name=>"default", db=>0, timeout=>5, batch_count=>1>
      Error: initialize: name or service not known {:level=>:error}
    Logstash shutdown completed

    -  redis input plugin的batch设置和output plugin设置不同

       input:batch_count

       output:batch+batch_events+data_type配合工作 设置错误会有问题滴

  • 相关阅读:
    学习shell脚本
    Python 3.3.2 round函数并非"四舍五入"
    Python 通过继承实现标准对象的子类
    Python 继承标准类时发生了什么
    Python 表示无穷大的数
    用Python最原始的函数模拟eval函数的浮点数运算功能(2)
    Python 函数参数*expression 之后为什么只能跟关键字参数
    RE模块疑问
    用Python最原始的函数模拟eval函数的浮点数运算功能
    Python 好用得让人发指的函数参数语法糖
  • 原文地址:https://www.cnblogs.com/morya/p/4678753.html
Copyright © 2011-2022 走看看