Vector是一个轻量级的高性能数据采集和数据转换工具,鸿鹄提供了Vector数据源适配,可以通过配置Vector采集器,将各种不同数据源的数据快速采集,导入鸿鹄。
本文以监听UDP端口采集syslog日志为例,阐述如何快速使用 Vector ,将日志导入指定的鸿鹄数据集。
先决条件
1、需要存储日志的数据集已经新建成功。关于如何新建数据集,可以参考鸿鹄使用手册相关章节。
2、鸿鹄安装的主机,安装 Vector 采集器。具体的 Vector 采集器安装指南,可以参考Vector 官方文档。在安装完 Vector 之后,需要重启 Terminal 窗口,开启新的 Shell Session,才能保证 Vector 所需的环境变量被加载。
3、确保 Syslog 数据源所在主机到 Vector 采集器安装主机的网络连通,并且确保 Vector 采集器所在主机的 UDP 540 端口可用。在本文例子中,我们监听 UDP 540 端口来收取 syslog,端口号可以根据实际项目按需修改。
具体步骤
1、将存储 syslog 日志的数据集添加到system_default_vector_input的数据集白名单中:
登录鸿鹄之后,点击左侧菜单的“数据导入” - “外部数据源导入”导航按钮,进入“外部数据源导入” 页面,点击system_default_vector_input行的“编辑”按钮,编辑默认vector数据源的数据集白名单。
将存储 syslog 的数据集添加到数据集范围。在我们的例子中,我们会将 syslog 导入到 syslog_tutorial 数据集。
2、下载 vector 配置模板:
进入鸿鹄“数据导入” - “外部数据源导入” 页面,点击system_default_vector_input行的“下载配置模板”按钮。选择数据源类型为“syslog”,要导入的数据集名称我们选择“syslog_tutorial”。注意:数据集名称可以根据实际情况调整,但是数据源类型一定要选择“syslog”。
下载VECTOR配置模板
将模板下载保存到 Vector 安装的主机。在我们的样例中,我们将配置文件保存到$HOME/gdi_syslog_demo.toml。
3、编辑 vector 配置文件,添加 syslog source
使用文本编辑器打开$HOME/gdi_syslog_demo.toml。将文件修改成如下内容。
ⅰ修改sources.vector_input_config section的内容,设置 syslog source,在本文样例中,我们使用udp 540端口接受syslog
ⅱ在 transforms.transform_fields 部分,修改host解析,设置正确的 _host 字段
ⅲ在 sinks.honghu 部分,修改ip 地址为 127.0.0.1, 因为 Vector 安装于鸿鹄本机,所以需要将数据发送到本机的20000 tcp 端口。
注意:
鸿鹄system_default_vector_input使用tcp 20000端口接收数据,请不要修改模板当中的端口。
鸿鹄安装时会检测20000端口是否可用,如果数据无法进入鸿鹄,请检查鸿鹄所在主机的20000端口是否被鸿鹄绑定。
保存配置文件
4、启动 vector, 开始监听540端口的syslog。
如果启动成功,将看到如下的日志,可以看到 540 端口已经监听。
...
2022-12-05T08:09:09.506672Z INFO source{component_kind="source" component_id=vector_input_config component_type=socket component_name=vector_input_config}: vector::sources::socket::udp: Listening. address=0.0.0.0:540
2022-12-05T08:09:09.510473Z INFO vector::topology::builder: Healthcheck: Passed.
我们可以向本机的 UDP 540 端口发送 syslog,并且验证能够正确导入数据。
在本文的例子中,我们使用remote_syslog2工具模拟一些syslog发送到 540 端口。你也可以配置上游的syslog server,将数据发送到 vector。
需要注意,一定要保证 vector 服务正在运行,才能够接收 syslog,完成解析并且发送到鸿鹄。
remote_syslog2 相关的安装文档可以参考官方文档
1、新建测试日志数据文件 test.log, 将如下内容写入文件
2、使用如下命令,监听 my_syslog.log 文件,将文件中的内容通过 syslog 协议发送到 vector 监听的 540 端口。
如果启动成功,会看到如下的日志
2022-12-05 08:32:41 INFO remote_syslog.go:51 Connecting to 127.0.0.1:540 over udp
2022-12-05 08:32:41 INFO remote_syslog.go:199 Forwarding file: my_syslog.log
3、把 test.log 的内容写入 my_syslog.log
4、浏览器打开鸿鹄“查询” —— “高阶查询”页面, 输入SQL , 点击“查询”
验证数据导入成功。
注意:搜索的时候一定选择正确的时间范围,确保导入的访问日志在查询的时间范围内。
本文讲述如何合理配置 vector 采集器的输入source,监听 UDP 端口,将 syslog 日志导入鸿鹄。
使用鸿鹄 vector 外部数据源导入数据的功能,可以方便的利用 vector 采集工具,对接各种不同的数据,快速导入鸿鹄。
更多 vector 的数据源配置,可以参考vector数据源配置
只要 vector 支持的数据源类型,都可以通过类似的方法,快速的接入鸿鹄。