diff --git a/modules/openstack_project/manifests/logstash_worker.pp b/modules/openstack_project/manifests/logstash_worker.pp index 1180f4d217..ad8f494a14 100644 --- a/modules/openstack_project/manifests/logstash_worker.pp +++ b/modules/openstack_project/manifests/logstash_worker.pp @@ -25,11 +25,32 @@ class openstack_project::logstash_worker ( source => 'puppet:///modules/openstack_project/logstash/logstash-indexer.default', } - class { 'logstash::indexer': - conf_template => 'openstack_project/logstash/indexer.conf.erb', + vcsrepo { '/opt/logstash-filters': + ensure => latest, + provider => git, + revision => 'master', + source => 'https://git.openstack.org/openstack-infra/logstash-filters', } - include log_processor + include ::logstash + + logstash::filter { 'openstack-logstash-filters': + level => '50', + target => '/opt/logstash-filters/filters/openstack-filters.conf', + require => [ + Class['::logstash'], + Vcsrepo['/opt/logstash-filters'], + ], + notify => Service['logstash'], + } + + class { '::logstash::indexer': + input_template => 'openstack_project/logstash/input.conf.erb', + output_template => 'openstack_project/logstash/output.conf.erb', + require => Logstash::Filter['openstack-logstash-filters'], + } + + include ::log_processor log_processor::worker { 'A': config_file => 'puppet:///modules/openstack_project/logstash/jenkins-log-worker.yaml', } diff --git a/modules/openstack_project/templates/logstash/input.conf.erb b/modules/openstack_project/templates/logstash/input.conf.erb new file mode 100644 index 0000000000..7e748a26d7 --- /dev/null +++ b/modules/openstack_project/templates/logstash/input.conf.erb @@ -0,0 +1,8 @@ +input { + tcp { + host => "localhost" + port => 9999 + codec => json_lines {} + type => "jenkins" + } +} diff --git a/modules/openstack_project/templates/logstash/output.conf.erb b/modules/openstack_project/templates/logstash/output.conf.erb new file mode 100644 index 0000000000..d189ccfeac --- /dev/null +++ b/modules/openstack_project/templates/logstash/output.conf.erb @@ -0,0 +1,7 @@ +output { + elasticsearch { + hosts => <%= @elasticsearch_nodes.map { |node| node + ":9200" }.inspect %> + manage_template => false + flush_size => 1024 + } +}