Q1
在谈日志分析之前,我们先来谈谈日志是什么?
日志记录了IT系统的数据,是大数据的重要来源之一。
日志数据来源广泛,服务器、网络设备、应用软件以及用户信息等重要数据内容都包含在日志中,甚至还有物联网传感器等信息,所有的企业只要有IT系统就有日志。
Q2
那为何需要进行日志分析?
但是机器日志一般人看不懂啊!
看不懂,又何谈对日志大数据的利用?
所以这时候就需要对机器日志来进行解析。
日志解析就是将日志文本解析成多个可读字段信息。说人话就是日志解析能将日志本身(文本数据,只有工程师才能看懂)解析成大家都能看得懂的信息。
比如用户每一次点击访问某网站,对应网站的Apache access服务器就会输出一条或者多条日志,这一条日志包含了非常多的信息,通过日志解析,我们能够得到比如用户访问IP地址、访问时间、POST方式、HTTP的状态、返回响应是多少字节、返回响应延时、访问URL是从哪个网站跳转过来的,然后还有客户端的浏览器的信息等。
我们假设一个场景,比如黑客入侵了你的电脑。那他的入侵过程就会被日志记录下来。我们便可以通过解析日志来进行事故追查。
但是,问题来了。
要知道黑客入侵之后做的第一件事就是删除日志,因为入侵过程会被日志记录下来,所以他第一件事情就是抹除这个痕迹,那事后追查就比较难,所以实时对日志进行监控则显得尤为重要。
而且机器日志数量巨大,小的公司一天产生几GB的日志,大的公司一天几TB的日志。任何企业的技术团队也无法做到人工整理,解析日志啊。
而且,随着云计算和大数据的发展,企业采用分布式架构已经成为常态。这样日志也随之分布到多台服务器上:移动App日志,PC Web日志之外,还有各种其他的日志,比如Linux的登录日志、Web服务器的Access Log、MySQL数据库的Error Log,Oracle数据库的Alert Log、应用程序打的各种Debug日志等等。但是很多公司日志基本上就是散落在各台服务器没有集中处理。
运维工程师往往就因为面临日志存储相对零散、无法集群搜索、多维度查询、不能及时进行日志分析和告警等复杂问题,导致日志管理不过来,所以通常只是用作事后追查,而非实时监控分析,导致资源的极大浪费。
Q3
我们也知道日志分析很重要,但日志分析到底该怎么做?
随着大数据的发展,以及技术的进步,其实现在,很多企业越来越重视日志。
但是,初期大多企业对于日志处理分析的方法并不合适,常使用数据库存储,其检索查询非常麻烦,根本无法适应tb级别海量日志,数据库的schema也无法适应多变的日志格式,全文搜索检查更是无法提供。所以,那时即便人们能够意识到大量数据的重要性,却没有能够挖掘分析的合适方式。
经过后期的研究尝试,日志分析的处理方式有了很大改善。日志的实时分析处理逐渐有了相对成熟的方法,但具体的应用仍需要企业选择更适合自己的处理方式,才能发挥日志数据的最大价值。
以下是几种相对流行的日志分析方式的分析。
Hadoop:利用Hadoop技术进行大数据的处理是比较常见的一种方式。但它只是一个框架,需要在上面编写程序,且其查询慢,处理相对滞后,适合做基于日志的用户数据离线挖掘,并不适合做OLAP(On Line Analytic Processing)。
Storm:Storm也是开发框架,它的历史悠久,但目前已经停止开发。Storm虽然可做实时处理,且速度甚至能达到几十毫秒,但其吞吐率相对较差,任务调查度差,所以BAT类的企业使用Storm常与Hadoop相结合。
Spark:Spark同样只是框架,而非拿来即用的产品。它的生态圈建设十分完整,且有DataBricks的专门支持。其处理方式并不是真正的流处理,而是小的批处理的叠加,且其拥有时间窗,允许客户自设,十分方便。
Storm vs.Spark Streaming:Storm是真正的流式处理,而Spark Streaming是一个小的批处理,其延时与吞吐率的取舍已经比较成熟。
以上介绍的Hadoop、Storm、Spark均为开发框架,并非能够拿来即用的产品,都需要开发人员进行二次研发。
Q4
拿来即用的日志分析产品,其实已经进入了我们常说的日志分析的第三个阶段,即:实时的日志搜索分析引擎。
实时日志搜索分析引擎第一个好处当然就是实时,处理速度非常快,基本上几秒钟之前出现的日志就可以搜索分析出结果;第二个就是方便灵活,因为可以进行快捷的搜索;第三个就是拿来就可以用,不需要做任何开发。
目前日志分析大部分所用的的技术是hadoop、storm等等,利用实时搜索引擎处理日志还是一种比较独特的方式,接受度相对较少。
国外已经有产品能够提供这样的分析,典型的产品如商业软件Splunk和开源软件ELK;在中国,袋鼠云日志也已经能够提供这样的服务。
Q5
什么是袋鼠云日志?
袋鼠云日志并不仅仅止于搜索,它做的是数据整个的流动链条:采集、搜索、分析、可视化。
日志最原始的状态是文本,属于非结构化数据,不如结构化数据那么容易处理,但袋鼠云日志能够通过抽取字段,将日志数据从非结构化转成结构化,从而大幅度提升日志的查询、分析效率。
运维人员可以很方便地进行高效故障排查、关联分析和预警。袋鼠云日志就是为服务器、网络、应用进行全方位监控,它还能够自动识别这些设备、应用产生的各种信息,或者根据运维工程师的需要进行信息的调取和分析,或者根据营销需求来挖掘用户行为。
目前袋鼠云的客户涉及金融、政企、传媒、人工智能、物流、传统企业、互联网企业等,比如亿享金服、浙报传媒、GQY、比亚迪、申通易物流、轻松筹、美购、甲骨文科技等。还有更多的企业正在合作洽谈中。
Q6
介绍一下袋鼠云日志的具体应用场景吧
运维监控调优排错:
袋鼠云日志可以帮您进行瓶颈分析,故障排查等调优排错。
安全审计:
如果你的系统是被黑客攻击了之类的,日志里就会包含这个信息,通过袋鼠云日志可以帮你分析盗号行为,以及识别潜在业务风险,识别盗链,数据泄露排查,黑客攻击溯源。
数据挖掘,用户数据分析:
很多的网站用户来访问,每一次访问每一次点击都会在后台产生一条或多条的日志,从日志这里就可以分析出用户行为。袋鼠云日志可以帮助你查看访问来源,以及业务分布,查看业务增长趋势,网站及手机用户分布情况等。
物联网(未来的应用方向):
因为物联网传感器产生的数据也是带时间戳的,也是这种所谓的时间序列机器数据,这些数据袋鼠云日志也能处理。
Q7
既然ELK是开源的,企业何不自己搞一套?
一些大型的互联网公司会对ELK做二次开发,使用过百台的ELK集群进行日志分析。但是ELK仍存在一些缺陷,由于ELK是三个独立的开源套件,没有统一部署、管理工具,所以其运维管理十分不便。并且它的统计、分析功能有限,告警功能、权限管理功能和自监控功能均为收费功能。
ELK系统进行排查,这样不仅费时费力,如果日志量太大,硬盘空间不够,还会被覆盖掉,同时ELK系统不仅成本不低,还存在着严重的安全漏洞。因此,如何快速搜索、分析日志成为大公司和对于安全要求较高行业的刚需,袋鼠云日志则正好满足此需求。
目前,袋鼠云日志有两个版本可供不同需求的企业选择。
Saas免费版,非常适合日志量较小的中小企业和初创企业。
日志量较大且数据安全要求较高的企业则可以选择我们的独立部署版。
Q8
袋鼠云日志是不是和最近比较热的APM(应用性能监控)、NPM(网络性能监控)非常像?
首先,袋鼠云日志和APM、NPM的确都属于一大类工具:IT运维分析,ITOA(IT Operation Analytics)。
其次,运维工程师在进行IT运维分析的时候,需采集不同类型的数据,有机器数据、代理数据、网络通信数据和探针数据四种。
APM所用的数据主要是代理数据或探针数据,而NPM则需要网络通信数据,而机器数据的文本形式就是日志,袋鼠云日志主要处理的就是机器数据。
从美国行业用户调研的数据来看,使用机器数据(日志易在做)和网络通信数据(NPM方向)的用户最多,但是这四种数据往往都被结合在一起来使用,因此在具体使用的时候,袋鼠云日志可以和APM、NPM进行互补,同样袋鼠云日志产生的数据也可以提供给APM、NPM作补充分析之用。
Q9
相比其他日志分析工具,袋鼠云日志有哪些优势?
快速上手
在线配置,5分钟即可上手
可视化操作界面,无需具备专业知识
不需要写代码、记命令就可以完成数据分析
强大的分析功能
每秒钟可处理100万条日志
全文索引,方便检索
自定义日志解析规则,可分析任意日志数据
上下文关联分析
丰富的报表类型
可视化数据,业务数据清晰呈现
支持表格、地图、趋势图、TOP统计图等图表
图表拖拽、平移、缩放控制
支持多种类型大屏创建
自定义视图
多种计算方式求和、平均、比率等
袋鼠云在大数据领域深耕7年,拥有丰富的大数据平台建设经验和成熟的产品体系,想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack