Logstash2.3.4趟坑之集成Redis哨兵模式
最新在使用Lostash2.3.4收集数据的时候,在读取redis数据的时候,报了如下的一个异常:
异常如下
Pipeline aborted due to error {:exception=>#<URI::InvalidURIError: the scheme redis does not accept registry part: redis_master_10214 (or bad hostname?)>, :backtrace=>["/home/search/logstash-2.3.4/vendor/jruby/lib/ruby/1.9/uri/generic.rb:214:in `initialize'"
Logstash自带的ruby是1.9的版本,自带集成的redis插件也是最新的redis-rb3.3.1
Logstash里面默认自带了redis插件,也就是redis-rb3.3.1
如果没带可以进入logstash目录:
logstash-2.3.4\vendor\jruby\bin进行安装
cd logstash-2.3.4\vendor\jruby\bin
gem install redis
如果redis采用的是哨兵模式的集群,那么redis-rb插件也是支持的,具体的看官网github文档:
https://github.com/redis/redis-rb
logstash的代码如下:
input{
stdin{}
}
filter{
ruby{
init => "
require 'redis'
class Rconn
@@SENTINELS = [{:host => '192.168.10.214', :port => 26381},
{:host => '192.168.10.214', :port => 26382},
{:host => '192.168.10.214', :port => 26383}]
def self.con
@@con
end
def self.SENTINELS
@@SENTINELS
end
@@con = Redis.new(:url => 'redis://redismaster10214', :sentinels => Rconn.SENTINELS, :role => :master)
end
"
code => "
event['redis_data']=Rconn.con.get(event['message'])
"
}
}
output{
stdout { codec => rubydebug }
}
注意下面这句话
:url => 'redis://redismaster10214'
redis的哨兵masterName在ruby1.9中必须不能带下划线,否则会报下面的异常:
错误的用法
:url => 'redis://redis_master_10214'
<URI::InvalidURIError: the scheme redis does not accept registry part: redis_master_10214 (or bad hostname?)>,
ruby里面的标准的url校验,发现url里面如果有带下划线的,会认为是不合法的url,具体可参考下面两个问题连接:
https://github.com/docker/compose/issues/472
http://stackoverflow.com/questions/2180465/can-domain-name-subdomains-have-an-underscore-in-it
目前在ruby1.9的版本中发现此bug,使用最新的版本ruby2.3.0则没有此问题,说明在高版本的ruby中 已经修复了此问题,但是logstash最新的版本绑定的jruby版本是1.9的ruby,所以还存在此问题,只能在使用时避免,真是血泪教训,花费了大半天时间趟的坑。
有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。 技术债不能欠,健康债更不能欠, 求道之路,与君同行。
Logstash2.3.4趟坑之集成Redis哨兵模式的更多相关文章
- Springboot2.x集成Redis哨兵模式
Springboot2.x集成Redis哨兵模式 说明 Redis哨兵模式是Redis高可用方案的一种实现方式,通过哨兵来自动实现故障转移,从而保证高可用. 准备条件 pom.xml中引入相关jar ...
- Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存
本片文章续<Spring Boot 入门(九):集成Quartz定时任务>.本文主要基于redis实现了mybatis二级缓存.较redis缓存,mybaits自带缓存存在缺点(自行谷歌) ...
- Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步
Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步,一定要绑定内网IP,而对于跨机房的问题,可以使用iptables进行nat转发来解决.
- Redis哨兵模式大key优化
目前,Redis哨兵模式,内存资源有限,有很多key大于500M,性能待优化.需要迁移至Redis-cluster集群中. 涉及到的key如下: 0,hash,duser_record, ...
- [Redis] Redis哨兵模式部署 - zz胖的博客
1. 部署Redis集群 redis的安装及配置参考[redis部署] 本文以创建一主二从的集群为例. 1.1 部署与配置 先创建sentinel目录,在该目录下创建8000,8001,8002三个以 ...
- Redis 哨兵模式(Sentinel)
上一篇我们介绍了 redis 主从节点之间的数据同步复制技术,通过一次全量复制和不间断的命令传播,可以达到主从节点数据同步备份的效果,一旦主节点宕机,我们可以选择一个工作正常的 slave 成为新的主 ...
- 搭建redis哨兵模式
搭建redis哨兵模式,一主两从三哨兵 1.从官网下载redis安装包:此处是redis-5.0.7.tar.gz 2.上传到目录 /utxt/soft 3.解压 4.cd /utxt/soft/ ...
- Redis哨兵模式的配置
绪论 现有三台设备,192.168.137.11.192.168.137.12和192.168.137.13,要求在三台设备上实现redis哨兵模式,其中192.168.137.11为master,其 ...
- Spring Boot 如何快速集成 Redis 哨兵?
上一篇:Spring Boot 如何快速集成 Redis? 前面的分享栈长介绍了如何使用 Spring Boot 快速集成 Redis,上一篇是单机版,也有粉丝留言说有没有 Redis Sentine ...
随机推荐
- 1089 Insert or Merge (25 分)
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- 剑指offer——60二叉树的深度
题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 题解: 简单的深度遍历即可. class Solution ...
- 第四记 Java异常
Java异常结构图 Java所有异常都是从Throwable继承而来,Throwable有两个子类,Error与Exception. Error是错误,对于所有的编译时期的错误以及系统错误都是通过Er ...
- B-彻底删除卸载Ubuntu中的MySQL并重新安装(已验证)
Ubuntu-16.04,MySQL-5.7,寻找多篇有关如何彻底卸载删除MySQL的博文, 最终验证下面转发博文真实有效,推荐! https://www.jianshu.com/p/c76b31df ...
- 使用dd生成文件
使用dd命令快速生成大文件或者小文件的方法 转载自:http://blog.csdn.net/cywosp/article/details/9674757 在程序的测试中有些场景需要大 ...
- jQuery方法-queue()
<!DOCTYPE html> <html> <head lang="en"> <meta charset="utf-8&quo ...
- CentOS 7 編譯qBittorrent Web UI安裝指南
前言 以下是安装qBittorrent教学. 适用于CentOS7或更新版本 适用于qBittorrent4.1.5或更新版本 安裝須知 qBittorrent基于libtorrent,所以必须先安装 ...
- [转]sourceforge文件下载过慢
sourceforge文件下载过慢,可以用下面网址镜像下载, 通过 下载Sourceforge等国内无法下载站点文件的另一种方法博文,好像主站点是 https://www.mirrorservice. ...
- Redis探索之路(六):Redis的常用命令
一:键值相关命令 1.keys Pattern模糊查询 keys my* 2.exists某个key是否存在 exists key1 3.del 删除一个key del key1 4.expire设置 ...
- Batch - FOR %%a %%b
总结 %%a refers to the name of the variable your for loop will write to. Quoted from for /?: FOR %vari ...