可行性与总体架构 可以,而且这是 Ubuntu 上非常常见、稳定的日志采集组合。常见做法是用 rsyslog/syslog-ng 负责系统日志的采集与转发,再由 Filebeat 从本地日志文件或直接监听 TCP/UDP 514 的 syslog 端口读取并转发到 Logstash/Elasticsearch,最终在 Kibana 做可视化。该模式在运维与审计场景中广泛使用,既利用了系统自带的日志能力,又保留了 Filebeat 的轻量转发与可靠性优势。
典型部署模式
模式A 直采系统日志文件
适用:保持 Ubuntu 默认 rsyslog 配置不动,仅新增 Filebeat。
做法:Filebeat 直接采集 /var/log/syslog、/var/log/auth.log 等系统日志文件,输出到 Logstash 或直接到 Elasticsearch。如需开箱即用地解析常见系统日志,可启用 Filebeat 的 system 模块(modules enable system)。该方式简单、侵入性最低。
模式B rsyslog 汇聚后由 Filebeat 采集
适用:需要集中汇聚多台主机的系统日志,或做统一落盘、策略分流。
做法:各主机将日志通过 rsyslog 发到日志汇聚服务器(UDP/TCP 514),在汇聚服务器上用 Filebeat 读取 /var/log/messages 或按主机分目录的日志文件,再统一送往 Logstash/ES。此模式便于在汇聚点做日志留存与访问控制。
模式C Filebeat 直接监听 syslog 端口
适用:无法在客户端安装 Filebeat,或设备仅支持 syslog 发送(如部分负载均衡、网络设备)。
做法:在中间日志服务器上启用 Filebeat 的 syslog 输入(UDP/TCP 514)直接接收网络 syslog,再转发到 ES/Kafka 等。注意在 Ubuntu 上需确保内核与用户态对 514 端口的权限配置正确(如使用能力 CAP_NET_BIND_SERVICE 或将服务以合适权限运行)。
快速配置示例
示例A 启用 system 模块直连 Logstash(Ubuntu 20.04+ 常见)
示例B rsyslog 汇聚 + Filebeat 采集到 Logstash
实践建议