告别杂乱审计日志!多厂商网络设备日志统一采集与可视化分析最佳实践
作为一个企业安全运维人员,我们需要从企业中各种网络、安全或其他服务器硬件设备上收集审计日志信息,并且存储到日志服务器上,以便于在发生安全事件时进行跟踪、溯源查询,在之前文章中作者介绍实践了如何在利用 syslog 协议上报设备、Linux、Windows 审计日志,以及利用 Grafana 的 Promtail 采集工具实现 Windows Server 系统事件审计日志到 Loki、Victor

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]
📢 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(DevSecOps),自动化运维工具开发与实践,企业网络安全防护,欢迎各位道友一起学习交流、一起进步 🚀,若此文对你有帮助,一定记得点个关注⭐与小红星❤️或加入到作者知识星球『 全栈工程师修炼指南』,转发收藏学习不迷路 😋 。
0x00 前言简述
由于《信息安全技术网络安全等级保护基本要求》以及《中华人民共和国网络安全法》、《公安部82号令》安全日志审计的要求,网络运营者和网络服务提供者必须能够对上网行为日志做留存,时间不得小于180天,否则相关责任人将被处于行政罚款。
作为一个企业安全运维人员,我们需要从企业中各种网络、安全或其他服务器硬件设备上收集审计日志信息,并且存储到日志服务器上,以便于在发生安全事件时进行跟踪、溯源查询,在之前文章中作者介绍实践了如何在利用 syslog 协议上报设备、Linux、Windows 审计日志,以及利用 Grafana 的 Promtail 采集工具实现 Windows Server 系统事件审计日志到 Loki、VictoriaLogs(推荐),文章参考链接如下:
看过或实践落地过上面文章的朋友都知道利用 syslog 协议上报硬件设备的日志信息是最常用的方式,但是却也存在一个痛点,那就是不同设备厂商支持的 syslog 协议版本不同,从而导致日志格式不一致,以至于在日志服务器上无法进行高效的日志查询分析;
所以作者在前几篇审计日志采集的文章基础上,将介绍实践如何统一硬件设备通过 syslog 协议上报日志格式,使用 rsyslog 服务器中转上报到使用 VictoriaLogs 日志服务中,或者存储在本地磁盘中,然后利用 VictoriaLogs 强大的查询功能进行日志查询分析,之后再使用 Grafana VictoriaLogs 插件进行可视化展示,从而实现全局设备日志的统一分析与可视化,为基础设施数据化、信息化助力,这也是作者在目前运维工作中落地其中一个项目,希望能帮助到大家。
本文基于 Rsyslog、VictoriaLogs、Grafana 审计日志可视化项目架构如下图所示:
废话不多说,先看学习完本章文章后,实现的效果如下所示:
图1.访问 Explore 视图页面,使用 LogsQL 查询语句,例如 type:“network” 可以看到 victoriaLogs 中存储的 网络设备的日志数据了。

图2.展示硬件设备日志概览信息和实时采集的日志。

图3.展示硬件设备日志统计信息,例如:VictoriaLogs 中 fileds 字段与stream 的相关行、数据大小信息等。

图4.实时查询指定硬件设备日志,例如:查询网络设备 10.0.21.1 的日志信息,在查询输入框内支持使用 LogsQL 查询语句,例如:_msg:~"10.10.176.1" 将查询该网络设备中有关于客户端IP为 10.10.176.1 的连接情况,在表格工具中还支持过滤筛选等功能。

