查看博客目录
网络设备日志统一收集神器:Graylog 7.1安装与使用实战
前言
交换机、路由器、防火墙每天产生大量日志:登录记录、接口状态变化、ospf、bgp中断告警、VPN 隧道告警……分散在各台设备上,出了问题只能逐台 SSH 翻日志,既慢又难关联。
Graylog 是开源的集中式日志管理平台,通过 Syslog 等协议统一接收、存储、检索和分析日志,对网络运维场景很合适。

一、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 Server | Web 界面、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

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

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

步骤四、完成配置向导
1、创建证书

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

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

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

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

三、让网络设备把日志发过来:Input 配置
Input 是日志入口。网络设备最常用 Syslog。
3.1 创建 Syslog Input
路径:System → Inputs → Select Input → Syslog UDP
非标准 Syslog,用 Raw Input + Pipeline
很多路由器、防火墙的 Syslog 不完全符合 RFC 3164/5424,直接用 Syslog Input 可能解析失败或字段错乱。
建议:
-
使用 Raw/Plaintext UDP Input 原样接收
-
用 Pipeline 做 Grok 解析、字段提取
-
或通过 rsyslog / syslog-ng 中转并规范化后再发给 Graylog
这是处理 许多网络设备时的常见做法。





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 单节点部署(MongoDB + Data Node + Graylog Server)并不复杂,核心价值在 Input 接入 → Stream 分类 → Pipeline 解析 → Search/Dashboard/Alerts 分析 这一整条链路。
从一台交换机开始,把 Syslog 指到 Graylog,再逐步加 Stream、Pipeline 和告警,通常一两周就能搭起可用的网络日志中心。
往期推荐:
专为网工开发的小程序上线了!子网掩码计算、IP转换、Excel批量转换、批量命令生成
写给网工人的Wireshark过滤规则指南(附主流协议抓包源文件下载)
别只会 Ping!网络工程师的10款排障诊断工具(建议收藏)