在互联网大潮中,为应对不断加速的软件、服务交付需求,无论是在创业团队还是大型互联网公司,都已经转向或逐步转向 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% |