阅读420 返回首页    go 微信


采集-日志管理__最佳实践_日志服务-阿里云

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

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

display

过程中挑战

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

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

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

分类 应用 日志名
Web nginx wechat-nginx (微信服务器nginx日志)
nginx alipay-nginx (支付宝服务端nginx日志)
nginx server-access(服务端Access-Log)
Web-Error 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 服务器系统日志

2. 日志被多个需求消费

例如AccessLog可以被用来计量计费、用户下载;OpLog需要被DBA查询,需要做BI、以及全链路监控等

consumer2

3. 环境与变化

互联网节奏非常快,在现实过程中,我们需要面对业务和环境的变化:

  • 应用服务器扩容
  • 服务器当机器
  • 新增应用部署
  • 新增日志消费者

一个理想管理架构有哪些需求

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

日志服务如何做?

日志服务LogHub功能在日志接入上定义如下概念,通过Logtail方便管日志应用采集:

这些概念关系如下:

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

    除此之外有哪些优势?

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

最后更新:2016-11-24 11:23:49

  上一篇:go 采集-多渠道数据__最佳实践_日志服务-阿里云
  下一篇:go 采集-公网数据__最佳实践_日志服务-阿里云