在docker中用logstash时遇到的坑爹问题

原因是这样,一大早就遇到了elasticsearch集群性能的问题,当时没注意,以为是别的同事在跑计算任务引起的。 但是发现kibana里面有大量的错误,不能说错误日志,是logstash本身的一些错误信息..  很是奇怪,以前真的是没有遇到这类的问题。。。    针对这问题,我从各方面检查可能会出现问题的地方。  话说从上个月起logstash的问题就不断, 首先是logstash 跟elasticsearch的链接总是太多的链接close,导致任务堵塞,配置里面我就开了一个worker。 问了饶晨琳, 据他的意思是说,1.4.2这个版本应该是有些问题,让我更换到1.5.1 ,这新版我是测试了,但是返回大量关于elasticsearch链接数太多的ERROR ,  不知道是啥问题?

这是我的logstash环境,我是用docker启动的。 

docker版本  1.6

redis版本     3.0

logstash       1.4.2

容器版本      14.04

关于logstash的奇怪问题,原文地址  http://xiaorui.cc/?p=1831


 

才12个小时,就出现了这么多的垃圾信息,这nima也太恶心了。 

@timestamp      August 6th 2015, 17:15:15.572
t@version       1
t_id        AU8CSwuJVE0qPYRSd5FT
t_index     logstash-2015.08
t_source        {"message":"key_count","@version":"1","@timestamp":"2015-08-06T09:15:15.572Z","type":"redis-input"}
t_type      redis-input
tmessage        key_count
ttype       redis-input

首先怀疑是redis的队列里面有这样的信息,但是我写了个小脚本检查数据,发现数据都是OK的,没有那种奇奇怪怪的问题。 

那么再来判断下logstash conf是否有问题,这是我的logstash server服务端的配置

input {
        redis {
                host => "123123123123"
                port => 6379
                type => "redis-input"
                data_type => "list"
                key => "key_count"
        }
}


output {
        elasticsearch {
                host => "123123"
                protocol => "http"
                port => 9000
                index => "logstash-%{+YYYY.MM}"
                workers => 5
        }

#         stdout { codec => rubydebug }     \# stdout  result    is OK

}

logstash server 端的日志输出也是正常的,里面的内容是根 redis队列是一致的。 

抓包分析后,发现在logstash发往elasticsearch的时候,含有key_count 。    话说以前这都是北京机房的配置,现在到了上海机房后,发现的这个问题。 

root@wx-social-server02:~/logstash-1.4.2# tcpdump -i eth1 -vv -X port 9000|grep key_count
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
0x0130: 6167 6522 3a22 6b65 795f 636f 756e 7422 age":"key_count"
0x01e0: 223a 226b 6579 5f63 6f75 6e74 222c 2240 ":"key_count","@
0x0290: 6b65 795f 636f 756e 7422 2c22 4076 6572 key_count","@ver
0x0490: 7361 6765 223a 226b 6579 5f63 6f75 6e74 sage":"key_count
0x0540: 6522 3a22 6b65 795f 636f 756e 7422 2c22 e":"key_count","
0x05f0: 226b 6579 5f63 6f75 6e74 222c 2240 7665 "key_count","@ve
0x08a0: 6765 223a 226b 6579 5f63 6f75 6e74 222c ge":"key_count",
0x0950: 3a22 6b65 795f 636f 756e 7422 2c22 4076 :"key_count","@v
0x0c00: 6167 6522 3a22 6b65 795f 636f 756e 7422 age":"key_count"
0x0cb0: 223a 226b 6579 5f63 6f75 6e74 222c 2240 ":"key_count","@


最后的解决办法?   重新自己打成docker镜像,解决了这logstash让人闹心的问题。  说实话具体的原因我也不太清楚,以前的docker镜像是同事build的,我看了下dockerfile里面的jdk是一样,logstash配置和版本也都一样。  对了,我特么还docker exec 进入出问题的那容器,把logstash server 重新安装和配置了下,但问题依旧…. 


我在github上已经提交了这个,看看做着是否能想到解决的办法. 

https://github.com/elastic/logstash/issues/3704




大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码,感谢!
另外再次标注博客原地址  xiaorui.cc

1 Response

  1. 米运维 2015年8月7日 / 上午9:41

    昨天在群里看到你的问题了,原来无解

发表评论

邮箱地址不会被公开。 必填项已用*标注