数据采集概述

日志服务的数据采集支持多种采集方式与数据类型。本文将介绍如何选择不同来源数据的采集方式。

数据采集方式

数据采集作为使用日志服务功能的第一步,目的是将目标数据传输并保存到日志服务中,以便后续使用日志服务的其他功能。例如对数据进行查询与分析,对数据格式与内容进行数据加工处理,将数据消费投递到第三方系统等。

重要

日志服务提供的采集方式仅支持采集增量数据,若需要历史数据请使用数据导入

概念介绍:

  • LoongCollector(原Logtail):Logtail是日志服务提供的日志采集Agent,用于采集阿里云ECS、自建IDC或其他云厂商等服务器上的日志。Logtail基于日志文件采集,无需修改应用程序代码,且采集日志不会影响应用程序运行。LoongCollector是日志服务推出的新一代采集Agent,是Logtail的升级版,兼容Logtail的同时性能更佳。

  • SDK采集:日志服务支持直接使用SDK/API等方式在代码中进行定制化开发,相比其他方式灵活性更高。

Kubernetes环境下的采集方案

当企业应用部署在Kubernetes环境下,使用阿里云日志服务进行采集时请参考如下内容:

主机/服务器中数据采集方案

当企业应用部署在阿里云ECS,自建服务器或其他云服务器等主机环境下,使用阿里云日志服务进行采集时请参考如下内容:

  • 主机文本日志采集:对于应用日志支持多种解析格式,如Nginx,JSON,Apache,IIS,分隔符等,需要重点注意不同服务器与日志服务Project的关系,会影响日志服务采集器的安装方式。

  • 采集主机监控数据(Metric):支持采集主机CPU、内存、负载、磁盘、网络等监控数据。

  • Trace接入方案:根据应用代码语言类型选择接入Trace方式,支持Java,Golang,Python,Node.js,C#,Rust,Ruby,Android,iOS,C++,Flutter,PHP等多种语言。

  • 采集Windows事件日志:Windows事件日志采用发布订阅的模式,应用程序或者内核将事件日志发布到指定的通道,日志服务调用Windows API订阅这些通道,从而持续获取相关事件日志。

Docker数据采集方案

  • 采集Docker容器日志(标准输出/文件):采集 Docker 容器的标准输出(stdout/stderr)和容器内文本日志文件。

  • Trace接入方案:根据应用代码语言类型选择接入Trace方式,支持Java,Golang,Python,Node.js,C#,Rust,Ruby,Android,iOS,C++,Flutter,PHP等多种语言。

  • 采集Docker事件:采集Docker事件信息,其中包含容器、镜像、插件、网络、存储等交互事件。

阿里云云产品数据采集方案

云产品日志采集:日志服务支持采集弹性计算、存储服务、安全、数据库等多种阿里云云产品的日志数据,包括云产品的操作信息、运行状况、业务动态等信息。

中间件数据采集方案

与现有三方生态集成

  • 集成其他开源Agent与协议采集日志:支持如下方式。

    • 使用LoggieSink配置,将采集到的日志上传到日志服务。

    • 使用Log4j2 Appender将日志采集到日志服务。

    • 使用Syslog-ng采集日志并通过Syslog协议上传。

    • 使用Kafka Producer SDK、Beats系列软件、Collectd、Fluentd、Logstash、Telegraf、Vector等采集工具采集日志,并通过Kafka协议上传到日志服务。

  • 接入Trace数据:日志服务支持OpenTelemetry Trace数据的原生接入,还支持通过其他Trace系统接入Trace数据。

  • 接入Telegraf监控:日志服务支持将Telegraf采集的监控数据(MySQL监控数据、Redis监控数据、Elasticsearch监控数据、Clickhouse监控数据、Kafka监控数据、Tomcat监控数据等)通过InfluxDB协议写入LoongCollector(原Logtail),再将监控数据上传到日志服务。

  • 采集Open-Falcon监控数据:配置TransferOpen-Falcon数据上传至日志服务,Open-Falcon版本需包含Influxdb support功能。

  • 通过Remote Write协议接入Prometheus监控数据:日志服务支持PrometheusRemote Write协议,只需要在Prometheus中启动Remote Write功能即可采集数据到日志服务。

SDK采集

SDK采集:日志服务支持Java、Python、PHP、Node.js、C、Go、iOS、Android、C++等语言的SDK采集。不仅可以写入日志数据,也可以通过SDK写入时序数据

数据导入

支持将已有的其他数据导入到日志服务进行分析,包括其他应用数据与历史文件数据。

数据脱敏/传输加密能力

  • 数据传输加密:日志服务支持通过密钥管理服务KMS对数据进行加密存储,同时支持基于SSL/TLSHTTPS加密传输。

  • 数据处理:对日志数据进行格式化处理,根据数据传输流程阶段有以下三种数据处理方式。

采集相关文档

  1. 跨地域采集日志:应用部署在地域A,日志服务Project部署在地域B。该方案解决如何将地域AECS实例中的日志数据发送到地域BProject中。

  2. 跨阿里云账号采集日志:应用A使用账号A的日志服务,应用B使用账号B的日志服务,现计划将应用AB的日志集中采集到账号A下管理。

  3. 采集-IoT/嵌入式日志:智能路由器、各种电视棒、天猫精灵、扫地机器人等IoT设备应用数目多、分布广,难以调试且硬件受限,该方案解决如何处理IoT设备日志的问题。

  4. 采集客户端数据的高可用方案:针对单集群故障风险,提供双写方案和数据加工复制+写入切换方案两种异地多活的客户端数据采集方案。

  5. 采集企业内网服务器日志:服务器部署在企业内网中且没有公网访问权限,可通过代理模式将这些服务器的日志采集到日志服务。

更多方案可参考最佳实践

常见问题