爬虫的业务监控方案-Flume

Posted 广东互动学堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫的业务监控方案-Flume相关的知识,希望对你有一定的参考价值。

本文转载:自学自说

上周写了一篇,其中提到Flume的修改及基于ES的告警。今天就先提一下Flume。

Apache Flume本身架构优良等等就不在这里介绍了,因为本人对Java比较熟悉,尽管后期将重度使用ElasticStack,但是亲儿子Logstash是ruby写的,so,尽量不折腾,毕竟能自己要能修改定制才有安全感。

基于上一期的方案,采用Flume的HTTPSource接收爬虫推送的metrics,但是Flume自带的HTTPSource有一些不好的地方,见官方文档描述:http://flume.apache.org/FlumeUserGuide.html#http-source,文档配置如下:

爬虫的业务监控方案-Flumebody部分只能是string,这个不符合我们要求,我希望body部分是可以扩展的,不仅仅是key-value,最好是json格式,能再继续嵌套。

所以,我们需要对Flume的HTTPSource做个小手术,通过查看源码,其实只需要对JSONEvent这个类进行改造就行,下面我把完整代码贴出来,因为考虑到头条不支持Markdown,下面就贴图上来了,我相信机智的你对比原始类一看秒懂。

爬虫的业务监控方案-Flume后面就可以愉快地接收数据了,这里顺便再给大家提供一点福利,我写的监控Flume的Hyperic HQ监控插件,通过Flume的JMX数据监控Source、Sink、Channel组件,代码已经托管到coding.net:https://git.coding.net/heyao/flume-plugin.git。

监控效果如下图:

爬虫的业务监控方案-Flumechannel一般关注ChannelSize,超过一定阈值,可能后端入库慢了。。。。

source和sink我这里就不截图了。

后续再把可视化及基于ES的告警部分写出来,对于开源部分,因为最近代码公司业务属性有些侵入,显得不够纯粹,所以这几天准备弄成微服务,尽量把单独的部分做成单独的模块,后端代码基于Spring Boot来做,这样大家用起来也简单。OK,今天就到这里。最后贴一个今天给公司某业务弄的爬虫爬取量监控。






以上是关于爬虫的业务监控方案-Flume的主要内容,如果未能解决你的问题,请参考以下文章

Flume面试题整理

Flume+Kafka+SparkStreaming+Hbase+可视化

Flume架构以及应用介绍[转]

Flume架构以及应用介绍(转)

湖仓一体电商项目(十六):业务实现之编写写入ODS层业务代码

Flume日志收集系统介绍