【问题标题】:Cannot load index to elasticsearch from external file, using logstash无法使用logstash将索引从外部文件加载到elasticsearch
【发布时间】:2014-06-17 20:41:32
【问题描述】:

我在同一台计算机上并行运行一个 elastic 实例和一个 logstash 实例。

当尝试将文件加载到弹性时,使用正在运行下面的配置文件的 logstash,我在弹性上得到以下输出消息,并且没有加载文件 (当输入配置为标准输入时,一切似乎都正常)

有什么想法吗?

" [2014-06-17 22:42:24,748][INFO ][cluster.service ] [Masked Marvel] removed {[logstash- Eitan-PC-5928-2010][Ql5fyvEGQyO96R9NIeP32g][Eitan-PC][inet[Eitan-PC/10.0.0.5:9301]]{client=true, data=false},}, reason: zen-disco-node_failed([logstash-Eitan-PC-5928-2010][Ql5fyvEGQyO96R9NIeP32g][Eitan-PC][inet[Eitan-PC/10.0.0.5:9301]]{client=true, data=false}), reason transport disconnected (with 已验证连接)

[2014-06-17 22:43:00,686][INFO ][cluster.service ] [Masked Marvel] added {[logstash-Eitan-PC-5292-4014][m0Tg-fcmTHW9aP6zHeUqTA][Eitan-PC][inet[/10.0.0.5:9301]]{client=true, data=false},}, reason: zen-disco-receive(join from node[[logstash-Eitan-PC-5292-4014][m0Tg-fcmTHW9aP6zHeUqTA][Eitan-PC][inet[/10.0.0.5:9301]]{client=true, data=false}]) "

配置文件:

    input { 
            file {
                path => "c:\testLog.txt"
            }
        } 


    output {
        elasticsearch { host => localhost  
                index=> amat1
                 }

}

【问题讨论】:

    标签: elasticsearch logstash


    【解决方案1】:

    当您使用“elasticsearch”作为输出 http://logstash.net/docs/1.4.1/outputs/elasticsearch 而不是“elasticsearch_http”http://logstash.net/docs/1.4.1/outputs/elasticsearch_http 时,您将需要设置“协议”。

    原因是它可以有 3 个不同的值,“node”、“http”或“transport”,每个值都有不同的行为,并且没有很好地记录默认选择。

    从您的日志文件看来,它似乎正在尝试使用“节点”协议,因为我看到端口 9301 上的连接尝试表明(以及其他日志条目)logstash 正在尝试作为节点加入集群。这可能由于多种原因而失败,包括集群名称不匹配。

    我建议将协议设置为“http” - 该更改之前已经解决了类似的问题。

    另见:

    http://logstash.net/docs/1.4.1/outputs/elasticsearch#cluster http://logstash.net/docs/1.4.1/outputs/elasticsearch#protocol

    编辑:

    我在您的配置中看到的其他一些问题 -

    • 您的主机和索引应该是字符串,在 logstash 配置中 文件应该用双引号括起来,“localhost”和“amat1”。 没有引号可能有效,但他们建议您使用引号。

      http://logstash.net/docs/1.4.1/configuration#string

    • 如果您不使用“http”作为协议或不使用 “elasticsearch_http”作为输出,您应该将集群设置为 您的 ES 集群名称(因为它将尝试成为 集群)。

    • 您应该将输入文件下的 start_position 设置为“开始”。 否则它将默认从文件末尾读取,而您 不会看到任何数据。这是 Windows 现在的一个特殊问题 作为在文件中跟踪位置的另一种方式,sincedb,是 在 Windows 上损坏:

      https://logstash.jira.com/browse/LOGSTASH-1587

      http://logstash.net/docs/1.4.1/inputs/file#start_position

    • 您应该将日志文件的路径更改为: "C:/testLog.txt"。 Logstash 更喜欢正斜杠和大写 Windows 下的驱动器号。

      https://logstash.jira.com/browse/LOGSTASH-430

    【讨论】:

    • 谢谢约翰,我试过没有成功 :-(。试过 elasticsearch_http {} 和 elasticsearch{protocol => "http"} 但都没有用......还有其他想法吗?
    • 顺便说一句,使用 elasticsearch_http{ } 时,我收到一条错误消息,提示我必须提供“模板”,但在模板文档中。它说这是一个可选配置...
    • 您在使用这两种设置时收到的错误消息与第一次完全相同?
    • 嗨,当这是配置文件时:justpaste.it/fwze这是我在logstash上得到的输出消息:justpaste.it/fwzd(没有弹性)。
    • 当这是配置文件时:justpaste.it/fwzh 我在弹性上没有输出,这是logstash 上的唯一输出:justpaste.it/fwzi。再次感谢您的帮助:-)
    猜你喜欢
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 2020-03-20
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    相关资源
    最近更新 更多