Logstash Beats 上报口
5044 是 ELK 数据链路的入口端口。Filebeat、Metricbeat 等采集器默认把日志与指标发给 Logstash 的 beats input,由 Logstash 做解析、字段加工与分流,最后写入 Elasticsearch。它常常是整套监控里最容易被漏配的一环:9200 与 5601 都通了,采集端却一直连不上。
基本信息
| 服务 | Logstash beats input |
|---|---|
| 协议 | TCP,可叠加 TLS |
| 用途 | 日志与指标采集上报 |
| 关联端口 | 9200 Elasticsearch、5601 Kibana |
| 安全等级 | 仅限采集网段 |
典型使用场景
- 业务机部署 Filebeat,把应用日志集中收集到 Logstash
- Metricbeat 采集主机与容器指标后统一上报
- 排查采集中断时先确认服务端监听与防火墙放行
- 在采集端直写 Elasticsearch 与经 Logstash 加工之间做架构选择
- 为上报链路启用 TLS 与客户端证书,防止日志被窃听或伪造
配置与连通检查
配置与连通检查
# Logstash 侧最小输入配置
input { beats { port => 5044 } }
# 服务端确认监听与端口连通
ss -lntp | grep ':5044 '
nc -zv logstash.example.com 5044
# 采集端自查输出配置
filebeat test output链路排障分层
| 现象 | 可能原因 | 处置方向 |
|---|---|---|
| 采集端连不上 | Logstash 未监听或防火墙未放行 | 先 nc 测端口,再看 input 是否启用 |
| 连上但无数据 | 输出侧不可达或管道配置报错 | 查 Logstash 日志与管道定义 |
| Kibana 看不到日志 | 索引模式或时间字段不匹配 | 核对索引名与字段映射 |
| 间歇性中断 | 批量过大或队列打满 | 调整批量大小与队列容量 |
架构选择:采集端可以直写 Elasticsearch,也可以经 Logstash 做加工。前者链路短、运维简单,后者能做解析与分流但多一跳故障点。无论选哪种,端口台账都要把 5044、9200 与 5601 分别记录清楚,别只写一个「ELK」。
未加密的 5044 允许任意主机上报日志,攻击者可以投递伪造日志污染审计证据,也可能借解析规则构造异常输入。跨网段采集应启用 TLS 与客户端证书校验,只放行已知采集端。
容量与队列:Logstash 默认使用内存队列,压力大时会丢数据。生产环境通常改用持久化队列,或让采集端直接写入 Elasticsearch。采集中断后恢复采集,缺口那段日志补不回来,只能靠采集端自己的读取位置记录继续往后采。