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配合工作 设置错误会有问题滴
logstash 1.5.3 配置使用redis做续传的更多相关文章
- Django中配置用Redis做缓存和session
django-redis文档: http://django-redis-chs.readthedocs.io/zh_CN/latest/# 一.在Django中配置 # Django的缓存配置 CAC ...
- 基于keepalived对redis做高可用配置---转载
关于keepalived的详细介绍,请移步本人相关博客:http://wangfeng7399.blog.51cto.com/3518031/1405785 功能 ip地址 安装软件 主redis 1 ...
- 使用Redis做MyBatis的二级缓存
使用Redis做MyBatis的二级缓存 通常为了减轻数据库的压力,我们会引入缓存.在Dao查询数据库之前,先去缓存中找是否有要找的数据,如果有则用缓存中的数据即可,就不用查询数据库了. 如果没有才去 ...
- redis做RDB时请求超时case
近期在排查redis做rdb时会有部分请求超时的case.初步推断是我们redisserver上开启了THP(Transparent Huge Pages). 1) Linux本身的 ...
- Redis详细讲解(Redis原理,Redis安装,Redis配置,Redis使用,Redis命令)
一.Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发 ...
- spring+redis的集成,redis做缓存
1.前言 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.我们都知道,在日常的应用中,数据库瓶颈是最容易出现的 ...
- SpringBoot之Mybatis操作中使用Redis做缓存
上一博客学习了SpringBoot集成Redis,今天这篇博客学习下Mybatis操作中使用Redis做缓存.这里其实主要学习几个注解:@CachePut.@Cacheable.@CacheEvict ...
- spring-boot集成mybatis,用redis做缓存
网上有很多例子了,执行源码起码有3个,都是各种各样的小问题. 现在做了个小demo,实现spring-boot 用redis做缓存的实例,简单记录下思路,分享下源码. 缓存的实现,分担了数据库的压力, ...
- 使用Redis做分布式
一 为什么使用 Redis 在项目中使用 Redis,主要考虑两个角度:性能和并发.如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis. 性能: 如 ...
随机推荐
- WCF初探-21:WCF终结点(endpoint)
WCF终结点概述 在之前文章的示例中,我们都是通过配置服务的终结点(endpoint)发布的服务,供客户端调用,这是因为WCF服务的所有通信都是通过该服务的终结点进行的.每个终结点(endpoint) ...
- iOS开发UI篇—模仿ipad版QQ空间登录界面
iOS开发UI篇—模仿ipad版QQ空间登录界面 一.实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构,分为home和login两个部分 3.登陆界面的 ...
- HDU 3308 LCIS
题意: U A B: 把第A个数变成BQ A B: 输出[A,B]最长连续上升子序列(注意是连续 相当于子串) 思路:单点更新 ,区间合并几下左边开头最小 和右边结束最大的两个数即可. #incl ...
- ionic本质
ionic本质一开发工具,ionic项目目录里在大堆东西,一堆插件(plugins),还有一堆npm包(node_modules),其实都是骗人的-( ̄▽ ̄-)~ 什么nodejs,npm只是为了解决 ...
- sqlite以及python的应用
有点乱,自己平时,遇到了就记下来,所以没整理. 数据库sqlite,以及Qt对数据库的操作 sql学习网址: sqlite官网:http://www.sqlite.org http://www.w3s ...
- 2016年发布APASVO-p波震相自动拾取分析
Why automatic attractive? large amount of seismic data ; if manually,it depends om experience of ana ...
- RSA IOS和Java
整了三天 终于可以相互加密解密了,今天我给大家讲讲我遇到的大坑. 这篇文章只是做一个整理,帮大家理清一下步骤的而已 在ios端做证书 来实现我们和java的交流 需要4个文件. 一.首先,打开Term ...
- (spring-第17回【AOP基础篇】) 创建增强类
一. 增强类包含的信息: a) 横切逻辑(插入的具体代码) b) 部分连接点信息(在方法的哪个位置插入代码,比如方法前.方法后等). 二. 增强的类型 每一种增强有一个需要实现的增强类 ...
- Android Sudoku第一版
经过几天的下班空闲时间写了一个android上的数独游戏,今天也申请了几个发布平台的账号,发布出去了,google play要收25刀,而且这个在大陆基本访问不上,所以暂时就没买.在移动平台写应用程序 ...
- Application.Exit()结束程序,但线程还在的解决方法。
出现此情况大多原因是使用了多线程编程,或者你所调用的dll使用了多线程.我们知道,一般情况下的线程执行完指定的任务之后是会关闭了的,但是如果对于一些循环类线程,或者忘记关掉的线程时,这个时候就需要我们 ...