跳转至

日志采集


观测云拥有全面的日志采集能力,主要分成主机日志采集和 K8S 容器日志采集,两者 DataKit 的安装方式不同,日志采集的方式也不尽相同。采集的日志数据统一汇总到观测云进行统一存储、搜索和分析,帮助我们快速定位问题并解决问题。

本文主要介绍如何在主机环境下采集日志,关于在 K8S 环境采集日志可参考最佳实践 Kubernetes 集群中日志采集的几种玩法

前置条件

安装 DataKit

或者您也可以登录 观测云,在集成 > DataKit,根据主机系统选择 Linux、Windows、MacOS,获取 DataKit 安装指令和安装步骤。

日志采集器配置

DataKit 安装完成后,您可以通过开启标准日志采集或者自定义日志采集两种方式,对来自于系统日志、应用日志如 Nginx、Redis、Docker、ES 等多种日志数据进行日志采集。

进入 DataKit 安装目录下的 conf.d/log 目录,复制 logging.conf.sample 并命名为 logging.conf 进行配置。配置完成后,重启 DataKit 即可生效。

详情可参考主机日志采集

通过开启观测云支持的标准日志采集器,如 NginxRedisES 等,您可以一键开启日志采集。

注意

配置日志采集器时,需开通日志的 Pipeline 功能,提取日志时间 time 和日志等级 status 的字段:

  • time:日志的产生时间,如果没有提取 time 字段或解析此字段失败,默认使用系统当前时间;
  • status:日志的等级,如果没有提取出 status 字段,则默认将 stauts 置为 unknown

更多详情可参考文档 Pipeline 配置和使用

日志数据存储

日志采集器配置完成后,重启 DataKit,日志数据就可以统一上报到观测云工作空间。

  • 对于日志数据量比较多的用户来说,我们可以通过配置 日志索引 或者 日志黑名单 来节约数据存储费用;
  • 对于需要日志长久存储的用户来说,我们可以通过 日志备份来保存日志数据。
大时间偏差数据写入

❓ 写入时间戳与当前时间存在显著偏差的数据时,会损害存储引擎中数据块的 min-max 索引效率。这导致即使查询一个很小的时间范围,也可能需要扫描大量数据块,从而严重降低查询性能。

❗ 为缓解此问题,系统默认会在写入时过滤掉时间戳与当前时间偏差超过 12 小时的数据点(仅丢弃超时数据点,而非整个数据包)。此机制有助于维护索引的有效性,提升查询效率。

Kodo-X 增加配置:

kodo-x.yaml:添加 3 个参数 enable_discard_expired_data:是否开启丢弃时间偏差大数据,默认开启 discard_expired_seconds:时间偏差大的判断标准,默认值 12 小时

global:
   enable_discard_expired_data: true
   discard_expired_seconds: 12 * 3600

discard_data_type:丢弃的数据类型,默认值:

DiscardDataType: map[string]bool{
                // "metering": true,
                // "TAE":      true,
                // "AE":       true,
                "B":  true,
                "CO": true,
                "D":  true,
                "E":  true,
                "EL": true,
                "L":  true,
                // "NM":       true,
                "N":  true,
                "OH": true,
                "O":  true,
                "P":  true,
                // "RM":       true,
                "R": true,
                "S": true,
                // "TM":       true,
                "T": true,
            },

文档评价

文档内容是否对您有帮助? ×