经反馈,新部署的服务器上filebeat占用的cpu过高,且内存只增不减。

而据我了解filebeat非常轻量级,正常情况下占用的资源几乎都能忽略不计,所以怀疑是filebeat本身出了问题。

第一时间查看filebeat日志(默认路径/var/log/filebeat/filebeat),发现有大量内容输出:

 
--20T08::02.198+    INFO    kafka/log.go: producer/broker/ starting up
--20T08::02.198+ INFO kafka/log.go: producer/broker/ state change to [open] on wp-news-filebeat/
--20T08::02.198+ INFO kafka/log.go: producer/leader/wp-news-filebeat/ selected broker
--20T08::02.198+ INFO kafka/log.go: producer/broker/ state change to [closing] because EOF
--20T08::02.199+ INFO kafka/log.go: Closed connection to broker bitar1d12:
--20T08::02.199+ INFO kafka/log.go: producer/leader/wp-news-filebeat/ state change to [retrying-]
--20T08::02.199+ INFO kafka/log.go: producer/leader/wp-news-filebeat/ state change to [flushing-]
--20T08::02.199+ INFO kafka/log.go: producer/leader/wp-news-filebeat/ abandoning broker
--20T08::02.199+ INFO kafka/log.go: producer/leader/wp-news-filebeat/ state change to [retrying-]
--20T08::02.199+ INFO kafka/log.go: producer/leader/wp-news-filebeat/ abandoning broker
--20T08::02.199+ INFO kafka/log.go: producer/leader/wp-news-filebeat/ state change to [retrying-]
--20T08::02.199+ INFO kafka/log.go: producer/broker/ shut down

看日志描述,似乎是一直地在不停的创建和关闭kafka连接。

起初怀疑是kafka相关dns没有配置(/etc/resolve.conf)导致连不上kafka的broker,但检查并和正常的机器对比后,dns配置是一样的,也就排除了这种情况。

接下来怀疑可能是filebeat版本的问题,因为elastic家族的产品就是那个尿性,发版速度很频繁,而且不同大版本有很多不兼容。

对比filebeat版本,发现它的版本(6.5.3)比正常的服务器(5.6.12)高一个大版本,所以怀疑不同版本对kafka的处理机制不一样导致的。

为了验证这个问题,在查阅filebeat官网后发现,6.5.x默认kafka的版本是1.0.0,而5.6.x默认的是0.8.2.0,而询问运维得知kafka版本是0.10.2.2,所以问题基本确认。

根据官方文档描述,在配置中指定了kafka版本:

output.kafka:
  version: 0.10.2.2
  ...

问题得以解决。

参考

https://www.elastic.co/guide/en/beats/filebeat/6.5/kafka-output.html#_literal_version_literal

https://www.elastic.co/guide/en/beats/filebeat/5.6/kafka-output.html#_version

Filebeat占用内存和CPU过高问题排查的更多相关文章

  1. STORM在线业务实践-集群空闲CPU飙高问题排查

    源:http://daiwa.ninja/index.php/2015/07/18/storm-cpu-overload/ 2015-07-18AUTHORDAIWA STORM在线业务实践-集群空闲 ...

  2. Java服务器内存过高&CPU过高问题排查

    一.内存过高 1.内存过高一般有两种情况:内存溢出和内存泄漏 (1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错 (2)内存泄漏:不再使用的对象一直占据着内存不释 ...

  3. 性能分析 | Java服务器内存过高&CPU过高问题排查

    一.内存过高 1.内存过高一般有两种情况:内存溢出和内存泄漏 (1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错 (2)内存泄漏:不再使用的对象一直占据着内存不释 ...

  4. [转]定位占用oracle数据库cpu过高的sql

    今天在吃饭的时候我的朋友的数据库出现了问题,cpu占用率为97%,当我看到这个问题的时候我就想到了或许是sql导致的此问题,由于忍不住吃饭,暂时没有帮他看这个问题,这是我饭后自己模拟的故障,进行的分析 ...

  5. JVM进程占用CPU过高问题排查

    上午收到报警,某台机器上的CPU负载过高,通过逐步的排查,解决了问题,下面记录一下整个排查的过程. 首先,登录上对应的机器,通过top命令找到占用CPU过高的进程ID,也就是PID,为29126, 然 ...

  6. Linux下cpu过高问题排查

    原文地址:https://blog.csdn.net/chenjunan888/article/details/80447800 在服务器报cpu过高时,可使用以下命令,快速导出堆栈信息,以方便查看具 ...

  7. 一次FGC导致CPU飙高的排查过程

    今天测试团队反馈说,服务A的响应很慢,我在想,测试环境也会慢?于是我自己用postman请求了一下接口,真的很慢,竟然要2s左右,正常就50ms左右的. 于是去测试服务器看了一下,发现服务器负载很高, ...

  8. 生产系统CPU飙高问题排查

    现状 生产系统CPU占用过高,并且进行了报警 排查方法 执行top命令,查看是那个进程导致的,可以确定是pid为22168的java应用导致的 执行top -Hp命令,查看这个进程的那个线程导致cpu ...

  9. CPU过高的排查方法

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...

随机推荐

  1. Linear Regression with machine learning methods

    Ha, it's English time, let's spend a few minutes to learn a simple machine learning example in a sim ...

  2. 处理npm publish报错问题

    上传项目到npm-->为社会做贡献 首先你得有一个项目 npm init 生成package.json 来设置相信息 注册登录npm:npm adduser 输入你的一些信息 查看当前npm登录 ...

  3. vue-router 中踏过的坑

    1.做完页面滚动,然后再加上路由,发现路由一直跳转不了,经历千辛万苦才发现是BScroll没有配置click:true,当看过文档时心里一万只草泥马奔腾而过,我预感到成长道路上还有多少坑在等着我. 2 ...

  4. 基于三层架构项目下的Ado【六】

    一.基于三层架构项目下的Ado增删改查总结,提示:现在一般都是使用EF框架操作. 1. 先在model层创建出一个和你将会查询出一样类型的表,比如你将查询出的有五个字段,那么你就需要创建出一个和你查询 ...

  5. PPI | protein-protein interaction | 蛋白互作分析

    STRING database的挖掘 这个数据库绝对是做实验人的宝藏,里面包含了各种蛋白互作关系,不用做实验就有一大堆证据. IPA了解一下,收费的高端分析软件,大部分就是整合的这个数据库,很多大佬喜 ...

  6. UML作业第二次:类在类图中的表示

    一.学习小结: 类之间的关系通过下面的符号定义 : 使用.. 来代替 -- 可以得到点 线. @startuml Class01 <|-- Class02 Class03 *-- Class04 ...

  7. js vue 在页面中将摄像头放在一个标签里展示,(模仿手机拍照功能)

    1.HTML <video id="video" autoplay class="fileImg"></video> <canva ...

  8. JSON的新方法--parse()和stringify()

    // eval 可以解析任何字符串变成js var str = 'function show() {console.log(1)}'; eval(str); show(); // parse 只能解析 ...

  9. 关于window.localtion的用法几点总结

    参考链接: http://blog.csdn.net/cui_angel/article/details/7957274(1)window.location.pathname设置或获取对象指定的文件名 ...

  10. nigix反向代理

    参考: https://www.cnblogs.com/yycc/p/8185748.html