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配合工作 设置错误会有问题滴

logstash 1.5.3 配置使用redis做续传的更多相关文章

  1. Django中配置用Redis做缓存和session

    django-redis文档: http://django-redis-chs.readthedocs.io/zh_CN/latest/# 一.在Django中配置 # Django的缓存配置 CAC ...

  2. 基于keepalived对redis做高可用配置---转载

    关于keepalived的详细介绍,请移步本人相关博客:http://wangfeng7399.blog.51cto.com/3518031/1405785 功能 ip地址 安装软件 主redis 1 ...

  3. 使用Redis做MyBatis的二级缓存

    使用Redis做MyBatis的二级缓存 通常为了减轻数据库的压力,我们会引入缓存.在Dao查询数据库之前,先去缓存中找是否有要找的数据,如果有则用缓存中的数据即可,就不用查询数据库了. 如果没有才去 ...

  4. redis做RDB时请求超时case

        近期在排查redis做rdb时会有部分请求超时的case.初步推断是我们redisserver上开启了THP(Transparent Huge Pages).      1) Linux本身的 ...

  5. Redis详细讲解(Redis原理,Redis安装,Redis配置,Redis使用,Redis命令)

    一.Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发 ...

  6. spring+redis的集成,redis做缓存

    1.前言 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.我们都知道,在日常的应用中,数据库瓶颈是最容易出现的 ...

  7. SpringBoot之Mybatis操作中使用Redis做缓存

    上一博客学习了SpringBoot集成Redis,今天这篇博客学习下Mybatis操作中使用Redis做缓存.这里其实主要学习几个注解:@CachePut.@Cacheable.@CacheEvict ...

  8. spring-boot集成mybatis,用redis做缓存

    网上有很多例子了,执行源码起码有3个,都是各种各样的小问题. 现在做了个小demo,实现spring-boot 用redis做缓存的实例,简单记录下思路,分享下源码. 缓存的实现,分担了数据库的压力, ...

  9. 使用Redis做分布式

    一 为什么使用 Redis 在项目中使用 Redis,主要考虑两个角度:性能和并发.如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis. 性能: 如 ...

随机推荐

  1. HVTableView 分享组

    HVTableView HVTableView是UITableView(带有展开/折叠功能)的子集,可以方便地用在很多app中.开发者可以使用展开/折叠列表而不用为每个单元格创建一个详细的viewCo ...

  2. 【BZOJ】2719 银河之星

    可以将棋子分为9种类型.且可以通过合并使得两个不同种类棋子转换为另一种棋子(不过要注意棋盘大小,有的时候硬要合并会到棋盘外面,可以先把棋盘全部转换,然后枚举每一个棋子的转换).然后把状态压成一个十位的 ...

  3. PHP中file_put_contents追加时换行

    很多时候记录日志需要换行.不建议使用\r\n,因为:在windows中\r\n是换行在Mac中\r是换行在Liunx中\n是换行 但是PHP提供了一个常量来匹配不同的操作系统,即: file_put_ ...

  4. Windows 下java环境变量的配置(Windows7 ,8,8.1,10)

    Windows 下java环境变量的配置 在“系统”面板的左上角选择“高级系统设置”,在弹出的系统属性中选择”高级“项,然后点击右下角的“环境变量(N)...”,就此进入JAVA环境变量的配置. 如果 ...

  5. 手把手教你用python抓网页数据

    http://www.1point3acres.com/bbs/thread-83337-1-1.html

  6. linux下各种软件的安装过程

    //////知识储备//////////////////////////////////////////////////////////////////// /var 下存放着服务和经常改变的文件 / ...

  7. Win7下通过eclipse远程连接CDH集群来执行相应的程序以及错误说明

    最近尝试这用用eclipse连接CDH的集群,由于之前尝试过很多次都没连上,有一次发现Cloudera Manager是将连接的端口修改了,所以才导致连接不上CDH的集群,之前Apache hadoo ...

  8. 北大poj-1062

    昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 43523   Accepted: 12760 Descripti ...

  9. Python学习路程day13

    JavaScript JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. ...

  10. JavaScript闭包学习笔记

    此文都是大牛们关于闭包的观点,在此只是总结. 闭包应用的两种情况即可——函数作为返回值,函数作为参数传递. 1 深入理解javascript原型和闭包 判断一个变量是不是对象非常简单.值类型的类型判断 ...