云日志服务LTS对比自建ELK Stack有什么优势?
本章节主要介绍华为云日志服务(LTS)对比自建ELK,帮助您更好的了解LTS的主要功能和优势。
背景信息
提到日志搜索,很多人都会想到基于ELK Stack(Elasticsearch/Logstash/Kibana)来搭建,开源的ELK方案,在社区中有大量的内容和使用案例供大家参考。
华为云日志服务LTS,聚焦3大场景(应用运维/等保合规/业务运营),为客户提供采、存、查、加工、分析和告警全托管式日志分析平台。更多信息请参考图解云日志服务。
功能对比
云日志服务LTS在功能特性的完备度、日志搜索分析性能方面对比ELK有明显的优势,详细对比请见如下表格:
特性 |
子特性 |
LTS |
ELK |
描述 |
---|---|---|---|---|
日志采集 |
云服务日志采集 |
☆☆☆☆☆ |
无 |
ELK:不支持采集云服务日志。 LTS:云服务租户面日志统一采集到LTS。 |
虚机和容器日志采集 |
☆☆☆☆☆ |
☆☆☆☆ |
ELK:使用logstash或者filebeat等开源采集器采集日志。 LTS:使用ICAgent采集日志,有提供向导页面,上手难度低。 |
|
多语言SDK日志采集 |
☆☆☆ |
无 |
ELK:不支持。 LTS:提供java SDK直接上报日志到LTS |
|
主机组管理(主机动态扩缩容) |
☆☆☆☆☆ |
无 |
ELK:不支持。 LTS:提供主机管理、主机组管理能力,主机组支持自定义标识主机组,可以管理动态扩缩容主机组。 |
|
日志结构化解析 |
☆☆☆☆ |
☆☆☆☆☆ |
ELK:基于采集器实现自定义日志结构化解析。 LTS:提供结构化解析能力,可以正则表达式、JSON、分隔符、自定义模板等方式解析日志。 |
|
日志搜索 |
关键词搜索、模糊搜索、快速分析 |
☆☆☆☆☆ |
☆☆☆☆☆ |
ELK和LTS:提供类似的日志关键词搜索能力。 |
实时日志查看 |
☆☆☆☆☆ |
无 |
ELK:未提供实时日志查看页面。 LTS:提供实时日志查看页面。 |
|
百亿日志秒级搜索 |
☆☆☆☆☆ |
☆☆ |
ELK:自建ELK受限于机器资源数量,搜索海量日志时耗时较长。 LTS:利用公有云海量的弹性计算资源,百亿日志可以在3秒内返回搜索结果。 |
|
千亿级日志迭代搜索 |
☆☆☆☆☆ |
无 |
ELK:无法直接搜索千亿条日志,会出现响应超时。 LTS:提供迭代搜索能力,用户可以直接搜索千亿条日志。 |
|
日志管理规模 |
百PB级 |
百TB级 |
ELK:经常要关注机器扩容,费时费力。 LTS:按需付费,LTS自动管理百PB级日志,不用关心底层资源消耗情况。 |
|
日志搜索 |
SQL分析日志 |
☆☆☆☆☆ |
☆☆ |
ELK:SQL性能差,语法上不支持嵌套SQL。 LTS:SQL性能强,支持嵌套SQL。 |
日志搜索 |
SQL函数 |
☆☆☆☆☆ |
☆☆ |
ELK:只支持最基础的SQL统计函数。 LTS:在基础SQL函数基础上,提供了大量的扩展函数,例如IP函数、统计函数、环比同比函数、URL函数等,极大扩展了使用场景。 |
日志搜索 |
可视化图表 |
☆☆☆☆ |
☆☆☆ |
LTS:提供了表格、折线图、饼图、柱状图等多种可视化图表。 |
日志搜索 |
仪表盘 |
☆☆☆☆☆ |
☆☆ |
ELK:没有云服务日志开箱即用仪表盘。 LTS:提供开箱即用的仪表盘,对常见的云服务日志例如ELB/APIG/DDS/DCS/CFW等提供开箱即用的仪表盘。 |
日志告警 |
日志关键词告警和SQL告警 |
☆☆☆☆☆ |
☆ |
ELK:没有日志告警功能。 LTS:提供准实时的日志关键词和SQL告警功能。 |
告警通知渠道(邮件、短信、HTTPS等) |
☆☆☆☆☆ |
☆ |
ELK:无法将告警方便地以钉钉、微信、短信等方式通知用户。 LTS:对接华为云消息通知服务,能以邮件、短信、微信、钉钉、飞书、HTTP等多种渠道通知客户。 |
|
日志转储 |
转储到对象存储 |
☆☆☆☆☆ |
无 |
ELK:无法直接转储对象存储。 LTS:页面简单配置可以将日志转储到对象存储。 |
日志转储 |
转储到kafka |
☆☆☆☆☆ |
☆☆ |
ELK:需要自己部署程序将日志转发到KAFKA。 LTS:页面简单配置可以将日志实时转储到KAFKA。 |
日志转储 |
转储到数据仓库 |
☆☆☆☆☆ |
无 |
ELK:无法直接将日志转储到数据仓库。 LTS:页面简单配置可以将日志转储到数据仓库。 |
日志加工 |
定时SQL作业 |
☆☆☆☆☆ |
无 |
ELK:没有定时SQL作业能力。 LTS:可以配置定时SQL作业,将原始日志加工统计为想要的少量日志结果。 |
函数加工 |
☆☆☆☆☆ |
无 |
ELK:没有日志加工功能。 LTS:提供函数触发器,在函数服务中可以配置自定义脚本将日志灵活加工。 |
成本对比
场景一:
假设客户每天原始日志100GB(日志平均速率1.16MB/s),日志平均存储30天,30天原始日志总量为3000GB,日志存储方式为一主一副本。
根据Elasticsearch官方推荐,在一主一副本存储方式下,原始日志+副本数据+索引数据等合计占用的存储空间约为原始日志大小2.2倍,另外由于ES集群存在写不均匀且磁盘不能被耗尽,因此为了存储3000GB原始日志,至少需要准备3000GB*2.2(存储膨胀)*2(50%磁盘冗余) = 13200GB磁盘。
搭建ES最小典型配置是3台ECS(16U64G5TB),kafka双副本能支持缓存最近12小时的日志。
大类 |
小类 |
月成本(合计:12597元) |
费用占比 |
---|---|---|---|
搭建ES |
3 * ECS(C6 16U64G) |
3*1999=5997元 |
47.6% |
云硬盘EVS(高IO 15TB) |
0.35*15*1024=5376元 |
42.7% |
|
搭建KAFKA |
3 * ECS(2U4G) |
3*208=624元 |
4.9% |
云硬盘EVS(超高IO 3*200GB) |
600元 |
4.7% |
LTS使用价格计算器,计算出来月成本约为2102元,使用LTS的成本约为自建ELK成本的16.7%,原因是在小日志量场景下,自建ELK起步资源成本很高,相比于按需付费的LTS,有很大劣势。
场景二:
假设客户每天原始日志1TB(日志平均速率11.6MB/s),日志平均存储7天,7天原始日志总量为7TB,日志存储方式为一主一副本。根据Elasticsearch官方推荐,在一主一副本存储方式下,原始日志+副本数据+索引数据等合计占用的存储空间约为原始日志大小2.2倍,另外由于ES集群存在写不均匀且磁盘不能被耗尽,因此为了存储7TB原始日志,至少需要准备7TB*2.2(存储膨胀)*2(50%磁盘冗余) = 31 TB磁盘。
搭建ES最小典型配置是3台ECS(16U64G10TB),kafka双副本能支持缓存最近12小时的日志
大类 |
小类 |
月成本(合计:18931元) |
费用占比 |
---|---|---|---|
搭建ES |
3 * ECS(C6 16U64G) |
3*1999=5997元 |
31.7% |
云硬盘EVS(高IO 31TB) |
0.35*31*1024=11110元 |
58.7% |
|
搭建KAFKA |
3 * ECS(2U4G) |
3*208=624元 |
3.3% |
云硬盘EVS(超高IO 3*400GB) |
1200元 |
6.3% |
LTS使用价格计算器,计算出来月成本约为13408元,使用LTS的成本约为自建ELK成本的71%,原因是LTS的存储收费是按用量付费,自建ELK为了保证集群的正常运行需要留有很多磁盘冗余。
场景三:
假设客户每天原始日志5TB(日志平均速率58MB/s),日志平均存储30天,30天原始日志总量为150TB,日志存储方式为一主一副本。
根据Elasticsearch官方推荐,在一主一副本存储方式下,原始日志+副本数据+索引数据等合计占用的存储空间约为原始日志大小2.2倍,另外由于ES集群存在写不均匀且磁盘不能被耗尽,因此为了存储150TB原始日志,至少需要准备150TB*2.2(存储膨胀)*2(50%磁盘冗余) = 660 TB磁盘。
搭建ES最小典型配置是66台ECS(16U64G10TB),kafka双副本能支持缓存最近12小时的日志
大类 |
小类 |
月成本(合计:374202元) |
费用占比 |
---|---|---|---|
搭建ES |
66 * ECS(C6 16U64G) |
66*1999=131934元 |
35.3% |
云硬盘EVS(高IO 660TB) |
0.35*660*1024=236544元 |
63.2% |
|
搭建KAFKA |
3 * ECS(2U4G) |
3*208=624元 |
0.2% |
云硬盘EVS(超高IO 3*1700GB) |
5100元 |
1.4% |
LTS使用价格计算器,计算出来月成本约为107655元,使用LTS的成本约为自建ELK成本的28.8%,原因是LTS的存储收费是按用量付费,自建ELK为了保证集群的正常运行需要留有很多磁盘冗余。
总结
云日志服务LTS在功能、性能、成本方面对比ELK都有明显的优势,推荐您使用全托管式的云日志服务替代自建ELK。