elasticsearch 日志存储未读取新日志文件,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch 日志存储未读取新日志文件,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch 日志存储未读取新日志文件

elasticsearch 日志存储未读取新日志文件,elasticsearch,logstash,elasticsearch,Logstash,我已经在我的系统中设置了Elasticsearch和Logstash。我试图做的是扫描我所有的日志文件(XML格式)并将其发送到Elasticsearch 我的日志存储配置文件- input { stdin { } file { type => "tweet" path => "/var/www/html/suresh/elasticsearch/product_logs/xml/*" sincedb_path =&g

我已经在我的系统中设置了Elasticsearch和Logstash。我试图做的是扫描我所有的日志文件(XML格式)并将其发送到Elasticsearch

我的日志存储配置文件-

input {
    stdin { }

    file {
        type => "tweet"
        path => "/var/www/html/suresh/elasticsearch/product_logs/xml/*"
        sincedb_path => "/home/suresh/Desktop/tools/logstash-5.5.1/logs/test.sincedb"
        # ignore_older => 60
        # discover_interval => 5
        # start_position => "beginning"

        codec => multiline {
                            pattern =>"^<tweet>"
                            negate => "true"
                            what => "previous"
                        }
    }
}


filter {
    xml {
        store_xml => "false"
        remove_namespaces => "true"
        source => "message"

        xpath => [
            "/tweet/user/text()", "user",
            "/tweet/post_date/text()", "post_date",
            "/tweet/message/text()", "tweet_message"
        ]
    }

    mutate {
        join => ["user", ""]
        join => ["post_date", ""]
        join => ["tweet_message", ""]
    }
}


output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "twitter"
    }

    stdout { codec => rubydebug }

    file {
        path => "/home/suresh/Desktop/tools/logstash-5.5.1/logs/out.log"
    }
}
&将任何新的XML文件放入我的源文件夹Logstash未检测到任何文件&正在解析该文件。但是,当我按下
Ctr+C
关闭Logstash时,它检测到XML文件解析,并在关闭之前将数据发送到Elasticsearh


不知道出了什么问题。任何洞察

试试看,那会对你有帮助的。也许这是sincedb的问题。如果文件没有以换行符结尾,它将保持打开状态,因此可能您对获取的文档数量有限制,因此无法继续。另一种尝试是将sincedb指向/dev/null
sincedb_path=>“/dev/null”
,然后选择一个全新的目录,只是为了检查在这个新环境中系统是否能够获取和解析新文档。@Andrearonagnoli感谢您的回复。你提到的两种方法我都试过了。但是,没有得到任何运气。但是,我注意到的一种模式是“在创建一个新的日志文件后,当我将其放入源文件夹时,什么都没有发生。但是,如果我再次从源文件夹打开同一个文件并添加1/2换行符,它就会开始工作”。不知道到底发生了什么。您是否尝试添加一些非空新行,以检查新添加的行(当然是手动)是否正确解析?您是否尝试创建一些最小的示例来排除配置错误,一次添加一个部件来检查导致问题的部件?这真的可以帮你弄清楚到底发生了什么。试一下,这会帮你。也许这是sincedb的问题。如果文件没有以换行符结尾,它将保持打开状态,因此可能您对获取的文档数量有限制,因此无法继续。另一种尝试是将sincedb指向/dev/null
sincedb_path=>“/dev/null”
,然后选择一个全新的目录,只是为了检查在这个新环境中系统是否能够获取和解析新文档。@Andrearonagnoli感谢您的回复。你提到的两种方法我都试过了。但是,没有得到任何运气。但是,我注意到的一种模式是“在创建一个新的日志文件后,当我将其放入源文件夹时,什么都没有发生。但是,如果我再次从源文件夹打开同一个文件并添加1/2换行符,它就会开始工作”。不知道到底发生了什么。您是否尝试添加一些非空新行,以检查新添加的行(当然是手动)是否正确解析?您是否尝试创建一些最小的示例来排除配置错误,一次添加一个部件来检查导致问题的部件?这真的可以帮你弄清楚到底发生了什么。
<tweet>
  <user>Tweet1</user>
  <post_date>2010-11-15T14:12:12</post_date>
  <message>Playing with logstash-Log1</message>
</tweet>
sudo bin/logstash -f logstash-simple.conf