You need to enable JavaScript to run this app.
导航

采集日志数据

最近更新时间2024.01.31 14:28:26

首次发布时间2022.05.12 11:20:02

本文以单行全文模式为例,介绍如何通过日志服务控制台采集火山引擎云服务器 ECS 日志。

前提条件

  • 一台符合环境要求的 Linux 服务器设备。支持的操作系统版本请参考安装环境
  • 已创建日志项目和日志主题。详细步骤请参考创建资源

1 安装 LogCollector

LogCollector 是日志服务的采集客户端,通过 LogCollector 可实现快速无侵入式地把日志数据采集到日志服务中,具体安装步骤如下。

1.1 下载 LogCollector

例如日志服务所在地域为华北2(北京),下载和安装路径为 /usr/local/,执行以下命令下载 LogCollector 安装包并解压缩。

说明

  • 推荐使用私网下载地址,节约公网流量费用。
  • 其他地域下载 LogCollector,可以在下载命令中替换地域 ID 部分,也可以参考下载 LogCollector,直接复制对应地域的下载命令。
wget https://logcollector-cn-beijing.tos-cn-beijing.volces.com/logcollector.sh && bash ./logcollector.sh cn-beijing && cd /usr/local/filebeat-7.12.0

1.2 安装 LogCollector

在安装路径下打开目录 filebeat-7.12.0/tools,执行以下命令安装 LogCollector。

cd /usr/local/filebeat-7.12.0/tools && ./filebeat.sh install

1.3 初始化 LogCollector

在安装路径下的目录 filebeat-7.12.0/tools中,以 root 权限执行 LogCollector 初始化命令。
初始化命令如下:

./filebeat.sh init --endpoint https://tls-cn-beijing.ivolces.com --secret_id AKIDc9YlmrBcFk4C8sbmXQ8i65********** --secret_key LUSE4nPK1d4tX5SHyXv6tZ********** --region cn-beijing

其中,endpointsecret_idsecret_keyregion 为必选参数,详细说明如下。

参数

是否必选

示例

说明

endpoint

必选

https://tls-cn-beijing.ivolces.com

日志服务连接域名,即服务地址。
登录日志服务控制台后,在日志项目的详情页中查看连接域名。日志服务支持的地域及对应服务地址请参考服务入口

secret_id

必选

AK********

火山引擎主账号或子账号的 Access Key ID。
在火山引擎控制台密钥管理页面,根据页面提示查看并复制 Access Key ID。

secret_key

必选

TUdZ********

火山引擎主账号或子账号的 Secret Access Key。
在火山引擎控制台密钥管理页面,根据页面提示查看并复制 Secret Access Key。

region

必选

cn-beijing

日志项目所在的地域(Region)。
日志服务地域及对应 ID 请参考服务入口

compress_type

可选

none

指定 LogCollector 通过哪种方式来压缩日志。

  • none:不压缩。
  • lz4:(默认)lz4压缩。

ip

可选

10.1.1.*

机器的 IP 标识。若不填写,LogCollector 会自动获取本机的 IP 地址,您可以在安装路径下 filebeat.yml 文件中查看 ip 字段记录的IP地址。
不支持同时设置 iplabel

label

可选

http_module

机器的自定义标识。
如果需要将此机器加入机器标识类型的机器组中,则需要填写机器标识。多个标识之间通过逗号(,)分隔。
不支持同时设置 iplabel

1.4 启动 LogCollector

执行以下命令启动 LogCollector。

systemctl start filebeatd.service

