[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]

📢 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(DevSecOps),自动化运维工具开发与实践,企业网络安全防护,欢迎各位道友一起学习交流、一起进步 🚀,若此文对你有帮助,一定记得倒点个关注⭐与小红星❤️,收藏学习不迷路 😋 。

0x00 前言简述

作为一名不能躺平的IT运维工程师,最近又在折腾了,将企业中原本存储在 Loki 中的 syslog 网络审计日志转发到最新的日志聚合平台 VictoriaLogs 中,为啥将 Loki 存储的审计日志迁移到 VictoriaLogs呢?

主要是因为 VictoriaLogs 相比于 Loki,在日志聚合查询方面更加灵活,性能好,资源相当于Loki耗费少,所以作者将应用日志迁移到 VictoriaLogs 之后,顺便也将网络审计日志迁移过去,本节就如何在 rsyslog 中将网络设备、安全设备、带外设备转发的日志使用 Template 模板进行自定义格式为 RFC5424 标准格式,并通过两种方式转发到 VictoriaLogs 日志服务器中,作者在实践中花费了一些时间踩坑,所以做一个简单的记录,以帮助其他运维工程师参考(闭坑)。

此处,作者就不在赘述 rsyslog、Loki 与 VictoriaLogs 的介绍了,有兴趣的可以查看作者【全栈工程师修炼指南】公众号专栏文章,以及【全栈工程师修炼指南】知识星球或者自行查阅相关官网资料。

【网安合规】Rsyslog 开源日志服务器 - 快速收集企业网络日志,合规利器!

如何使用Grafana+Loki+Promtail日志聚合系统针对Kubernetes集群中Pods应用日志采集搜索展示

比Loki更轻量、更高效!VictoriaLogs日志系统初识与二进制部署指南

作者新思路,在浏览 rsyslog 官方文档的时候,发现 rsyslog 可使用 ClickHouse Output Module 插件模块,支持将日志直接转发到 clickhouse 列式数据中进行实时分析,对于已选型的 clickhouse 来说,作者是极大的推荐,毕竟 clickhouse 可能会成为日志存储分析的主流工具。

文章末尾有 rsyslog 完整配置示例,若有使用方面的疑问,可在文章末尾评论,以及联系作者沟通交流。

原文链接:https://articles.zsxq.com/id_8fhk4x6a0vw2.html

0x01 环境准备

作者实践环境准备如下所示:

# 操作系统环境及服务版本
Kylin Linux Advanced Server V10 SP3 (Lance)-x86_64-Build23/20230324 
rsyslogd 8.2506.0 (aka 2025.04) 
victoriametrics/victoria-logs:v1.24.0-victorialogs

# 主机规划
192.168.10.135:514  # rsyslog 日志服务器
192.168.10.136:9428  # VictoriaLogs 日志服务 http 接收端口
192.168.10.136:9514  # VictoriaLogs 日志服务 syslog 接收端口

特别提示:这里的 Kylin Linux 国产操作系统已经使用脚本进行安全加固有需要的童鞋可访问【网安等保 | 主机安全之KylinOS银河麒麟服务器配置优化与安全加固基线文档脚本分享】文章获取脚本, 其次是 rsyslog 版本是最新版的,所以大家在实践时可选择升级到最新版,因为 rsyslog 官方文档中提及的很多特性在最新版本中得到支持。

我们如何知道 Linux 中的 rsyslogd 服务是否安装且启动了呢?执行如下三条命令即可。

rsyslogd -v
ps aux | grep "rsyslog" | grep -v "grep"
systemctl  list-unit-files rsyslog.service

若系统中未安装 rsyslog,可通过如下操作进行安装。

安装 rsyslog

在 Redhat 以及 Debian 、Ubuntu 主机中安装和配置rsyslog是一个相对直接的过程,因为rsyslog通常作为默认的系统日志守护进程,以下是安装和基本配置rsyslog的步骤。

  • 步骤 1: 安装 rsyslog

常规安装 rsyslog 工具(由于上游软件源可能更新不及时,因此版本可能不是最新)

# Redhat 系列
$ sudo yum install rsyslog
# 或者 CentOS8 使用 dnf 软件包安装工具进行安装
sudo dnf install rsyslog

# Debian 系列
$ sudo apt-get install rsyslog

# Alpine 系列
$ sudo apk add rsyslog

或者,使用 rpm 源安装最新版 rsyslog 工具

# 使用rpm源安装最新版本 rsyslog,需以root用户身份从命令行执行以下命令:
wget http://rpms.adiscon.com/v8-stable/rsyslog.repo -O /etc/yum.repos.d/rsyslog.repo           # for CentOS 7,8,9
wget http://rpms.adiscon.com/v8-stable/rsyslog-rhel.repo -O /etc/yum.repos.d/rsyslog-rhel.repo # for RHEL   7,8,9

# 定义 releasever 变量
echo 8 > /etc/yum/vars/releasever

# 查看 rsyslog 源仓库配置
$ cat rsyslog.repo
[rsyslog_v8]
name=Adiscon CentOS-$releasever - local packages for$basearch
baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
gpgkey=https://rpms.adiscon.com/RPM-GPG-KEY-Adiscon
protect=1

# 安装
yum update && yum install rsyslog

# 更新
yum update && yum update rsyslog

# 查看 rsyslog 版本
rsyslogd  8.2506.0 (aka 2025.04) compiled with:
    PLATFORM:                               x86_64-redhat-linux-gnu
    PLATFORM (lsb_release -d):
    FEATURE_REGEXP:                         Yes
    GSSAPI Kerberos 5 support:              Yes
    FEATURE_DEBUG (debug build, slow code): No
    32bit Atomic operations supported:      Yes
    64bit Atomic operations supported:      Yes
    memory allocator:                       system default
    Runtime Instrumentation (slow code):    No
    uuid support:                           Yes
    systemd support:                        Yes
    Config file:                            /etc/rsyslog.conf
    PID file:                               /var/run/syslogd.pid
    Number of Bits in RainerScript integers: 64

See https://www.rsyslog.com for more information.
  • 步骤 2: 启动和启用 rsyslog 服务

安装完毕后,您需要启动rsyslog服务,并设置为开机自启:

sudo systemctl start rsyslog
sudo systemctl enable rsyslog

使用以下命令检查rsyslog服务状态,确保它正在运行:

sudo systemctl status rsyslog

Rsyslog 最新版及历史版本下载地址参考:https://www.rsyslog.com/downloads/download-other/

安装 VictoriaLogs

以 docker 环境下安装 VictoriaLogs 日志服务器为例,如下所示:

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