Graylog GELF 输入口
Graylog 的 GELF 输入默认端口:容器与应用把日志按 GELF(JSON 结构)格式发到 12201,Graylog 侧可以分别建立 TCP 或 UDP 输入。相比纯文本,结构化字段让日志能按字段检索与聚合,但发送端与接收端的协议、字段规范必须对上。
基本信息
| 服务 | Graylog GELF input |
|---|---|
| 协议 | TCP 或 UDP(GELF 格式) |
| 默认端口 | 12201 |
| 相关端口 | Graylog Web 9000、Elasticsearch 9200 |
| 暴露面 | 仅日志网段 |
典型使用场景
- Docker 容器日志用 GELF 驱动统一推送
- 应用直接发送结构化日志,免去解析正则
- 批量导入历史日志做回溯分析
- 与告警联动:按字段条件触发通知
- 多云或多集群的日志统一入口
发送与监听核对
发送与监听核对
echo '{"version":"1.1","host":"test","short_message":"hello"}' | nc -u graylog01 12201
ss -lunp | grep 12201 # UDP 输入
ss -lntp | grep 12201 # TCP 输入
# Web 界面: http://graylog01:9000排障与核对
| 检查项 | 做法 | 异常表现 |
|---|---|---|
| 输入状态 | Graylog 界面的输入列表 | 输入未启动:发送端重试或被静默丢弃 |
| 协议匹配 | 发送端与输入的 TCP/UDP 类型对照 | 一端 TCP 一端 UDP:日志进不来且无明确报错 |
| 丢弃计数 | 输入与网卡的统计 | 大批日志缺行:UDP 无重传,需改 TCP |
| 字段 | 搜索界面按字段过滤 | 字段缺失:发送端未按 GELF 规范构造消息 |
UDP 输入省事但会丢包,量大时应改 TCP 并评估背压:TCP 能保证顺序与可靠性,但发送端慢或输入阻塞时会积压,需要监控输入缓冲区与处理速率这两个指标。
结构化日志的收益
GELF 消息带上主机、级别、时间戳与自定义字段后,检索可以按字段过滤与聚合,比在纯文本上做正则匹配可靠得多。代价是发送端要按规范构造 payload:字段名或类型写错时,消息会被丢弃或字段落不到索引里,结构化优势直接归零。
输入不做来源限制时,任何主机都能注入伪造日志,既刷爆存储也污染告警;给输入配置来源白名单或网络策略,比事后从海量数据里筛假记录便宜得多。
UDP 输入无鉴权:任意主机可伪造日志刷爆存储与告警,真实安全事件反而被淹没。