近期实在没有什么可写的了, docker遇到很多的坑, 只能先写一点其他的东西, flume用的公司很多, 不过一般成熟的一二线的公司基本是很少使用, 他的性能和网络传输一直是有提升空间的, 对于我们这些小公司出身的人,曾经还是靠他混饭吃的.
设计是将近前的实现, 现在觉得很多不是很合理的地方,特别是在分流的设计上,不过flume的传输占带宽的问题也一直没有解决,曾经对flume做了部分优化,写过一点插件,后续有机会发出来
生产环境中flume安装及配置工作,帮助同事能够快速了解flume的安装环境及配置工作。
Flume依赖关系:
JDK :Flume源码程序是由JAVA平台编制而成,故此对JDK有强制依赖。
HDFS :flume监听日志文件变化,将日志程序写入存储介质HDFS
HBASE:与HDFS同属存储介质,用于实时查询,flume可藉由zookeeper获取HBASE访问实例
本次项目flume的职责要求:
flume是收集日志的开源软件解决方案之一,相对于其他同类软件他具有高可用的,高可靠的,分布式等特性,对于分布式日志采集有得天独厚的优势。
此次项目中flume是承上启下的作用,上游为python程序分割本服务器日志,下游为将日志存储HDFS,期间确保数据安全性及整体应用可用性,故此我们需要在每台日志收集的服务器中安装flume程序和python分割程序,如下图所示:
日志收集工作流程是
1.OTSWEB生成相关日志信息,可按小时、天等(现阶段是按天)
2.PYTHON日志分割程序,依据文件行数对OTSWEB日志实施分割为多个文件,同时写入flume客户端侦测的文件夹中
3.flume客户端侦测文件夹变化,对新增文件读取,并提交至其他服务器的flume日志存储模块
4.flume日志存储模块将收到的日志整合,按5分钟为时限将日志数据写入HDFS
日志模块可参考下图所示:
(蓝色-我方应用,灰色-依赖软件,白色-后续扩展)
Flume程序安装:
依据服务器客观条件,我们应先检测是否有安装JDK以及CDH,如上述软件已安装完毕,则将软件包解压放置相关目录下。
解压后目录:
bin目录:放置flume的启动命令文件。(flume-ng)
conf目录:放置flume核心的配置文件,包括flume工作脚本(flume-conf.properties用于定制个性化日志收集,主要工作内容)、flume运行信息(flume-env.sh用于配置JDK等信息)、flume日志管理(log4j.properties用于配置