通过将阿里云日志服务与ELK Stack进行全面对比,帮助您更好的了解阿里云日志服务的主要功能和优势。
提到日志实时分析,很多人都会想到基于ELK Stack(Elastic/Logstash/Kibana)来搭建。ELK方案开源,在社区中有大量的内容和使用案例。
阿里云是阿里巴巴集团对日志场景的解决方案产品,前身是2012年初阿里云在研发飞天操作系统过程中用来监控和问题诊断的产物,但随着用户增长与产品发展,慢慢开始向面向Ops(DevOps,Market Ops,SecOps)日志分析领域发展,期间经历双十一、蚂蚁双十二、新春红包、国际业务等场景挑战,成为同时服务全球的产品。
Apache Lucene是Apache软件基金会一个开放源代码的全文检索引擎工具包,一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎、部分文本分析引擎。2012年Elastic把Lucene基础库包成了一个更好用的软件,并且在2015年推出ELK Stack(Elastic Logstash Kibana)解决集中式日志采集、存储和查询问题。Lucene设计场景是Information Retrival,面对是Document类型,因此对于Log这种数据有一定限制,例如规模、查询能力、以及智能聚类LogReduce等定制化功能。
Log Service提供日志存储引擎是阿里内部自研究技术,经过3年万级应用锤炼,每日索引数据量达PB级,服务万级开发者每天亿次查询分析。在阿里集团内阿里云全站,SQL审计、鹰眼、蚂蚁云图、飞猪Tracing、阿里云谛听等都选择Log Service作为日志分析引擎。
而日志查询是DevOps最基础需求,业界的调研也验证了这一点,tar排名第一、Grep排名第二,由此可见日志查询对程序员的重要性。
在日志查询分析场景,以如下点对ELK与Log Service做一个全方位比较。
- 易用:上手和使用的便利程度。
- 功能:主要针对查询与分析。
- 性能:对于单位大小数据量查询与分析需求,延时如何。
- 规模:能够承担的数据量、扩展性等。
- 成本:同样功能和性能,使用分别花多少钱。
对日志分析系统而言,有如下使用过程。
- 采集:将数据稳定写入。
- 配置:如何配置数据源。
- 扩容:接入更多数据源,更多机器,对存储空间,机器进行扩容。
- 使用:这部分在功能这一节介绍。
- 导出:数据能否方便导出到其他系统,例如做流计算、放到对象存储中进行备份。
- 多租户:如何将数据分享给其他人使用,使用是否安全等。
提供Index概念用以区分不同日志。 |
提供两层概念,Project相当于命名空间,可以在Project下建立多个Logstore。 |
|
控制台或API操作,无需配管系统。 |
通过配管系统控制,将配置和Logstash安装到机器组。 | 控制台或API操作,无需配管系统。 |
原生提供账号与权限级管理。 |
- ELK有非常多的生态和写入工具、安装、配置等都有较多工具可以使用。
- Log Service是托管服务,从接入、配置、使用上集成度非常高,普通用户5分钟就可以接入。
- Log Service是SaaS化服务,在过程中不需要担心容量、并发等问题。弹性伸缩,免运维。
查询主要是将符合条件的日志快速命中,分析功能是对数据进行统计与计算。
例如我们需要所有状态码大于200的读请求,根据IP统计次数和流量。这样的分析请求可以转化为两种操作。
- 查询到指定结果,对结果进行统计分析。
- 不进行查询,直接对所有日志进行分析。
针对IP地址、手机等内容,内置地理位置函数方便分析用户来源。
- IP:国家、省市、城市、经纬度、运营商。
- Mobile:运营商、省市。
-
依托全球白帽子共享安全资产库,提供安全检测函数,您只需要将日志中任意的IP、域名或者URL传给安全检测函数,即可检测是否安全。