如何通过Vector采集夜莺日志并推送至VictoriaLogs?
摘要:导读 VictoriaLogs 是一款高性能、低成本的时序数据库,广泛应用于监控和日志存储场景。Vector 是一个开源的日志和指标收集工具,支持多种数据源和目标。本文将介绍如何使用 Vector 采集夜莺(Nightingale)日志并推
导读
VictoriaLogs 是一款高性能、低成本的时序数据库,广泛应用于监控和日志存储场景。Vector 是一个开源的日志和指标收集工具,支持多种数据源和目标。本文将介绍如何使用 Vector 采集夜莺(Nightingale)日志并推送给 VictoriaLogs,实现高效的日志管理和分析。
为了方便演示,所有模块均采用容器化部署。
本文大纲如下(本文兼顾新手,如果你是经验丰富的用户,也可以直接跳到相关章节):
组件(Vector、VictoriaLogs、Nightingale)简介
环境准备
配置并启动 Nightingale
配置并启动 VictoriaLogs
配置并启动 Vector
验证日志采集效果
Vector 简介
Vector 是高性能的可观测数据采集与处理组件,支持多种输入(文件、容器日志、syslog 等)、转换(VRL/Remap)以及多种输出(HTTP、Kafka、Elasticsearch 等)。
本文选择 Vector 作为日志采集器,因为 Vector 是 Rust 编写,相对比较轻量,且性能优异。当然,你也可以选择 Fluent Bit、Filebeat 等其他采集工具,在我的演示场景下无关紧要。
VictoriaLogs 简介
VictoriaMetrics 的指标存储查询能力有目共睹,该公司推出的 VictoriaLogs 则是专门针对日志存储和查询设计,前段时间也推出了集群版本,本文就尝个鲜,用 VictoriaLogs 来存储和查询日志。
Nightingale 简介
Nightingale(夜莺)是一个开源的监控系统,侧重点是做统一的告警引擎以及告警事件的 Pipeline 处理。夜莺可以对接多种数据源,根据用户配置的告警规则进行告警,最新版本也支持了 VictoriaLogs 作为数据源,既可以对 VictoriaLogs 中的日志进行告警。
我们要演示日志采集,自然需要有个源端产生日志,夜莺本身就会产生日志,那就用它来做日志源吧。
环境准备
我是在 Mac 上面启动了一个 Ubuntu 虚拟机,ARM64 架构,安装了 Docker 和 Docker Compose,其他 Linux 发行版也类似。
root@ubuntu:~# uname -a
Linux ubuntu 6.17.8-orbstack-00308-g8f9c941121b1 #1 SMP PREEMPT Thu Nov 20 09:34:02 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
root@ubuntu:~# docker --version
Docker version 29.1.3, build f52814d
配置并启动 Nightingale
Nightingale 提供了 Docker compose,我们直接下载发布包:
https://github.com/ccfos/nightingale/releases
这里我采用最新版本 v8.5.0。下载 tar.gz 并解压缩,进入 docker/compose-bridge 目录,里边可以看到 docker-compose.yml 文件。不过先不要启动,为了测试方便,我要修改一下 Nightingale 的配置文件,把日志输出到某个特定目录,不和 stdout 内容混在一起。