温馨提示:作者已将本章实践所需的 rsyslog 配置文件、相关部署脚本以及 Grafana 可视化模板上传到网盘中,大家可加入作者知识星球中获取,或者在文章末尾获取,感谢支持,为作者提供持续创作动力。
weiyigeek.top-网盘文件图
废话不多说,跟着作者的步伐,一起实践落地吧。
温馨提示:若文章代码块中存在乱码或不能复制,请联系作者,也可通过文末的阅读原文链接,加入知识星球中阅读,原文链接:https://articles.zsxq.com/id_p3lzmscfvvb1.html或者访问 https://mp.weixin.qq.com/s/d88eyh7PXG74WrPDqS7_6Q
0x01 设备审计日志采集与可视化实时查询实践
描述:本章节将以 Palo Alto Networks、启明等安全设备,A10 负载均衡以及华为网络设备、存储设备、服务器设备为例,介绍如何配置硬件设备的审计日志上报功能,使用 rsyslog 服务对接受到的日志信息进行格式化处理,上报到 VictoriaLogs 日志服务中,并通过 VictoriaLogs 进行日志查询分析,最后通过 Grafana 的 VictoriaLogs 插件对接日志服务,利用作者设置的可视化模板进行展示。
对于 rsyslog 、VictoriaLogs 的介绍,可参考之前在作者【全栈工程师修炼指南】公众号专栏文章,以及【全栈工程师修炼指南】知识星球或者自行查阅相关官网资料。
1.基础环境准备
作者实践环境如下所示,准备了一台 rsyslog 服务器,一台 Docker 服务用于搭建 VictoriaLogs 日志服务和 Grafana 服务,以及一个 K8S 集群用于部署 VictoriaLogs 适用于目前使用了云原生的架构的场景。
# 操作系统环境及服务版本
Kylin Linux Advanced Server V10 SP3 (Lance)-x86_64-Build23/20230324
rsyslogd 8.2506.0 (aka 2025.04)
Docker Engine Version: 26.1.3
Grafana v12.0.2 (5bda17e7c1)
victoriametrics/victoria-logs:v1.43.1
# 主机规划(理论)
192.168.10.135:514 # Rsyslog 日志服务器
192.168.10.136:3000 # Grafana 服务 (Docker 部署)
192.168.10.136:9428 # VictoriaLogs 日志服务 http 接收端口 (Docker 部署)
192.168.10.136:9514 # VictoriaLogs 日志服务 syslog 接收端口 (Docker 部署)
192.168.10.137~140 # K8S 集群节点 (使用 Deloyment 资源清单部署 VictoriaLogs)
特别提示:这里的 KylinOS V10 SP3 国产操作系统已经使用脚本进行安全加固有需要的童鞋可访问【网安等保 | 主机安全之KylinOS银河麒麟服务器配置优化与安全加固基线文档脚本分享】文章获取脚本,加入到星球用户请在星球 《网络安全》 doc 专栏中获取,其次作者实践 rsyslog 版本为 8.2506,所以大家在实践时可选择升级到最新版 8.x 或与作者相同版本,因为 rsyslog 官方文档中提及的很多特性仅在最新版本中得到支持。
Rsyslog 服务安装
如何知道 Linux 中的 rsyslogd 服务是否安装且启动了呢?执行如下三条命令即可。
rsyslogd -v
ps aux | grep "rsyslog" | grep -v "grep"
systemctl list-unit-files rsyslog.service
若系统中未安装 rsyslog,可通过如下操作进行安装。
操作流程
-
• 步骤 1: 安装 rsyslog 由于通过系统软源安装可能因为版本较旧,所以这里推荐使用 rsyslog 官方软件源进行安装。
# 方式1.系统软件源安装
# Redhat 系列
$ sudo yum install rsyslog
# 或者 CentOS8 使用 dnf 软件包安装工具进行安装
sudo dnf install rsyslog
# 方式2.rsyslog 官方 rpm 源推荐
# 使用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
# 版本
rsyslogd -v
-
• 步骤 2: 启动和启用 rsyslog 服务
安装完毕后,您需要启动rsyslog服务,并设置为开机自启:
sudo systemctl start rsyslog
sudo systemctl enable rsyslog
使用以下命令检查rsyslog服务状态,确保它正在运行:
sudo systemctl status rsyslog
Rsyslog 最新版及历史版本下载地址参考:https://www.rsyslog.com/downloads/download-other/
Grafana 服务安装
以 docker 环境下使用 docker-compose 安装 Grafana 日志服务器为例,若还没安装 Docker 环境可参考官方文档或者作者公众号《云原生之路 | 3.实践Docker容器环境部署及初体验》专栏里学习,篇幅有限不过多累述,太简单了。
# 创建数据卷和配置文件目录,并赋予相应权限
mkdir -vp /data/grafana
chown -R 472 /data/grafana
mkdir -vp /etc/grafana
tee /etc/grafana/grafana.ini <<'EOF'
[server]
protocol = http
http_port = 3000
[security]
admin_user = root
admin_email = it@weiyigeek.top
disable_gravatar = true
EOF
# 启动 Grafana 服务
tee docker-compose.yml <<'EOF'
version: "3.8"
services:
grafana:
container_name: grafana
image: grafana/grafana:12.0.2
ports:
- 3000:3000
volumes:
- /data/grafana:/var/lib/grafana
- /etc/grafana/grafana.ini:/etc/grafana/grafana.ini:ro
restart: always
EOF
# 启动 Grafana 服务
docker-compose up -d
# 查看 Grafana 服务状态
docker ps -a | grep grafana
Grafana 启动后,可通过浏览器访问 http://192.168.10.136:3000/ 进行登录,首次登陆时会让你设置管理员密码,设置完毕后即可进入到 Grafana 首页,这里我们先安装 VictoriaLogs 插件,操作流程为点击 Home => Connections => Add data source => 选择 VictoriaLogs 插件进行安装,如下所示:

温馨提示:若为生产环境,建议将 MySQL、Redis 数据库独立部署,并并使用 K8S 集群或Docker部署,请参考《从零到云:Grafana 12.x 全新可观测性监控平台初识到云原生环境下部署实践》文章。
VictoriaLogs 服务安装
以 docker 环境下安装 VictoriaLogs 日志服务器为例,如下所示:
# 创建持久化目录
mkdir /data/victoria-logs-data
# 使用 docker 方式后台运行
docker run -d --name victorialogs \
-e TZ=Asia/Shanghai \
-p 9428:9428 \
-p 9514:9514/tcp -v /data/victoria-logs-data:/data/victoria-logs-data \更多推荐



所有评论(0)