全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
业务实时监控服务 ARMS

日志清洗最佳实践

更新时间:2018-01-22 00:28:40

本文介绍了日志清洗最佳实践。

ARMS 中数据清洗的作用和功能

ARMS 提供易用的实时监控解决方案。不同用户拥有不同的日志格式,以及不同日志的不同字段信息。ARMS 为适配用户日志,需要先对用户日志进行数据清洗工作。

例如,一行日志包含日期格式、商品 ID 和交易额:

2016-08-24-13:32:33|itemID=abc|amount=100

ARMS 需要知道在这行日志中,时间为 2016-08-24-13:32:33,商品 ID 为 abc,交易额为 100。清洗出以上属性后,ARMS 就可以在后续聚合计算编排中,针对这些属性进行相关场景的计算。

ARMS 将数据清洗过程抽象为通过切分日志数据形成字段(时间、字符串、数字等字段)。

ARMS 提供了两种数据清洗模式:

  • 智能切分:快速、便捷、智能

    智能生成数据清洗切分方案。对用户提供的部分日志样例进行智能分析,并推荐最优方案供用户选择。智能切分方案也可以在手动切分拖拽式界面进行微调,大大节省手动切分配置时间。

  • 手动切分:手动、全面、可控

    通过拖拽式界面配置数据清洗切分逻辑。全图形化的配置流程,让您不需要编写代码即可完成大部分监控配置任务。

关于日志格式的建议

  • 尽量保证格式一致

    同一日志源日志尽量保证格式一致,若同一日志源有多种日志,则需要使用 filter 功能过滤出需要的日志内容。

  • 使用可以识别的时间戳

    ARMS 支持多种常用时间格式(需要精确到年月日时分秒,毫秒可选)。

    手动切分中时间戳格式支持所有能转化为常用 SimpleDateFormat 时间正则表达式(如yyyy-MM-dd HH:mm:ss)的时间格式。时间正则详见 SimpleDateFormat 官方文档说明

    智能切分能识别的时间格式:

    • 支持能转化为常用 SimpleDateFormat 时间正则表达式(如 2016-8-21 23:12:53)的常见时间格式。
    • 支持 Nginx 时间格式,例如 28/Nov/2014:11:56:09 +0800。
    • 支持其他 Java SimpleDateFormat 常用格式,详见智能切分时间格式说明文档
  • 使用清晰无歧义的分隔符

    常用分隔符为空格、“|”、“;”、“,”等。

    推荐使用同种类的分隔符,这样更容易被切分器切分。

  • 字串子串等更推荐使用 JSON 格式

    日志串中含有 JSON 字串,使用 JSON 切分器处理,更易于清洗数据。 日志中 JSON 串需为有引号的标准 JSON 格式,且不能含有换行符。

自定义切分的使用方法

具体参考文档自定义清洗的使用

本文导读目录