在互联网大潮中,为应对不断加速的软件、服务交付需求,无论是在创业团队还是大型互联网公司,都已经转向或逐步转向 DevOps 模式,通过开发(Dev)和运维支持(Ops)之间有效协作,解决跨部门协作、快速响应客户需求、进行持续交付等问题。

日志查询方案对比

日志在 DevOps 下显得越发重要,无论是在问题调查、安全审计、运营支撑等各方面,日志都起到了重要的支撑作用。一个合适的日志解决方案,对于 DevOps 显得尤为重要。

我们从如下方面考察 LogSearch 与 ELK、Hadoop/Hive 类方案的对比。
  • 延时:日志产生后,多久可查询。
  • 查询能力:单位时间扫描数据量。
  • 查询功能:关键词查询、条件组合查询、模糊查询、数值比较、上下文查询。
  • 弹性:快速应对百倍流量上涨。
  • 成本:每 GB 费用。
  • 可靠性:日志数据安全不丢失。
常用方案以及对比
  • 自建 ELK:通过 Elastic、Logstash、Kibana 进行对比。
  • 离线 Hadoop + Hive:将数据存储在 Hadoop,利用 Hive 或 Presto 进行查询(非分析)。
  • 使用日志服务(LogSearch)。

以应用程序日志和 Nginx 访问日志为例(每天 10GB),对比几种方案。

功能项 ELK 类系统 Hadoop + Hive 日志服务
可查延时 1~60 秒(由 refresh_interval 控制) 几分钟~数小时 实时
查询延时 小于 1 秒 分钟级 小于 1 秒
超大查询 几十秒~数分钟 分钟级 秒级(查询 10 亿日志)
关键词查询 支持 支持 支持
模糊查询 支持 支持 支持
上下文查询 不支持 不支持 支持
数值比较 支持 支持 支持
连续字符串查询 支持 支持 不支持
弹性 提前预备机器 提前预备机器 秒级 10 倍扩容
写入成本 写入5 元/GB,查询免费 写入免费,查询一次 0.3 元/GB 写入 0.5 元/GB,查询免费
存储成本 ≤ 3.36 元/GB*天 ≤ 0.035 元/GB*天 ≤ 0.016 元/GB*天
可靠性 设置拷贝数 设置拷贝数 SLA > 99.9%,数据 > 99.99999999%