You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Filebeat仅在服务器重启时向Logstash发送数据的问题排查

问题排查与解决方案:Filebeat仅在服务器重启时向Logstash发送日志

针对你遇到的远程服务器(Web、反向代理)Filebeat仅重启时发送一次日志、无法持续传输的问题,可按以下步骤逐一排查:

1. 检查Filebeat日志位置记录(Registry文件)

Filebeat依赖registry文件跟踪已读取的日志位置,若该文件损坏或权限异常,会导致Filebeat误认为日志已读取完毕,停止持续采集。

  • 操作步骤:
    1. 停止Filebeat服务:sudo systemctl stop filebeat
    2. 备份registry文件:sudo cp /var/lib/filebeat/registry /var/lib/filebeat/registry.bak
    3. 删除原registry文件:sudo rm /var/lib/filebeat/registry
    4. 重启Filebeat:sudo systemctl start filebeat
      重启后观察日志传输状态,若恢复正常,说明原registry记录异常。

2. 验证日志文件的权限与路径配置

即便Filebeat服务活跃,也可能因权限不足或日志路径配置问题无法读取新日志:

  • 检查Filebeat运行用户(默认filebeat)对目标日志的访问权限:sudo -u filebeat cat /path/to/your/log/file,若报错则需调整文件权限,或将filebeat用户加入日志所属组(如Web服务器的www-data组)。
  • 确认Filebeat配置中paths字段是否覆盖日志轮转后的文件(例如用/var/log/nginx/*.log而非固定文件名),避免遗漏新生成的日志文件。

3. 排查Logstash输入配置与连接状态

测试输出正常不代表长连接稳定,Logstash的配置或队列问题可能导致连接静默断开:

  • 查看Logstash日志(默认路径/var/log/logstash/logstash-plain.log),搜索是否存在192.168.1.6:5044连接的超时、断开等异常信息。
  • 调整Logstash Beats输入的client_inactivity_timeout参数,延长连接超时时间(默认300秒):
    input {
      beats {
        port => 5044
        ssl => false
        client_inactivity_timeout => 3600 # 延长至1小时
      }
    }
    
    修改后重启Logstash服务,观察远程Filebeat的日志传输情况。

4. 查看Filebeat实时运行日志

直接运行sudo filebeat -e -c /etc/filebeat/filebeat.yml(不带test output参数),实时查看Filebeat的运行日志,重点关注:

  • 是否有“no new data found”类提示,确认Filebeat是否识别到新日志。
  • 是否有输出到Logstash的确认信息,判断日志是否被正常发送。

5. 检查VMware ESXi网络配置

同一子网下,ESXi的防火墙或端口组规则可能限制TCP长连接:

  • 确认ESXi主机防火墙允许192.168.1.0/24子网内的5044端口双向通信。
  • 检查虚拟机所属端口组是否开启“允许混杂模式”,是否存在流量限制规则。

6. 验证系统时间同步

服务器间时间差过大可能导致时间戳处理异常,甚至被Logstash过滤规则丢弃:

  • 在所有服务器执行timedatectl检查时间同步状态,确保同步至同一NTP服务器。
  • 若时间不同步,安装并配置NTP服务:sudo apt install ntp,重启服务后重新同步时间。

内容的提问来源于stack exchange,提问作者Surfingjoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:47:31