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

配置Graylog JSON提取器后Nginx访问日志输入停止接收消息

排查Graylog JSON提取器应用后无法接收消息的问题

以下是针对性的排查步骤:

  • 检查提取器的匹配策略与正则有效性

    1. 确认提取器是否勾选了「仅处理匹配的消息」:如果正则nginx:\s+(.*)无法匹配实际日志的前缀格式(比如实际日志是[nginx] {"key":...}而非nginx: {"key":...},或空格数量不符),所有消息会被直接丢弃。先暂停提取器,看输入是否能恢复接收消息,以此验证是否是提取器过滤导致的问题。
    2. 抓取一条原始日志消息,手动测试正则的匹配结果:确保(.*)能完整捕获到合法的JSON内容——如果原始JSON包含换行符,默认.*不会匹配换行,需修改正则为nginx:\s+([\s\S]*)来捕获所有字符(包括换行)。
  • 验证JSON内容的合法性
    提取器预览用的测试消息可能是标准合法JSON,但实际Nginx日志生成的JSON可能存在语法错误(比如引号未闭合、多余逗号、转义字符错误)。抓取原始消息中的JSON部分,用本地JSON校验工具检查是否符合语法规范,解析失败的消息可能被静默丢弃。

  • 检查流与缓冲区状态

    1. 查看消息是否被路由到其他流:检查当前输入关联的流配置,确认没有额外的过滤规则导致消息未出现在默认流中。
    2. 查看Graylog缓冲区状态:进入「System」→「Buffers」,检查输入缓冲区是否有堆积,或是否存在缓冲区溢出导致的消息丢失。
  • 调试提取器处理日志
    临时调高Graylog的日志级别,查看提取器的详细处理过程:

    1. 编辑/etc/graylog/server/log4j2.xml,添加或修改以下日志配置:
      <Logger name="org.graylog2.plugin.inputs.extractors" level="DEBUG"/>
      <Logger name="org.graylog.plugins.extractors" level="DEBUG"/>
      
    2. 重启Graylog服务:systemctl restart graylog-server
    3. 发送测试消息后,查看/var/log/graylog-server/server.log,提取器的匹配、解析过程会输出详细日志,可定位具体问题。
  • 检查提取器的字段配置
    确认JSON提取器是否设置了错误的目标字段,或勾选了「覆盖已有字段」导致字段冲突。尝试新建一个简单的JSON提取器,仅提取几个核心字段,排除复杂配置的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:48:22