阿里云日志方案说明

从需求到分析, 详细说明线上日志系统搭建为什么要用阿里云日志.这波阿里云没有给广告费用.

post thumb
Ops
作者 Louis 发表于 2020年7月16日

[TOC]

一 现状与需求

现状与问题:

  • 日志文件分散在各个应用服务器,开发人员必须远程登录才能查看日志,不利于服务器安全管控,加大生产服务器的风险;
  • 服务器上各项目日志配置很随意,文件分布杂乱,没有统一的规范和管理;
  • 日志文件占用服务器大量的硬盘空间,如不及时清理会发生硬盘占满,影响系统的正常运行;
  • 对于超过百兆的日志文件根本没法打开和关键字搜索,不利于问题的快速定位和排查;
  • 集群和分布式的系统需要查看多个服务器的日志;
  • 日志保存的时间不统一,不能长时间保存日志.

需求说明与分析

  • 不需要开发人员登录生产服务器就能查看日志;
  • 统一规范日志的配置和输出格式;
  • 实时的将日志文件从服务器中迁出;
  • 提供日志的检索和统计分析的平台;

二 建设目标

​ 搭建支持高并发高可靠的日志分析平台,方便开发人员快速的检索日志,排查问题, 同时提供友好的分析和统计的界面。

三 系统设计

技术选型

  • 阿里云 日志服务(Log Service,简称 SLS)是针对日志类数据的一站式服务,在阿里巴巴集团经历大量大数据场景锤炼而成。您无需开发就能快捷完成日志数据采集、消费、投递以及查询分析等功能,提升运维、运营效率,建立DT 时代海量日志处理能力。
  • 自建ELK日志收集系统

本次选型参考,考虑多方因素, 最终选择阿里云日志服务.

系统架构

日志服务的架构如下图所示。

​ 图 1. 产品架构
img

Logtail

​ 帮助您快速收集日志的Agent。其特点如下所示:

  • 基于日志文件、无侵入式的收集日志
    • 只读取文件。
    • 日志文件无侵入。
  • 安全、可靠
    • 支持文件轮转不丢失数据。
    • 支持本地缓存。
    • 网络异常重试。
  • 方便管理
    • Web端操作。
    • 可视化配置。
  • 完善的自我保护
    • 实时监控进程CPU、内存消耗。
    • 限制使用上限。

前端服务器

​ 采用LVS + Nginx构建的前端机器。其特点如下所示:

  • HTTP、REST协议
  • 水平扩展
    • 流量上涨时可快速提高处理能力。
    • 支持增加前端机。
  • 高吞吐、低延时
    • 纯异步处理,单个请求异常不会影响其他请求。
    • 内部采用专门针对日志的Lz4压缩,提高单机处理能力,降低网络带宽。

后端服务器

​ 后端是分布式的进程,部署在多个机器上,完成实时对Logstore数据的持久化、索引、查询以及投递至MaxCompute。整体后端服务的特点如下所示:

  • 数据高安全性 :
    • 您写入的每条日志,都会被保存3份。
    • 任意磁盘损坏、机器宕机情况下,数据自动复制修复。
  • 稳定服务:
    • 进程崩溃和机器宕机时,Logstore会自动迁移。
    • 自动负载均衡,确保无单机热点。
    • 严格的Quota限制,防止单个用户行为异常对其他用户产生影响。
  • 水平扩展:
    • 以分区(Shard)为单位进行水平扩展。
    • 用户可以按需动态增加分区来增加吞吐量。

阿里云成本优势

日志服务产品在日志处理的三种场景下具有以下成本优势:

  • LogHub:
    • 与购买云主机 + 云磁盘搭建 Kafka 相比,对于 98% 场景下用户价格有优势。对小型网站而言,成本为 kafka 的30% 以下。
    • 提供 RESTful API,可以直接针对移动设备提供数据收集功能,节省了日志收集网关服务器的费用。
    • 免运维,随时随地弹性扩容使用。
  • LogShipper:
    • 无需任何代码/机器资源,灵活配置与丰富监控数据。
    • 规模线性扩展 (PB级/Day),功能当前免费。
  • LogSearch/Analytics:
    • 与购买云主机 + 自建 ELK 相比,成本为自建的 15% 以下,并且查询能力与数据规模有极大提升。与日志管理软件相比,能无缝支持各种流行流计算 + 离线计算框架,日志流动畅通无阻。

以下是在计费模型下,日志服务功能与自建方案的对比,仅供参考。

日志中枢(LogHub vs Kafka)

- 关注点 LogHub 自建中间件(如Kafka)
使用 新增 无感知 需要运维动作
扩容 无感知 需要运维动作
增加备份 无感知 需要运维动作
多租户使用 隔离 可能会相互影响
费用 公网采集(10GB/天) 2 元/天 16.1 元/天
公网采集(1TB/天) 162 元/天 800 元/天
内网采集(数据量小) - -
内网采集(数据量中) - -
内网采集(数据量大) - -

