Logsta sh 6.2.4 падает при добавлении идентификатора в плагин (ожидается один из #) - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь добавить поле ID в мою конфигурацию Logsta sh 6.2.4. Что я хочу сделать, это отладить "http://localhost: 9600 / _node / stats / pipelines ", поэтому мне нужно несколько имен (id - это случайные UUID без поля id в конфигах). Я нашел документацию по идентификатору плагина . Это работает для меня так:

input {
    http {
        port => "${HTTP_PORT_FOR_EVENTS:8089}"
        additional_codecs => {"application/json"=>"json"}
        id => "http_events"
        tags => [ "test" ]
    }
}

filter {
    if "test" in [tags]  {
        mutate {
            remove_field => [ "headers", "host" ]   
        }
    }
}

Но происходит сбой так:

input {
    http {
        port => "${HTTP_PORT_FOR_EVENTS:808}"
        additional_codecs => {"application/json"=>"json"}
        id => "http_events"
        tags => [ "test" ]
    }
}

filter {
    id => "test2"
    if "test" in [tags]  {
        mutate {
            remove_field => [ "headers", "host" ]   
        }
    }
}

С этой ошибкой (я полагаю, что из-за Docker происходит две ошибки с отключением) перезапуск контейнера или что-то еще):

Не удалось выполнить действие {: action => LogSta sh :: PipelineAction :: Create / pipeline_id: main,: exception => "LogSta sh :: Ошибка конфигурации ",: message =>" Ожидается один из #, {в строке 32, столбец 8 (байт 676) после фильтра {\ r \ n id ",: backtrace => [" / usr / share / logstash / logsta sh -core / lib / logstash / compiler.rb: 42: in compile_imperative'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:50:in compile_graph '"," /usr/share/logstash/logstash-core/lib/logstash/compiler.rb:12:in block in compile_sources'", "org/jruby/RubyArray.java:2486:in map '"," /usr/share/logstash/logstash-core/lib/logstash/compiler.rb:11:in compile_sources'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:51:in initialize' "," / usr / share / logstash / logsta sh -core / lib / logstash / pipeline.rb: 169: в initialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:40:in выполнить '"," /usr/share/logstash/logstash-core/lib/logstash/agent.rb:315:in block in converge_state'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:141:in with_pipelines '"," /usr/share/logstash/logstash-core/lib/logstash/agent.rb:312:in block in converge_state'", "org/jruby/RubyArray.java:1734:in каждая' "," / us r / share / logstash / logsta sh -core / lib / logstash / agent.rb: 299: в блоке converge_state'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:166:in в converge_state_and_update '"," / usr / share / logstash / logsta sh -core / lib / logstash / agent.rb: 141: в with_pipelines'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:164:in converge_state_and_update '"," /usr/share/logstash/logstash-core/lib/logstash/agent.rb:105:in block in execute'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/stud-0.0.23/lib/stud/interval.rb:18:in интервал' "," /usr/share/logstash/logstash-core/lib/logstash/agent.rb:94:in execute'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:348:in block in execute '"," /usr/share/logstash/vendor/bundle/jruby/2.3. 0 / gems / stud-0.0.23 / lib / stud / task.rb: 24: in `block in initialize '"]}

SIGTERM получено. Выключение. Отправка журналов Logsta sh в / usr / share / logstash / logs, который теперь настраивается через log4j2.properties Инициализирующий модуль {: module_name => "fb_ apache",: directory => "/ usr / share / logstash / modules / fb_apache / configuration "} Инициализация модуля {: module_name =>" netflow ",: directory =>" / usr / share / logstash / modules / netflow / configuration "} Игнорирование файла pipelines.yml, поскольку модули или команда указаны параметры линии Запуск Logsta sh {"logsta sh .version" => "6.2.4"} Успешно запущен Logsta sh Конечная точка API {: port => 9600} SIGTERM получен. Завершение работы.

Отправка журналов Logsta sh в / usr / share / logstash / logs, который теперь настраивается через log4j2.properties Модуль инициализации {: module_name => "fb_ apache",: directory => "/ usr / share / logstash / modules / fb_apache / configuration"} Инициализация модуля {: module_name => "netflow",: directory => "/ usr / share / logstash / modules / netflow / configuration"} Игнорирование ' файл pipelines.yml ', поскольку указаны модули или параметры командной строки. Запуск Logsta sh {"logsta sh .version" => "6.2.4"} Успешно запущен Logsta sh Конечная точка API {: port => 9600}

Не удалось выполнить действие {: action => LogSta sh :: PipelineAction :: Create / pipeline_id: main,: exception => "LogSta sh :: ConfigurationError",: message => "Ожидается один из #, {в строке 24, столбец 8 (байт 534) после фильтра {\ n id ",: backtrace => [" / usr / share / logstash / logsta sh -core / lib / logstash / compiler.rb : 42: в compile_imperative'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:50:in compile_graph '"," /usr/share/logstash/logstash-core/lib/logstash/compiler.rb:12:in block in compile_sources'", "org/jruby/RubyArray.java:2486:in map' "," / usr / share / вот gstash / logsta sh -core / lib / logstash / compiler.rb: 11: в compile_sources'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:51:in инициализировать '"," /usr/share/logstash/logstash-core/lib/logstash/pipeline.rb: 169: в initialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:40:in выполнить '"," /usr/share/logstash/logstash-core/lib/logstash/agent.rb:315:in block in converge_state'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:141:in with_pipelines' "," / usr / share / logstash /logstash-core/lib/logstash/agent.rb:312:in block in converge_state'", "org/jruby/RubyArray.java:1734:in каждый '"," /usr/share/logstash/logstash-core/lib/logstash/agent.rb:299 : в converge_state'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:166:in блоке Converge_state_and_update '"," / usr / share / logstash / logsta sh -core / lib / logstash / agent. rb: 141: в with_pipelines'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:164:in converge_state_and_update '"," /usr/share/logstash/logstash-core/lib/logstash/agent.rb:90:in execute'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:348:in блок в execute' "," / usr /share/logstash/vendor/bundle/jruby/2.3.0/gems/stud-0.0.23/lib/stud/task.rb:24:in `block in initialize '"]}

Эти конфиги тоже ломают мой логст sh:

input {
    rabbitmq {
        id => "test1"
        type => "event"
        exchange => "event"
        exclusive => true
    }
}


input {
    id => "test1"
    rabbitmq {
        type => "event"
        exchange => "event"
        exclusive => true
    }
}

1 Ответ

1 голос
/ 18 января 2020

Я нашел решение.

ID должен быть помещен в поле плагина фильтра (например, grok, mutate или json), а не только в поле фильтра:

filter {
    if "test" in [tags]  {
        mutate {
            id => "test2"
            remove_field => [ "headers", "host" ]   
        }
    }
}

Также не каждый Версия плагина поддержки IP-поля. Обновите плагины при необходимости:

logstash-plugin update logstash-filter-mutate  
...