通过Vector导入数据
通过Vector将外部系统中数据导入鸿鹄。
通过Vector导入数据说明
炎凰数据平台内置了名为system_default_vector_input
的数据源供外部Vector导入数据使用。
配置可导入数据集范围
默认情况下,内置的system_default_vector_input
数据源无法导入任何数据。
用户需要点击编辑
按钮,添加允许导入的数据集范围,保存后外部Vector数据方可导入数据到数据集范围内的任意数据集里面。
数据集范围可以选择多个允许导入的数据集,作为白名单。也可以新建数据集,同时添加到白名单中。
设置并下载 Vector 的配置文件
配置完数据集范围后,点击system_default_vector_input
条目的下载配置模板
按钮。
在弹出的模态框中,选择需要导入的数据集及数据源类型,并下载Vector配置文件模板。
将下载模板文件中$vector_source_config$
替换为实际Vector数据源配置。
安装 Vector 采集器:
需要在待采集数据的终端设备上,安装 Vector 数据采集器。 使用安装脚本自动检测并安装相应的 Vector 版本。更多安装说明参见Vector安装。
curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | bash
Vector 的 sources
根据不同数据源类型,选用数据源相应的插件进行配置。transforms
中使用remap
,配置炎凰数据平台需要的参数和字段。最后在sinks
中,将发送数据到炎凰数据平台的数据源。
更多的 Vector 配置文档,可以参考 Vector 官方文档。
以下以监控服务器上的accesslog文件为例,对各个参数的设置进行说明。
- 创建如下的 Vector 配置 TOML 文件。
[sources.demo_access_log]
type = "file"
include = [ "/var/log/access.log" ]
read_from = "beginning"
host_key = "_host"
file_key = "_source"
data_dir = "/var/vector/"
[transforms.transform_fields]
inputs = ["demo_access_log"]
type = "remap"
source = '''
._datatype = "nginx.access_log"
._target_table = "test_nginx"
'''
[sinks.honghu]
type = "vector"
inputs = [ "transform_fields" ]
address = "<Honghu Server IP>:20000"
version = "2"
sources
中使用file
监听位于/var/log/access.log
的 Nginx 服务器的 access log 文件。- 设置炎凰数据平台的元字段,
_source
为文件路径名,_host
为文件所在主机名
- 设置炎凰数据平台的元字段,
transforms
中配置导入炎凰数据平台的元字段信息- 设置
_datatype
字段为nginx.access_log
,标记数据类型为 Nginx Access Log 格式。保证在查询的时候,日志的字段能够被正确解析提取。 - 设置
_target_table
字段为test_nginx
,作为数据导入的目标数据集
- 设置
sinks
中使用vector
,将数据发送到炎凰数据平台中创建的数据源address
为炎凰数据平台服务端地址和数据源创建时配置的端口version
必须设置为 2
使用vector导入数据时,对于使用数据源类型进行字段抽取,有一定限制:
- 自定义ingestion time数据源类型:暂不支持自定义ingestion time数据源类型的字段抽取,因此配置的
ingestion_time_extraction
、ingestion_time_field_names
数据源类型属性,在通过vector导入数据时无法生效。 - csv数据源类型:暂不支持对csv数据源类型的字段抽取,对于导入的数据指定
_datatype
为csv
将无法生效。 - 多行文本合并: 暂不支持导入时做多行文本合并,对于导入的数据,配置的
firstline_format
数据源类型属性将无法生效。 - 丢弃
_message
字段: 暂不支持导入时对_message
字段做丢弃处理,对于导入的数据,配置的discard_raw_message
数据源类型属性将无法生效。