首页 > 代码库 > 使用logstash收集日志的可靠性验证
使用logstash收集日志的可靠性验证
实时计算里,需要对日志实时收集,logstash可以做到。目前的版本是1.4.2,官方文档在http://www.logstash.net/docs/1.4.2/,里面有详细的配置说明,使用也很简单。这里主要对logstash的可靠性做了简单的验证
intput为file,kill掉logstash进程
每100ms打印一条日志,用logstash读取;每隔20s杀掉logstash进程,又重启。发现logstash会有高概率重发日志,也有少量发送空消息,要注意代码中要过滤重复消息和空消息
关闭output
- output为redis,kill掉redis后,logstash向redis的写操作会阻塞。等到redis恢复后,会接着写,不会丢数据
- output为kafka,使用logstash-kafka这个插件(https://github.com/joekiller/logstash-kafka)。kafka通常是集群,kill掉其中一个进程,会有短暂的kafka服务不可用,logstash侧会做失败重试,只要重试次数足够多,不会丢数据;如果kafka所有进程都kill掉,logstash侧还是会一直重试,超过上限阈值后,就会丢弃数据,这里就会存在丢数据的可能
logstash单点
一台服务器一般只允许一个logstash进程,如果进程挂掉了,没有自动恢复机制,要想办法手工拉起它
小结
这里只试验了input为file的情况,总的来说logstash不会少传数据,但有可能多传
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。