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

Logstash的Elasticsearch Input插件查询无输出问题求助

Logstash Elasticsearch Input插件无输出问题排查与解决

问题核心分析

管道启动后立即终止、无输出的问题,并非由clear_scroll的404警告导致——该警告是插件尝试释放不存在的滚动ID,返回结果显示"succeeded":true,"num_freed":0,属于无害提示,可忽略。真正的问题大概率集中在插件运行模式、查询匹配或配置细节上。

解决方案

1. 调整插件运行模式,避免管道一次性执行后终止

Logstash的Elasticsearch Input插件默认是一次性查询模式,执行完查询后直接终止管道,可能来不及输出结果。添加定时调度参数让插件周期性执行查询,管道会持续运行:

input {
    elasticsearch {
        # 保留原有配置...
        schedule => "* * * * *"  # 每分钟执行一次查询,可根据需求调整 cron 表达式
    }
}

2. 验证查询的时间范围与索引匹配

尽管你确认查询在Elasticsearch中正常运行,仍需注意:

  • Logstash与Elasticsearch的时区是否一致?now-1d/d的计算依赖时区,可临时替换为绝对时间测试,比如:
    "query": {
        "range": {
            "@timestamp": {
                "gte": "2023-02-22T00:00:00Z"
            }
        }
    }
    
  • 确认index => "log-com-ms-ldap--*"能匹配到目标索引,可简化为具体索引名测试。

3. 添加target参数(可选但推荐)

日志中提示ECS兼容模式下未设置target,虽不直接导致无输出,但会引发字段冲突风险。添加该参数将ES查询结果存入指定字段,便于查看:

input {
    elasticsearch {
        # 保留原有配置...
        target => "[elasticsearch_data]"
    }
}

4. 简化查询调试

先使用match_all查询确认插件能正常获取数据,再逐步添加过滤条件:

query => '{ 
    "query": {"match_all": {}},
    "size": 1
}'

5. 临时简化输出配置

测试时可注释掉email输出,只保留stdout,避免邮件发送逻辑干扰结果查看:

output {
    stdout { 
        codec => rubydebug
    }
    
    # email { 
    #     to => myemail
    #     from => mysystem
    #     subject => 'Success'
    #     body => 'Success'
    #     address => myaddress
    #     via => 'smtp'
    # }
}

修改后的完整配置示例

input {
    elasticsearch {
        id => "es_input_plugin"
        user => myuser
        password => mypassword
        hosts => myhost
        ca_file => "C:\devsetup\logstash-8.6.0\rootca3.crt"
        ssl => true
        index => "log-com-ms-ldap--*"
        query => '{ 
                    "query": {
                        "range": {
                            "@timestamp": {
                                "gte": "now-1d/d"
                            }
                        }
                    },
                    "size": 1
                }'
        docinfo => true
        docinfo_target => "[@metadata][doc]"
        target => "[elasticsearch_data]"
        schedule => "* * * * *"
    }
}

output {
    stdout { 
        codec => rubydebug
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:01:30