Плагин ввода файла Logstash не отображается для чтения файлов - PullRequest
0 голосов
/ 10 октября 2019

Цель

Я бы хотел настроить Logstash на чтение файла журнала, выводимого приложением. На данный момент я просто пытаюсь заставить его работать с небольшим приложением, которое просто пишет в файл каждые 5 секунд. Цель состоит в том, чтобы передавать линии по сети, но для этого простого теста я настроил вывод в качестве другого файла.

Config & Code

Это моя конфигурация Logstash:

input {
    file {
        path => "D:\temp\logstash-input.txt"
        mode => "tail"
        codec => line
        start_position => "beginning"
    }

    # An input which works, added to confirm that it's not the output that's a problem
    http {
        port => 1234
    }
}

output {
    file {
        path => "D:\temp\logstash-output.txt"
        codec => line
    }
}

Это тестовая программа на C #:

static void Main(string[] args)
{
    var stopwatch = new Stopwatch();
    stopwatch.Start();
    while (true)
    {
        using (var writer = File.AppendText(@"D:\temp\logstash-input.txt"))
        {
            writer.WriteLine($"{stopwatch.Elapsed.TotalSeconds:F1}s closer to the end of the universe.");
        }

        Thread.Sleep(TimeSpan.FromSeconds(5));
    }
}

Что на самом деле происходит

Приложение успешно записывает logstash-input.txt каждые 5 секунд, что я вижу в текстовом редакторе,Однако Logstash не копирует эти строки в logstash-output.txt. Ничего не выводится в окно командной строки, где запущен Logstash.

Усилие пока

Я добавил второй ввод HTTP, просто чтобы убедиться, что проблема связана с вводом файла, а не свыход. Logstash правильно записывает в logstash-output.txt сообщения, которые я ПОСТУПАЮ в порт 1234 с почтальоном. Итак, файл вывод в порядке.

Я попытался очистить sincedb файлы, которые Logstash создает для отслеживания своей позиции в файлах, я добавил start_position => "beginning" для этого теста, основываясь накакой-то другой совет, который я нашел, но ничего из этого не сработало.

Что-то мне не хватает?

Технические подробности

Я использую Logstash 7.4.0 в Windows10 и OpenJDK 13.

Это полный вывод, который Logstash печатает в окне командной строки. Я не вижу там ничего ценного, никаких явных ошибок, но, может быть, я что-то упускаю.

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.headius.backport9.modules.Modules (file:/D:/programs/logstash-7.4.0/logstash-core/lib/jars/jruby-complete-9.2.8.0.jar) to field java.io.FileDescriptor.fd
WARNING: Please consider reporting this to the maintainers of com.headius.backport9.modules.Modules
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Thread.exclusive is deprecated, use Thread::Mutex
Sending Logstash logs to D:/programs/logstash-7.4.0/logs which is now configured via log4j2.properties
[2019-10-10T13:25:35,728][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2019-10-10T13:25:35,742][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"7.4.0"}
[2019-10-10T13:25:37,268][INFO ][org.reflections.Reflections] Reflections took 38 ms to scan 1 urls, producing 20 keys and 40 values
[2019-10-10T13:25:38,016][WARN ][org.logstash.instrument.metrics.gauge.LazyDelegatingGauge][main] A gauge metric of an unknown type (org.jruby.RubyArray) has been create for key: cluster_uuids. This may result in invalid serialization.  It is recommended to log an issue to the responsible developer/development team.
[2019-10-10T13:25:38,021][INFO ][logstash.javapipeline    ][main] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>1000, :thread=>"#<Thread:0x33627b0d run>"}
[2019-10-10T13:25:38,505][INFO ][logstash.inputs.file     ][main] No sincedb_path set, generating one based on the "path" setting {:sincedb_path=>"D:/programs/logstash-7.4.0/data/plugins/inputs/file/.sincedb_b1efb07038fbb620c60dcef403b917a1", :path=>["D:\\temp\\logstash-input.txt"]}
[2019-10-10T13:25:39,099][INFO ][logstash.javapipeline    ][main] Pipeline started {"pipeline.id"=>"main"}
[2019-10-10T13:25:39,105][INFO ][logstash.inputs.http     ][main] Starting http input listener {:address=>"0.0.0.0:1234", :ssl=>"false"}
[2019-10-10T13:25:39,164][INFO ][filewatch.observingtail  ][main] START, creating Discoverer, Watch with file and sincedb collections
[2019-10-10T13:25:39,170][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2019-10-10T13:25:39,445][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
...