原因是这样,一大早就遇到了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
昨天在群里看到你的问题了,原来无解