【问题标题】:logs sent from logstash haven't been indexed in elasticsearch从 logstash 发送的日志尚未在 elasticsearch 中编制索引
【发布时间】:2021-12-17 04:51:00
【问题描述】:

我已经为logstash编写了一个apache.conf文件,如下所示:

input 
{
    file {
        path => "E:\ferdowsi-data\data\logs\logs"
        start_position => "beginning"
    }
    
}

filter
{
    grok{
        match => {
            "message" => "%{COMBINEDAPACHELOG}"
        }
    }
    mutate{
        convert => { "bytes" => "integer" }
    }
    date {
        match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ]
        locale => en
        remove_field => "timestamp"
    }
    geoip {
        source => "clientip"
    }
    useragent {
        source => "agent"
        target => "useragent"
    }
}


output
{
    stdout {
        codec => dots
    }

    elasticsearch {
        hosts => ["http://localhost:9200/"]
    }

}

elasticsearch & kibana 设置完成后,我运行了以下命令:

bin\logstash.bat -f E:\ferdowsi-data\data\apache.conf

但我在 cmd 中得到了这个结果:

使用JAVA_HOME定义java:C:\Program Files\Java\jdk-15.0.2 警告,使用 JAVA_HOME 而 Logstash 发行版带有 捆绑的 JDK 将 Logstash 日志发送到 E:/ferdowsi-data/logstash-7.15.1-windows-x86_64/logstash-7.15.1/logs 现在通过 log4j2.properties 配置 [2021-11-02T19:34:53,285][信息][logstash.runner]Log4j 使用的配置路径是: E:\ferdowsi-data\logstash-7.15.1-windows-x86_64\logstash-7.15.1\config\log4j2.properties [2021-11-02T19:34:53,307][INFO][logstash.runner] 开始 Logstash {"logstash.version"=>"7.15.1", "jruby.version"=>"jruby 9.2.19.0 (2.5.8) 2021-06-15 55810c552b Java HotSpot(TM) 64 位服务器 VM 15.0.2+7-27 on 15.0.2+7-27 +indy +jit [mswin32-x86_64]"} [2021-11-02T19:34:53,532][警告][logstash.config.source.multilocal] 忽略“pipelines.yml”文件,因为模块或命令行 指定选项 [2021-11-02T19:34:59,861][INFO][logstash.agent ] 成功启动 Logstash API 端点 {:port=>9600} [2021-11-02T19:35:01,963][信息][org.reflections.Reflections] 反射花费了 254 毫秒来扫描 1 个 url,产生 120 个键和 417 个 值 [2021-11-02T19:35:08,699][信息 ][logstash.outputs.elasticsearch][main] 新的 Elasticsearch 输出 {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["http://localhost:9200/"]} [2021-11-02T19:35:09,667][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch 池 URL 更新 {:changes=>{:removed=>[], :add=>[http://localhost:9200/]}} [2021-11-02T19:35:10,034][警告][logstash.outputs.elasticsearch][main] 恢复到 ES 实例 {:url=>"http://localhost:9200/"} 的连接 [2021-11-02T19:35:10,221][信息][logstash.outputs.elasticsearch][主要] Elasticsearch 版本确定 (7.15.1) {:es_version=>7} [2021-11-02T19:35:10,228][警告][logstash.outputs.elasticsearch][main] 检测到 6.x 及更高版本的集群:type 事件字段将不会被使用 确定文档_type {:es_version=>7} [2021-11-02T19:35:10,425][警告][logstash.outputs.elasticsearch][main] 配置与数据流兼容,但由于向后兼容性 默认情况下,Logstash 7.x 不会假设写入数据流 Logstash 8.0 上的行为将发生变化(设置 data_stream =&gt; true/false 禁用此警告)[2021-11-02T19:35:10,425][WARN ][logstash.outputs.elasticsearch][main] 配置为数据流 兼容但由于向后兼容性 Logstash 7.x 不会假设 写入数据流,默认行为将在 Logstash 8.0 上更改 (设置data_stream =&gt; true/false 禁用此警告) [2021-11-02T19:35:10,517][信息][logstash.outputs.elasticsearch][主要] 使用默认映射模板 {:es_version=>7, :ecs_compatibility=>:disabled} [2021-11-02T19:35:11,548][警告 ][org.logstash.instrument.metrics.gauge.LazyDelegatingGauge][main] A 未知类型 (org.jruby.RubySymbol) 的度量指标已被 为键创建:状态。这可能会导致无效的序列化。它 建议向负责人记录问题 开发人员/开发团队。 [2021-11-02T19:35:11,553][警告 ][org.logstash.instrument.metrics.gauge.LazyDelegatingGauge][main] A 未知类型 (org.jruby.RubySymbol) 的度量指标已被 为键创建:状态。这可能会导致无效的序列化。它 建议向负责人记录问题 开发人员/开发团队。 [2021-11-02T19:35:11,595][警告 ][org.logstash.instrument.metrics.gauge.LazyDelegatingGauge] 一个仪表 已创建未知类型的度量 (org.jruby.RubySymbol) 关键:状态。这可能会导致无效的序列化。它是 建议向负责的开发人员/开发人员记录问题 团队。 [2021-11-02T19:35:16,863][错误][logstash.filters.geoip.databasemanager] 连接到 geoip.elastic.co:443 [geoip.elastic.co/104.154.207.153] 失败:连接超时 {:cause=>org.apache.http.conn.ConnectTimeoutException: 连接到 geoip.elastic.co:443 [geoip.elastic.co/104.154.207.153] 失败: 连接超时} [2021-11-02T19:35:17,111][INFO ][logstash.filters.geoip ][main] 使用geoip数据库 {:path=>“E:/ferdowsi-data/logstash-7.15.1-windows-x86_64/logstash-7.15.1/data/plugins/filters/geoip/CC/GeoLite2-City.mmdb”} [2021-11 -02T19:35:18,035][INFO][logstash.javapipeline][main] 启动管道 {:pipeline_id=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>500, "pipeline.sources"=>["E:/ferdowsi-data/data/apache.conf"], :thread=>"#<0x67262850>

    标签: elasticsearch logstash elastic-stack elk


    【解决方案1】:

    不要在路径选项中使用反斜杠,它被视为转义,因此logstash正在等待创建文件“E:ferdowsi-datadatalogslogs”。使用正斜杠或双反斜杠。

    path => "E:/ferdowsi-data/data/logs/logs"
    

    【讨论】:

    • 你的意思是这样的吗? bin\\logstash.bat -f E:\\ferdowsi-data\\data\\apache.conf
    • 编辑以解决我的意思
    • 谢谢!终于成功了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    相关资源
    最近更新 更多