查看博客目录

网络设备日志统一收集神器:Graylog 7.1安装与使用实战

前言

交换机、路由器、防火墙每天产生大量日志:登录记录、接口状态变化、ospf、bgp中断告警、VPN 隧道告警……分散在各台设备上,出了问题只能逐台 SSH 翻日志,既慢又难关联。

Graylog 是开源的集中式日志管理平台,通过 Syslog 等协议统一接收、存储、检索和分析日志,对网络运维场景很合适。

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 1


一、Graylog 是什么?为什么适合收网络设备日志?

Graylog 的核心能力可以概括为:

能力说明
多协议接入原生支持 Syslog(UDP/TCP),也支持 Kafka、AMQP 等
实时处理Pipeline 在入库前解析、enrich、路由日志
灵活分类Stream 按设备类型、厂商、级别等分流
可视化Dashboard 做趋势图、Top N、地理分布等
告警基于 Stream 配置条件告警,及时通知

对网络设备来说,多数厂商都支持向外部 Syslog 服务器发送日志,Graylog 正好是对接目标。


二、单节点安装要点(Red Hat 8/9)

Graylog 7.x 采用 Core 架构,单节点需部署三个组件:

组件作用部署建议
MongoDB存储元数据(用户、Stream、Dashboard 配置等)与 Graylog 同节点
Data Node日志摄入、处理、索引,对接 OpenSearch 存储独立节点
Graylog ServerWeb 界面、API、任务调度与 MongoDB 同节点

注意:官方建议使用 Data Node 作为搜索后端,不要直接安装 OpenSearch。Data Node 建议独立部署在一台节点上;Graylog 与 MongoDB 可同机。

2.1 安装前准备

  • 操作系统:Red Hat 8 或 9(我下面采用的Rocky9.6)

  • 存储:建议使用 XFS 文件系统

  • 防火墙:确保所需端口互通(生产环境请按官方文档做安全加固)

  • 时区:建议统一为 Asia/Shanghai

sudo timedatectl set-timezone Asia/Shanghai

2.2 第一步:安装 MongoDB 8.0

MongoDB 存储 Graylog 的元数据(用户、Input、Stream、Pipeline 等配置)。

# 添加 MongoDB 8.0 源(RHEL 9 示例)
sudo vi /etc/yum.repos.d/mongodb-org-8.0.repo

