Logsta sh Разработка плагинов - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь разработать новый плагин logsta sh в своей среде стека разработки Elasticsearch.

Я начал с создания скелета для моего нового плагина с помощью утилиты logsta sh -plugin generate . Как только я это установил, я смог создать свой плагин с помощью утилиты сборки гемов, которая работала без ошибок и создала для меня гем. Затем я запустил утилиту установки logsta sh -plugin, которая успешно установила мой плагин.

Запись в моем logsta sh .gem выглядит так: gem "logstash-output-s3-4.3.3", "0.1.0", :path => "./vendor/bundle/jruby/2.5.0/gems/logstash-output-s3-4.3.3"

Затем я взял код из фактического плагина logsta sh, который я надеюсь изменить, и скопировал его в свой новый каталог плагина, а затем создал новый файл logsta sh .conf для тестирования с использованием моего нового плагин и запустил службу logsta sh. Он работал, как и ожидалось, перемещая данные с серверов, которые наблюдались в соответствующих сегментах s3.

logsta sh .conf output section -

output {
s3{
    region => "us-east-1"
    bucket => "xxxx"
    prefix => "Dev/xxxx/%{+YYYY}/%{+MM}/%{+dd}/"
    server_side_encryption => true
    server_side_encryption_algorithm => "aws:kms"
    ssekms_key_id => "xxxx"
    validate_credentials_on_root_bucket => false
    codec => "json_lines"
    size_file => 1024000
    time_file => 5
    rotation_strategy => "size_and_time"
    temporary_directory => "../../LogstashS3OutputData/temp/"
    canned_acl => "private"
}

s3{
    region => "us-east-1"
    bucket => "xxxx"
    prefix => "Dev/xxxx/%{+YYYY}/%{+MM}/%{+dd}/"
    server_side_encryption => true
    server_side_encryption_algorithm => "aws:kms"
    ssekms_key_id => "xxxx"
    validate_credentials_on_root_bucket => false
    codec => "json_lines"
    size_file => 1024000
    time_file => 5
    rotation_strategy => "size_and_time"
    temporary_directory => "../../LogstashS3OutputData/temp/"
    canned_acl => "private"
}
}

Следующим шагом было следующее: Вот где у меня возникли проблемы, было попытаться создать новое свойство для плагина с именем file_prefix -

s3{
    region => "us-east-1"
    bucket => "xxxx"
    prefix => "Dev/xxxx/xxxx/%{+YYYY}/%{+MM}/%{+dd}/"
    file_prefix => "test"
    server_side_encryption => true
    server_side_encryption_algorithm => "aws:kms"
    ssekms_key_id => "arn:aws:kms:xxxx"
    validate_credentials_on_root_bucket => false
    codec => "json_lines"
    size_file => 1024000
    time_file => 5
    rotation_strategy => "size_and_time"
    temporary_directory => "../../LogstashS3OutputData/temp/"
    canned_acl => "private"
}

Я изменил следующие файлы в своем решении \ vendor \ bundle \ jruby \ 2.5.0 \ gems \ logsta sh -output-s3-4.3.3 \ spec \ output \ s3_spe c .rb

добавлен "file_prefix" => file_prefix в строке 15 \ vendor \ bundle \ jruby \ 2.5 .0 \ gems \ logsta sh -output-s3-4.3.3 \ spec \ supports \ helpers.rb

добавлено let (: file_prefix) {} в строке 12 добавлено "file_prefix" => file_prefix , в строке 19 \ vendor \ bundle \ jruby \ 2.5.0 \ gems \ logsta sh -output-s3-4.3.3 \ lib \ logstash \ output \ s3.rb

добавлен config: file_prefix, : validate =>: строка сразу после оператора config: prefix,: validate =>: string,: default => '' в строке 154 добавлен @file_prefix = file_prefix в строке 226 Теперь, когда я запускаю t he logsta sh service Я получаю это сообщение об ошибке Неизвестный параметр 'file_prefix' для s3

Я искал и перепробовал все, что мог придумать, но не могу преодолеть это препятствие.

TIA, Билл Янгман

1 Ответ

0 голосов
/ 18 июня 2020

Это можно считать закрытым, поскольку я использую аналогичный запрос функции в ветви разработчика плагина вывода s3 в качестве отправной точки для моего проекта.

Спасибо, -Bill

...