日志存储与查询引擎

关注点 LogSearch ES(Lucene Based) NoSQL Hive
规模 规模 PB TB PB PB
成本 存储(元/GB *天) 0.0115 3.6 0.02 0.035
写入(元/GB) 0.35 5 0.4 0
查询(元/GB) 0 0 0.2 0.3
速度-查询 毫秒级-秒级 毫秒级-秒级 毫秒级 分钟级
速度-统计 弱+ 较强
延时 写入->可查询 实时 分钟级 实时 十分钟级

以上述测试数据为例,一天写入50GB数据(其中23GB 为实际的内容),保存90天,平均一个月的耗费。

日志服务(LogSearch/LogAnalytics)计费规则参见按量付费,包括读写流量、索引流量、存储空间等计费项,查询功能免费。

计费项目 单价 费用(元)
读写流量 23G * 30 0.2 元/GB 138
存储空间(保存90天) 50G * 90 0.3 元/GB*Month 1350
索引流量 27G * 30 0.35 元/GB 283
总计 - - 1771

ES费用包括机器费用,及存储数据SSD云盘费用。

  • 云盘一般可以提供高可靠性,因此我们这里不计费副本存储量。
  • 存储盘一般需要预留15%剩余空间,防止空间写满,因此乘以一个1.15系数。
计费项目 单价 费用(元)
服务器 4台4核16G(三个月)(ecs.mn4.xlarge) 包年包月费用:675 元/Month 2021
存储 86 * 1.15 * 90 (这里只计算一个副本) SSD:1 元/GB*M 8901
- SATA:0.35 元/GB*M 3115
总计 5135 (SATA)12943 (SSD)

同样性能,使用LogSearch/Analytics与ELK(SSD)费用比为 13.6%。在测试过程中,我们也尝试把SSD换成SATA以节省费用(LogAnalytics与SATA版费用比为 34%),但测试发现延时会从40ms上升至150ms,在长时间读写下,查询和读写延时变得很高,无法正常工作了。

时间成本(Time to Value)

除硬件成本外,日志服务在新数据接入、搭建新业务、维护与资源扩容成本基本为0。

  • 支持各种日志处理生态,可以和Spark、Hadoop、Flink、Grafana等系统无缝对接。
  • 在全球化部署(有20+ Region),方便拓展全球化业务。
  • 提供30+日志接入SDK,与阿里云产品无缝打通集成。

日志服务采集和可视化可以参见如下文章,非核心功能不展开做比较。

功能优势

全托管服务

  • 应用性强,5分钟即可接入服务进行使用,Agent支持任意网络下数据采集。
  • LogHub覆盖Kafka 100%功能,提供完整监控、报警等功能数据,并支持弹性伸缩(可支持PB/Day规模),使用成本为自建50%以下。
  • LogSearch/Analytics 提供快速查询、仪表盘和报警功能,使用成本为自建 20%以下。
  • 提供超过30种接入方式,与云产品 (OSS/E-MapReduce/MaxCompute/Table Store/MNS/CDN/ARMS等)、开源软件(Storm、Spark)无缝对接。

image-20200716152135682

同样性能,使用LogSearch/Analytics与ELK(SSD)费用比为 13.6%。在测试过程中,我们也尝试把SSD换成SATA以节省费用(LogAnalytics与SATA版费用比为 34%),但测试发现延时会从40ms上升至150ms,在长时间读写下,查询和读写延时变得很高,无法正常工作了。

生态丰富

  • LogHub 支持30多个采集端,包括Logstash、Fluent等,无论是嵌入式设备、网页、服务器、程序等都能轻松接入。在消费端,支持与Storm、Spark Streaming、云监控等对接。
  • LogShipper 支持丰富数据格式(TextFile、SequenceFile、Parquet等),支持自定义Partition,数据可以直接被Presto、Hive、Spark、Hadoop、E-MapReduce、MaxCompute、HybridDB、DLA等处理。
  • LogSearch/Analytics 查询分析语法完整、兼容SQL92、支持JDBC协议与Grafana对接。

实时性强

  • LogHub:写入即可消费;Logtail(采集Agent)实时采集传输,1秒内到服务端(99.9%情况)。
  • LogSearch/Analytics:写入即可查询分析,在多个查询条件下1秒可查询10亿级数据,多个聚合条件下1秒可分析1亿级数据。

完整API/SDK

  • 轻松支持自定义管理及二次开发。

四 结论

建议采用现有的阿里云日志服务. 省时且费用比自建低.

五 参考

Tags:
上一篇
frp内网穿透http获取客户端真实ip

文章推荐