云日志服务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(C616U64G) | 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%磁盘冗余)=31TB磁盘。
搭建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。

