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……

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

[[email protected]]~# 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配合工作 设置错误会有问题滴

时间: 2024-12-30 00:56:30

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

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

关于keepalived的详细介绍,请移步本人相关博客:http://wangfeng7399.blog.51cto.com/3518031/1405785 功能 ip地址 安装软件 主redis 10.13.6.13 redis,keepalived 从redis 10.13.6.16 redis,keepalived VIP 10.13.6.17   一.redis主从搭建 1.redis安装 本文通过yum源的安装方式来安装(需要配置epel源),也可以通过源码编译的方式来安装 1 2 [

Spring整合Redis做数据缓存(Windows环境)

当我们一个项目的数据量很大的时候,就需要做一些缓存机制来减轻数据库的压力,提升应用程序的性能,对于java项目来说,最常用的缓存组件有Redis.Ehcache和Memcached. Ehcache是用java开发的缓存组件,和java结合良好,直接在jvm虚拟机中运行,不需要额外安装什么东西,效率也很高:但是由于和java结合的太紧密了,导致缓存共享麻烦,分布式集群应用不方便,所以比较适合单个部署的应用. Redis需要额外单独安装,是通过socket访问到缓存服务,效率比Ehcache低,但

redis做RDB时请求超时case

最近在排查redis做rdb时会有部分请求超时的case.初步判断是我们redis服务器上开启了THP(Transparent Huge Pages). 1) Linux本身的页大小是固定的4KB,在2.6.38内核新增了THP,透明地支持huge page(2MB)的使用,并且默认开启.开启THP的优势在于: - 减少page fault.一次page fault可以加载更大的内存块. - 更小的页表.相同的内存大小,需要更少的页. - 由于页表更小,虚拟地址到物理地址的翻译也更快. 劣势在于

使用Redis做MyBatis的二级缓存

1. 介绍 使用mybatis时可以使用二级缓存提高查询速度,进而改善用户体验. 使用redis做mybatis的二级缓存可是内存可控<如将单独的服务器部署出来用于二级缓存>,管理方便. 2. 使用思路 2.1 配置redis.xml 设置redis服务连接各参数 2.1 在配置文件中使用 <setting> 标签,设置开启二级缓存: 2.2 在mapper.xml 中使用<cache type="com.demo.RedisCacheClass" /&g

springboot2.0+redis实现消息队列+redis做缓存+mysql

本博客仅供参考,本人实现没有问题. 1.环境 先安装redis.mysql 2.springboot2.0的项目搭建(请自行完成),本人是maven项目,因此只需配置,获取相应的jar包,配置贴出. <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifact

.net core 3.0 Signalr - 04 使用Redis做底板来支持横向扩展

在实际的系统中,可能需要多台机器部署;然而,Signalr的连接信息是跟站点走的,举个例子 推送系统部署了A.B两个服务器,张三访问A服务器,李四访问B服务器,当张三通过A服务器向李四推送的时候,A服务器上是找不到李四的连接信息的,自然也就推送不过了,这个时候就需要有一个统一协调的玩意,signalr支持多种,Azure.Redis等,本节以Redis作为底板,介绍如何在Signalr中使用Redis作为底板来支持横向扩展. ## 引入Redis - 先引入NuGet包 Microsoft.As

ElasticSearch——Logstash输出到Elasticsearch配置

位置 在Logstash的.conf配置文件中的output中配置ElasticSearch 示例: output { elasticsearch{ action => "index" index => "%{[fields][product_type]}-transaction-%{+YYYY-MM}" hosts => ["10.0.xx.xx:9200", "10.0.xx.xx:9200", &quo

Redis做为单机缓存使用建议

Redis做为单机缓存使用建议 前言 由于原来项目使用的缓存中间件无法在国产麒麟操作系统里面使用,准备在项目中引入redis做为单机缓存. 配置优化建议 配置redis服务以守护进程启动 Redis默认不是以守护进程的方式运行,可以通过将配置项daemonize修改为yes,这样启动redis-server后会自动在后台运行. 安全配置 将bind配置为127.0.0.1可以避免redis受外部攻击.另外使用requirepass配置项,可以设置访问redis服务器数据时先要输入密码. 一个小遗

双apache + php + nfs + mariadb 配置 以discuz做测试

实验目标: 1,两台前端apache和php都挂载nfs文件系统中的php程序. 2,mysql 为单独一台服务器,为php页面程序提供数据库存储 3,静态页面文件都放在nfs服务器上 4,需要dns轮循为两台前端服务器分配访问请求 缺点: 压力都在文件存储服务器上 优点:不用考虑两台web服务器静态页面一致性的问题. 操作大体步骤: 1,两台web服务器:挂载nfs.编译安装apache,添加支持fcgi协议的模块,把php请求都代理到php服务器,站点根目录为挂载的文件.根据实际情况调整进程