# 添加以下 MongoDB 仓库配置:
[mongodb-org-8.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/8.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-8.0.asc

# 安装并锁定版本
sudo yum install mongodb-org
sudo yum install 'dnf-command(versionlock)'
sudo yum versionlock add mongodb-org

# 修改 /etc/mongod.conf,允许 Graylog 访问
net:
  port: 27017
  bindIpAll: true

sudo systemctl enable --now mongod

2.3 第二步:安装 Data Node

Data Node 负责日志摄取、处理与索引。

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-7.1-repository_latest.rpm
sudo yum install graylog-datanode

# 内核参数(OpenSearch 要求)
echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.d/99-graylog-datanode.conf
sudo sysctl --system

# 生成 password_secret(与 Graylog Server 必须一致)
openssl rand -hex 32

编辑 /etc/graylog/datanode/datanode.conf

password_secret = <上一步生成的值>
opensearch_heap = 8g   # 设为内存一半,最大 31GB。此配置属性默认并不包含在 datanode.conf 中,需要手动添加。
mongodb_uri = mongodb://localhost/graylog # 根据实际地址修改
sudo systemctl enable --now graylog-datanode

2.4 第三步:安装 Graylog Server

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-7.1-repository_latest.rpm
sudo yum install graylog-server   # 开源版

# 生成管理员密码 SHA256
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

编辑 /etc/graylog/server/server.conf 关键项:

root_password_sha2 = <上一步 SHA256 值>
password_secret = <与 Data Node 相同>
http_bind_address = 0.0.0.0:9000

# Journal 建议按 72 小时日志量配置
message_journal_max_age = 72h
message_journal_max_size = 90gb

# 修改时区
root_timezone = Asia/Shanghai

编辑 /etc/sysconfig/graylog-server 堆内存(约为内存一半,最大 16GB):

GRAYLOG_SERVER_JAVA_OPTS="-Xms2g -Xmx2g -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow"
sudo systemctl enable --now graylog-server

2.5 首次登录(Preflight)

重要:首次启动不要用上面生成的密码登录。需查看日志中的 Preflight 临时凭据,完成初始化后再用 root_password_sha2 对应密码登录 Web 界面(默认 http://服务器IP:9000)。

步骤一、访问 http://服务器IP:9000

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 2

步骤二、执行 tail /var/log/graylog-server/server.log 获取账号密码

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 3

步骤三、输入上面步骤获取的账号密码登录

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 4

步骤四、完成配置向导

1、创建证书

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 5

2、选择自动续订,默认期限30天; 工作方式:Graylog 会在证书到期前(默认为 30 天有效期)自动、静默地在后台完成续订,无需任何人工干预

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 6

3、点击 Provision (配置/生成) 或 Next (下一步),系统会自动生成证书,向导会自动检测你的 Data Node 状态

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 7

4、如果一切正常,你会看到页面上的状态都变成了绿色的对勾(✅)这个过程需要等待一会,然后点击Resume startup后同样需要等待一会

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 8

5、最后会进入如下登录页面,这里登录的账号为:admin 密码为前面第三步中设置的密码

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 9


三、让网络设备把日志发过来:Input 配置

Input 是日志入口。网络设备最常用 Syslog

3.1 创建 Syslog Input

路径:System → Inputs → Select Input → Syslog UDP

非标准 Syslog,用 Raw Input + Pipeline

很多路由器、防火墙的 Syslog 不完全符合 RFC 3164/5424,直接用 Syslog Input 可能解析失败或字段错乱。

建议:

  1. 使用 Raw/Plaintext UDP Input 原样接收

  2. Pipeline 做 Grok 解析、字段提取

  3. 或通过 rsyslog / syslog-ng 中转并规范化后再发给 Graylog

这是处理 许多网络设备时的常见做法。

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 10

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 11

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 12

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 13

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 14

3.2 网络设备端配置示例

华为设备:

# 华为交换机向日志服务器发送日志默认以 UTC 时间发送,会导致 Graylog 中收集的日志数据比实际少 8 小时。
# local-time 用于指定 Syslog 使用本地时间。
info-center loghost 192.168.225.134 local-time

H3C 设备:

# H3C 交换机配置
info-center timestamp loghost date with-milliseconds
# 发送日志包含年份和毫秒,否则 Graylog 通过 Raw UDP Input 收到的原始日志不带年份和毫秒。
info-center loghost 192.168.225.134

四、查看日志

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 15

网络设备日志统一收集神器:Graylog 7.1安装与使用实战 配图 16

结语

Graylog 单节点部署(MongoDB + Data Node + Graylog Server)并不复杂,核心价值在 Input 接入 → Stream 分类 → Pipeline 解析 → Search/Dashboard/Alerts 分析 这一整条链路。

从一台交换机开始,把 Syslog 指到 Graylog,再逐步加 Stream、Pipeline 和告警,通常一两周就能搭起可用的网络日志中心。


往期推荐:

专为网工开发的小程序上线了!子网掩码计算、IP转换、Excel批量转换、批量命令生成

写给网工人的Wireshark过滤规则指南(附主流协议抓包源文件下载)

别只会 Ping!网络工程师的10款排障诊断工具(建议收藏)

Docker环境一键安装与换源脚本(建议收藏)

网络流量分析开源利器 Akvorado:轻松掌控 NetFlow 与 SFlow 数据

告别流量黑盒:开源神器sFlow-RT实现全网流量可视化