至于点击上方“ 小哈学Java ”,选择 “ 星标 ”
作者:犬小哈
来源:小哈学Java
最近,小哈主要在负责日志中台的开发工作, 等等,啥是日志中台?
俺只知道中台概念,这段时间的确很火,但是 日志中台又是用来干啥的 ?
这里小哈尽量地通俗的说下日志中台的职责,再说日志中台之前,我们先扯点别的?
相信大家对集中式日志平台 ELK 都知道一些,生产环境中, 稍复杂的架构,服务一般都是集群部署,这样,日志就会分散在每台服务器上,一旦发生问题,想要查看日志就会非常繁琐,你需要登录每台服务器找日志,因为你不确定请求被打到哪个节点上。另外,任由开发人员登录服务器查看日志本身就存在安全隐患,不小心执行了 rm-rf*
咋办?
通过 ELK , 我们可以方便的将日志收集到一处( Elasticsearch
集群)来进行多维度的分析。
但是部署高性能、高可用的 ELK 是有门槛的,业务组想要快速的拥有集中式日志分析的能力,往往需要经过前期的技术调研,测试,踩坑,才能将这个平台搭建起来。
臭嗨!说了这么多,跟你这篇文章的主题有啥关系?
额,小哈这就进入主题。
既然想统一管理日志,总得将这些分散的日志采集起来吧,那么,就需要一个日志采集器, Logstash
和 Filebeat
都有采集日志的能力,但是 Filebeat
相较于 Logstash
的笨重, 它更轻量级,几乎零占用服务器系统资源,这里我们选型 Filebeat
。
这个 Filebeat
采集器包里面,包含了采集日志文件路径,输出到 Kafka
集群,以及一些个性化的采集规则等等。
怎么样?是不是感觉很棒呢?
通过 Apachecompress
工具打包思路大致如下:
①:创建一个 FileOutputStream
到输出文件(.tar.gz)文件。
②:创建一个 GZIPOutputStream
,用来包装 FileOutputStream
对象。
③:创建一个 TarArchiveOutputStream
,用来包装 GZIPOutputStream
对象。
④:接着,读取文件夹中的所有文件。
⑤:如果是目录,则将其添加到 TarArchiveEntry
。
⑥:如果是文件,依然将其添加到 TarArchiveEntry
中,然后还需将文件内容写入 TarArchiveOutputStream
中。
接下来,直接上代码:
至于代码每行都是什么意思,小伙伴们可以看代码注释,说的已经比较清楚了。
接下来,执行 main
方法,测试一下,看看打包是否成功:
生成采集器 tar.gz
包成功后,业务组只需将 tar.gz
下载下来,并扔到指定服务器,解压运行即可完成采集任务啦~
本文主要还是介绍如何通过 Java 来完成打包功能,关于 ELK 相关的知识,小哈会在后续的文章中分享给大家,本文只是提及一下,欢迎小伙伴们持续关注哟,下期见~
https://netjs.blogspot.com/2017/05/creating-tar-file-and-gzipping-multiple-files-java.html
PS: 另外,小哈建了个学习交流群,禁广告、推广,群内氛围非常不错的,大家有啥问题也可以在群里提问,有需要的小伙伴可以加一下~
加群方式 - 扫描下方 :point_down: 笔者二维码,备注: 加群
有热门推荐 :point_down:
1. 天冷了,小哈贴心送360双袜子!
2. 记住:永远不要在 MySQL 中使用 UTF-8
3. 刷屏漫画 | 程序员真的是太太太太太太太太难了!
4. 为什么建议你使用 LocalDateTime ,而不是 Date?
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)