2 创建机器组

  1. 登录日志服务控制台

  2. 在左侧目录中选择日志服务 > 机器组管理

  3. 机器组管理页面单击创建机器组

  4. 填写机器组的基本信息,并单击确定

    参数

    说明

    机器组名称

    机器组的名称。需要满足以下要求。

    • 只支持小写英文字母、数字、连字符(-)和中文。
    • 必须以小写英文字母、数字或中文开头或结尾。
    • 长度为 3~63 个字符。

    机器组类型

    机器组的类型,此处以IP地址为例。

    机器IP

    服务器 IP 地址。

    说明

    • 请填写 LogCollector 获取的服务器 IP 地址。获取 IP 地址的方式请查看创建机器组(IP 地址)
    • 机器组中添加多台机器时,IP 地址之间以中文逗号、英文逗号、空格或换行符分隔。
    • 暂不支持 Windows 系统的服务器。

    LogCollector服务日志

    是否开启 LogCollector 服务日志功能。开启后,LogCollector 客户端在运行过程中会实时记录运行状态和采集进度等信息。
    详细说明请参考服务日志

    LogCollector自动升级

    机器组服务器中安装的 LogCollector 是否开启自动升级功能。

    • 开启:日志服务将会在每天的指定时间段进行升级前检查,若满足升级条件,则自动升级 LogCollector,无需手动操作。
    • 关闭:LogCollector 不自动升级,如需使用更高版本的 LogCollector,请参考升级 LogCollector操作。

    说明

    仅 LogCollector V1.0.8 及后续版本支持自动升级。

    自动升级时间

    LogCollector 的自动升级时间。

    说明

    • 仅在LogCollector自动升级为启用状态时需要设置。
    • 自动升级时间建议设置为业务低峰期,自动升级过程中可能会重启 LogCollector,但不会丢失日志。

    所属项目

    在下拉列表里选择当前创建的机器组所属的 IAM 项目。
    如果您尚未创建任何 IAM 项目,或没有合适的 IAM 项目以供选择,可以单击创建新项目创建一个新的 IAM 项目。未指定 IAM 项目时,日志服务会将机器组添加到名为 default 的 IAM 项目中。

说明

在机器组中添加服务器后,服务器心跳状态会短暂显示为异常,直到 LogCollector 成功向日志服务上报心跳状态。如果服务器心跳状态异常持续 1 分钟以上,建议参考机器组心跳问题排查逐步排查处理。

3 创建采集配置

本文档以单行全文模式为例,介绍控制台创建采集配置的操作步骤。

3.1 填写初始配置

  1. 登录日志服务控制台
  2. 在顶部导航栏中选择日志服务所在的地域。
  3. 在左侧导航栏中选择日志服务 > 日志项目管理,并单击指定的日志项目名称。
  4. 在左侧导航栏中单击日志接入
  5. LogCollector日志采集区域选择日志采集的模式。
  6. 填写初始配置。
    1. 选择日志主题。
      选择日志主题,采集到的日志数据会存储在指定主题中,以日志主题为维度进行查询和分析。 如果没有合适的日志主题,可以根据页面提示创建新的日志主题。
    2. 配置机器组。
      全部机器组区域中选择需要采集日志的机器组,并在已选机器组区域中确认选择的机器组是否正确。
    3. 单击下一步

