日志服务的loghub功能,支持通过logtail方便地进行日志应用采集。

日志管理

以下是一个典型的场景: 服务器(容器)上有很多应用产生的日志数据,生成在不同的目录下。

  • 开发会部署、下线新的应用。
  • 服务器会根据需要水平扩展,例如在高峰时增加,低峰时减少。
  • 根据不同需求,日志数据需要被查询、监控、仓库等,需求也在变化。

日志管理

过程中的挑战

  • 应用部署上线速度快、日志种类越来越多。

    每个应用都包含访问日志(Access)、操作日志(OpLog)、业务逻辑(Logic)和错误(Error)等种类。当新增应用、应用与应用之间有依赖时,日志数目也会爆发。

    以下是一个外卖网站的例子。

    分类 应用 日志名
    Web nginx wechat-nginx(微信服务器 nginx 日志)
    Web-Error nginx alipay-nginx (支付宝服务端 nginx 日志)
    nginx server-access(服务端 Access-Log)
    nginx-error alipay-nginx(nginx 错误日志)
    nginx-error ...
    Web-App tomcat alipay-app (支付宝服务端应用逻辑)
    tomcat ...
    App Mobile App deliver-app (送货员 app 状态)
    App-Error Mobile App deliver-error (错误日志)
    Web H5 web-click (H5 页面点击)
    server server 服务端内部逻辑日志
    Syslog server 服务器系统日志
  • 日志被多个需求消费。
    例如,AccessLog可以被用来计量计费、用户下载;OpLog 需要被 DBA 查询,需要做 BI、以及全链路监控等。
    日志被多个需求消费
  • 环境与变化。
    互联网节奏非常快,在现实过程中,我们需要面对业务和环境的变化。
    • 应用服务器扩容。
    • 服务器当机器。
    • 新增应用部署。
    • 新增日志消费者。

理想的管理架构

一个理想的管理架构有如下需求。

  • 架构清晰,低成本。
  • 稳定高可靠、最好是无人值守(例如自动处理增减机器)。
  • 应用部署能够标准化,不需要复杂配置。
  • 日志处理需求能够被很容易地满足。

日志服务解决方案

日志服务的loghub功能在日志接入上定义如下概念,通过logtail方便地进行日志应用采集。

  • 项目(Project):管理容器。
  • 日志库(Logstore):代表一类日志来源。
  • 机器组(MachineGroup):代表日志产生目录、格式等。
  • 日志配置(Config):标示日志产生的路径。

这些概念关系如下。

  • 一个项目包括多个Logstore,machineGroup和config,通过不同项目满足不同业务间需求。
  • 一个应用可以有多种日志,每种日志一个Logstore,每种日志有一个固定的目录产生(config 相同)。
    app --> logstore1, logstore2, logstore3
    app --> config1, config2, config3 
  • 一个应用可以部署在多个机器组上,一个机器组可以部署多个应用。
    app --> machineGroup1, mahcineGroup2
    machineGroup1 --> app1, app2,app3
  • 将配置(config)定义的收集目录、应用到机器组上,收集到任意Logstore。
    config1 * machineGroup1 --> Logstore1
    config1 * machineGroup2 --> logstore1
    config2 * machineGroup1 --> logstore2

优势

  • 便捷:提供 WebConsole/SDK 等方式进行批量管理。
  • 大规模:可以管理百万级机器和百万级应用。
  • 实时:收集配置分钟内生效。
  • 弹性
    • 通过机器标识功能支持服务器弹性扩容。
    • loghub支持弹性伸缩。
  • 稳定可靠:无需人工干预。
  • 日志处理中实时计算、离线分析、索引等查询功能。
    • 日志中枢(loghub):实时采集与消费。通过 30+ 方式实时采集海量数据、下游实时消费。
    • 日志投递(logshipper):稳定可靠的日志投递。将日志中枢数据投递至存储类服务(OSS/MaxCompute/Table Store)进行存储与大数据分析。
    • 日志查询(logsearch):实时索引、查询数据。日志统一查询,不用关心线上服务器日志位置。