VictoriaLogs 搭建Syslog日志收集存储系统
本文最后更新于 2025年2月14日 下午
为什么要用VictoriaLogs ?
与Elasticsearch /Grafana Loki 相比几十倍的CPU/内存/存储资源占用的差距,能极大的节省硬件资源。
单体软件可以实现ELK的Web查询、日志压缩存储、syslog 日志接收。
官方文档:https://docs.victoriametrics.com/victorialogs/quickstart/
具体优势
VictoriaLogs 和 Elasticsearch (ES) 都是用于日志管理的工具,各有其优势,具体取决于使用场景和需求。以下是它们在存储方面的一些优势对比:
VictoriaLogs 的优势:
资源效率:VictoriaLogs 通常设计为资源高效型,在内存和存储的使用上可能更为节省。
高压缩率:其存储引擎可能使用更高效的数据压缩技术,减小存储空间需求。
简单部署和管理:VictoriaLogs 通常易于部署和管理,适合小型团队或不需要复杂功能的用户。
面向特定日志场景优化:如果你的需求与其优化场景一致,可能会体验到出色的性能。
Elasticsearch 的优势:
成熟度和社区支持:ES 是一个成熟的项目,有广泛的社区支持和丰富的文档。
扩展性:ES 支持大规模集群,可以处理从小型到大规模的应用很好的扩展。
强大的查询功能:ES 提供丰富的查询语言和功能,能够满足复杂数据分析的需求。
生态系统广泛:ES 有大量的插件和生态系统支持,包括 Kibana 等工具,方便进行可视化和分析。
使用建议:
如果你的项目需要高效的资源使用和简单的日志处理,VictoriaLogs 可能是一个不错的选择。
如果你的项目需要复杂的查询能力、大规模数据处理和强大的社区支持,Elasticsearch 或许更合适。
最终的选择应基于具体的需求、现有的基础设施以及团队的技术能力。
PS:VictoriaLogs 吃内存和硬盘空间较小 ,性能很高。但功能没ES完善,没有集群功能等,查询界面简陋。
部署背景
接收服务器或网络设备发送的syslog协议的日志,用于存储和日常查询。
Docker 要求较新版本,支持compose v2。
Docker安装教程:https://yeasy.gitbook.io/docker_practice/install/centos
Docker 部署
1 |
|
9428为HTTP端口,用于访问Web UI等。(无安全认证)
514/udp为 syslog 接收端口,-syslog.listenAddr.udp=:514 用于开启UDP接收syslog。
配置当前目录下创建数据存储文件夹。
Docker compose 部署
创建VictoriaLogs文件夹,创建文件 docker-compose.yml
1 |
|
9428为HTTP端口,用于访问Web UI等。(无安全认证)
514/udp为 syslog 接收端口,-syslog.listenAddr.udp=:514 用于开启UDP接收syslog。
配置当前目录下创建数据存储文件夹。
compose 部署示例命令
1 |
|
compose 升级示例命令
1 |
|
VictoriaLogs 日志保留时间
默认情况下,VictoriaLogs 存储时间戳在时间范围 [now-7d, now]
内的日志条目,同时删除给定时间范围之外的日志。例如它使用7天的保留。可以使用 -retentionPeriod
命令行标志配置保留。该标志接受从 1d (一天)到 100y (100 年)的值。
例如,以下命令启动 VictoriaLogs 并保留 30 天:
1 |
|
http://localhost:9428/flags 可查看启动参数。
Web UI 搜索
浏览器访问 http://localhost:9428 ,然后选择 select/vmui - Web UI for VictoriaLogs 进入,
查询语法:直接输入查询可全局搜索,右上角选择时间。查询两个关键词: abc AND bcd
文档:https://docs.victoriametrics.com/victorialogs/logsql/
监控VictoriaLogs
VictoriaLogs 在 page 上以 Prometheus 公开格式公开内部指标。 建议通过 VictoriaMetrics 设置对这些指标的监控
访问路径 http://localhost:9428/metrics
运维技术交流群
发送邮件到 ➡️ [email protected]
或者关注WX公众号:网工格物