日志服务器应用开发

日志服务器应用开发
在日志服务器中整理日志信息 利用Log4j输出


方式1:
日志服务器将日志生成到文件中 
flume来获取文件中的日志信息


优点:
数据先落地一次 所以即使出现意外情况 仍然可以从文件中恢复之前的日志
缺点:
数据落地 扫描都需要时间 对实时性有一定影响
坑:
log4j需要不停写入数据 而spooldirsource 要求观察的目录 不能出现重名文件 及 文件不能被修改 存在矛盾。
解决办法1:
使用ExecSource 调用tail命令 来不停的扫描指定文件 来获取最新日志
解决方法2:
配置Log4j按照时间/大小滚动产生文件 并且配置 滚动之前和之后的文件后缀格式不同
而Flume使用SpoolDirSource来关注此文件夹,并且配置ignorePattern忽略正在使用的文件格式


方式2:
日志服务器直接通过log4j将日志发往flume Agent


优点:
数据直接传输 保证了较高的实时性
缺点:
没有数据落地 缺少可靠性
坑:
如何让log4j直接将日志发往flumeAgent
解决方案:
flume原生的提供Log4jAppender 可以通过log4j直接将日志信息发往Flume的AvroSource
例子:
log4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.flume.Hostname = example.com
log4j.appender.flume.Port = 41414
log4j.appender.flume.UnsafeMode = true


我们采取的方案:
在日志服务器应用中 接受客户端提交的日志 通过Log4jAppender写入flume中

猜你喜欢

转载自blog.csdn.net/vitaair/article/details/80220619
今日推荐