3.2 配置采集规则

  1. 填写规则名称
    规则名称即 LogCollector 采集配置的名称。需要满足以下要求:

    • 只支持小写英文字母、中文、数字和连字符(-)。
    • 必须以小写英文字母、中文、数字开头或结尾。
    • 长度为 3~63 个字符。
      您也可以单击导入其他采集配置,选择日志Region日志项目采集配置,将已创建的其他采集配置导入到当前新配置中。新配置的采集规则默认和指定配置相同,您只需要指定采集规则名称即可。
  2. 选择是否启用容器日志采集
    采集宿主机日志及 Sidecar 方式采集容器日志时,此配置应维持默认的关闭状态。

  3. 填写采集路径
    采集路径即日志所在的目录和文件名,LogCollector 会按照采集路径中的目录部分匹配符合规则的目录,监听这些目录下符合规则的日志文件。最多设置 10 个不同的采集路径。
    采集路径可以指定完整的目录和文件名,也可以通过通配符模糊匹配。

    说明

    • 默认情况下,一个日志文件只能被采集到一个日志主题中,且只能匹配一个采集配置,如果多个采集配置重复采集同一个文件,则以最新的采集配置规则为准。如果一个文件需要被采集多份,建议为源文件创建多个软链接,不同的日志主题采集不同的软链接。
    • 日志采集路径中指定通配符**时,表示多层目录匹配,仅在此时,日志服务才会监听指定目录下深至8级的子目录。
    • 日志服务目前支持的通配符包括星号*、双星号**和半角问号?。双星号**最多只能配置一个。

    常见的采集路径的配置方式及示例如下。

    配置方式

    日志路径示例

    说明

    完整名称

    /var/log/access.log

    指定完整的目录和文件名,不包含通配符,表示监听指定目录下的指定文件,不监听其子目录。
    例如,左侧示例表示监听 /var/log 目录下名为 access.log 的日志文件。

    文件名模糊匹配

    /var/log/*.log

    不指定文件名,表示监听所有日志文件;指定部分文件名规则,表示监听符合规则的部分文件。
    例如,左侧示例表示监听 /var/log 目录下,文件格式为 .log 的日志文件。

    路径模糊匹配

    /var/log/**/access.log
    /var/log/*/access.log

    通过*模糊匹配路径时,仅监听一级目录中的日志文件;通过**模糊匹配路径时,表示监听一级及其子目录下的日志文件,目录深度最大为 8。
    例如,/var/log/**/access.log 表示监听 /var/log 目录及其子目录下名为 access.log 的日志文件,目录深度最大为 8。

  4. 设置采集黑名单
    配置采集路径黑名单之后,日志服务通过 LogCollector 采集日志时,会忽略指定的目录和文件。选择启用后,请根据页面提示设置黑名单目录和文件。

    说明

    • 每个采集配置中最多设置 10 条采集路径黑名单。
    • 如果您在配置日志路径时使用了通配符,但又需要过滤掉其中部分目录或文件时,需要在黑名单中填写对应的完整路径或文件名来保证过滤生效。例如采集路径为/var/log/project/*.log,需要过滤其中/var/log/project目录下的所有子目录,则采集路径黑名单应设置为目录路径,配置路径为/var/log/project/**

    采集路径黑名单中的路径类型支持设置为目录路径文件路径

    配置

    说明

    目录路径

    采集时忽略指定的目录。目录路径支持完整匹配和通配符模式匹配。

    • 完整匹配:指定完整的目录名称,例如 /var/log/mydata/new
    • 通配符匹配:目录中包含通配符,支持的通配符包括星号(*)和半角问号(?)。例如 /var/log/mydata/n* 表示不采集目录 /var/log/mydata/ 下以 n 开头的目录。

    文件路径

    采集时忽略指定的文件,需配置文件路径及文件名。文件路径支持完整匹配和通配符模式匹配。

    • 完整匹配:指定完整的路径及文件名称,例如 /var/log/mydata/access.log
    • 通配符匹配:路径及文件名中包含通配符,支持的通配符包括星号(*)半角问号(?)和双星号(**)。通配符中,双星号(**)最多只能配置一个。例如 /data/nginx/log/*/*/access.log 表示不采集目录 /data/nginx/log 及其一级和二级目录中名为 access.log 的日志文件。

    图片

  5. 设置采集策略
    采集策略表示 LogCollector 采集增量日志还是全量日志。默认为增量日志。

    配置

    说明

    全量

    LogCollector 从每个文档的起始位置开始采集日志,此时 LogCollector 会采集历史日志数据。

    增量

    LogCollector 采集日志时,只采集文件内新增的内容。监控范围内的日志文件写入新的日志时,触发 LogCollector 日志采集行为。对于首次采集的日志文件:

    • 如果新文件不超过 1024 KiB,从新文件的起始位置开始首次采集。
    • 如果新文件大于 1024 KiB,从新文件的末尾位置开始首次采集,即仅采集增量日志。

    图片

  6. 指定采集模式
    LogCollector 解析日志文件的模式,本文以单行全文模式为例。
    在单行全文模式下,以 \n 作为一条日志的结束符,每行日志都会被封装到字段 __content__ 中。原始日志本身不再进行结构化处理。

  7. (可选)启用插件配置
    通过 LogCollector 采集文本日志时,如果业务日志结构复杂、格式不固定,无法通过 JSON 模式等常规的日志采集模式进行解析时,可以通过 LogCollector 插件进行采集后处理。详细说明请参考插件概述

  8. (可选)启用高级设置
    请根据您的需求选择高级配置。如果没有特殊需求,建议保持默认配置。

    配置

    说明

    过滤器

    是否开启日志字段过滤规则。默认为关闭状态。开启后,通过正则表达式配置过滤规则,完全匹配正则表达式的日志才会被采集上报,帮助您筛选出有价值的日志数据。
    图片

    上传解析失败日志

    是否上传解析失败的日志,默认为关闭状态。

    • 开启:所有解析失败的日志,均以指定字段作为键名称(Key),原始日志内容作为值(Value)上传到日志服务。其中键名称可以通过失败日志键名称指定,默认为 LogParseFailed
    • 关闭:解析失败的日志不上传到日志服务。

    图片

    上传hostname字段

    是否上传 hostname 字段,默认为关闭状态。

    • 开启:在原始日志中增加一个字段,用于记录日志源的 hostname。字段名可以通过 hostname键名称指定,默认为 hostname
    • 关闭:不添加 hostname 字段。

    图片

    解析采集路径

    通过正则表达式提取采集路径中的字段,并将其作为元数据添加到日志数据中。此功能默认为关闭状态。
    开启此功能后,您需要设置采集路径样例、提取正则表达式和提取结果。

    • 采集路径样例:实际场景的采集路径样例。
      • 采集路径样例必须是一个绝对路径。
      • 路径样例中不能包含通配符*?**
    • 提取正则表达式:用于提取路径字段的正则表达式。必须和采集路径样例匹配,否则无法成功提取。
    • 提取结果:提取结果中展示日志服务根据正则表达式将路径样例解析并提取到的每个字段值(Value)。您需要为每个字段指定字段名称(Key)。
      • 最多配置 100 个字段名。
      • 字段名不可为空,且不可重复。

    图片

    HashKey路由Shard

    指定 HashKey 将数据写入到符合范围要求的日志分区。此功能默认为关闭状态。

    • 开启此功能,表示使用 HashKey 路由 Shard 模式采集数据,将数据有序写入到指定 Shard 中。适用于数据写入和消费对有序性要求较高的场景。 此时需要设置 HashKey,日志服务会将数据写入到包含该 Key 值的 Shard 中。HashKey 的取值范围为 [00000000000000000000000000000000-ffffffffffffffffffffffffffffffff)。
    • 关闭此功能,表示使用负载均衡模式采集数据,自动根据负载均衡原则将数据包写入当前可用的任一 Shard 中。该模式适用于写入和消费行为与 Shard 无关的场景,例如不保序。

    图片

    上传原始日志

    是否将原始日志作为一个字段上传到日志服务,默认为关闭状态。

    • 开启:原始的日志数据将被封装在指定字段中,和解析后的日志数据一起上传到日志服务中。字段名可以通过原始日志键名称指定,默认为 __raw__
    • 关闭:不添加原始日志字段。

    图片

    上传常量字段

    开启后,LogCollector 会将指定字段的 Key 和 Value 封装到每一条日志中。常量字段需遵循以下限制:

    • 支持上传最多 5 个常量字段。
    • 字段名(Key)不可重复,不可为空。长度限制为 1~128 字符,包括英文字母、数字、和特殊字符(-_./),且不能以下划线开头。
    • 字段值(Value)不可为空,长度最大为 512 KiB。

    图片

    扩展配置

    LogCollector 扩展配置,JSON 对象格式。目前支持的参数包括 CloseInactive、CloseRemoved、CloseRenamed、CloseEOF 和 CloseTimeout。详细的参数说明请参考 Advanced
    例如填写以下配置,表示日志文件持续 10 秒没有新日志写入、日志文件被移除或重命名、LogCollector 读取至文件末尾、日志文件监控时长超过 30 分钟后,释放文件句柄。
    图片

  9. 确认采集配置,并单击下一步

后续操作

配置索引之后,您才能在控制台中实时预览采集到的日志数据,或进行日志检索与分析。详细操作请参考配置索引