From d5c950b6141ac4277cdce8445f1b23fc90678e31 Mon Sep 17 00:00:00 2001 From: paulczar Date: Sat, 15 Mar 2014 18:35:30 -0500 Subject: [PATCH] first pass at server recipe --- Vagrantfile | 4 +- attributes/default.rb | 7 +- attributes/server.rb | 40 ++-- metadata.rb | 2 +- providers/instance.rb | 142 +++++++++----- recipes/default.rb | 43 ----- recipes/server.rb | 186 +++++++------------ recipes/test.rb | 12 ++ resources/instance.rb | 6 +- templates/default/logstash_server.conf.erb | 4 +- templates/default/sv-logstash_server-run.erb | 18 +- templates/default/sv-logstash_web-run.erb | 15 +- 12 files changed, 236 insertions(+), 243 deletions(-) create mode 100644 recipes/test.rb diff --git a/Vagrantfile b/Vagrantfile index a9b6d34..7a321b9 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -7,7 +7,6 @@ log_level = :info chef_run_list = %w[ java::default logstash::server - logstash::agent ] # curl::default # minitest-handler::default @@ -88,6 +87,9 @@ Vagrant.configure('2') do |config| end config.vm.define :precise64 do |dist_config| + if Vagrant.has_plugin?("vagrant-cachier") + dist_config.cache.scope = :box + end dist_config.vm.box = 'opscode-ubuntu-12.04' dist_config.vm.box_url = 'https://opscode-vm-bento.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_provisionerless.box' diff --git a/attributes/default.rb b/attributes/default.rb index 438a7d8..876c8ce 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -4,8 +4,10 @@ default['logstash']['uid'] = nil # set to nil to let system pick default['logstash']['group'] = 'logstash' default['logstash']['gid'] = nil # set to nil to let system pick -default['logstash']['default_version'] = '1.3.2' -default['logstash']['default_checksum'] = '6a6a6e55efd14a182560af8143883eace1936afb11d59d0c35ce4ed5a5576a18' +default['logstash']['default_version'] = '1.4.0.rc1' +default['logstash']['default_checksum'] = 'b015fa130d589af957c9a48e6f59754f5c0954835abf44bd013547a6b6520e59' +default['logstash']['default_source_url'] = 'https://download.elasticsearch.org/logstash/logstash/logstash-1.4.0.rc1.tar.gz' +default['logstash']['default_install_type'] = 'tarball' default['logstash']['supervisor_gid'] = node['logstash']['group'] default['logstash']['pid_dir'] = '/var/run/logstash' default['logstash']['create_account'] = true @@ -40,3 +42,4 @@ default['logstash']['logging']['maxBackup'] = 10 default['logstash']['logging']['maxSize'] = '10M' default['logstash']['logging']['useFileSize'] = false + diff --git a/attributes/server.rb b/attributes/server.rb index fbbded9..5d5a68d 100644 --- a/attributes/server.rb +++ b/attributes/server.rb @@ -1,25 +1,27 @@ # Encoding: utf-8 -default['logstash']['server']['version'] = '1.3.3' -default['logstash']['server']['home'] = "#{node['logstash']['basedir']}/server" -default['logstash']['server']['log_file'] = '/var/log/logstash/server.log' -default['logstash']['server']['source_url'] = 'https://download.elasticsearch.org/logstash/logstash/logstash-1.3.3-flatjar.jar' -default['logstash']['server']['checksum'] = 'a83503bd2aa32e1554b98f812d0b411fbc5f7b6b21cebb48b7d344474f2dfc6d' -default['logstash']['server']['install_method'] = 'jar' # Either `source` or `jar` -default['logstash']['server']['patterns_dir'] = 'etc/patterns' -default['logstash']['server']['config_dir'] = 'etc/conf.d' -default['logstash']['server']['config_file'] = 'logstash.conf' +default['logstash']['server']['name'] = 'server' +default['logstash']['server']['home'] = "/opt/logstash/#{node['logstash']['server']['name']}" +default['logstash']['server']['version'] = '1.4.0.rc1' +default['logstash']['server']['source_url'] = 'https://download.elasticsearch.org/logstash/logstash/logstash-1.4.0.rc1.tar.gz' +default['logstash']['server']['checksum'] = 'b015fa130d589af957c9a48e6f59754f5c0954835abf44bd013547a6b6520e59' +default['logstash']['server']['install_method'] = 'tarball' +default['logstash']['server']['config_file'] = 'logstash.conf' +default['logstash']['server']['log_file'] = 'server.log' +default['logstash']['server']['base_config'] = 'server.conf.erb' # set blank if don't want data driven config + +default['logstash']['server']['xms'] = '1024M' +default['logstash']['server']['xmx'] = '1024M' +default['logstash']['server']['java_opts'] = '' +default['logstash']['server']['gc_opts'] = '-XX:+UseParallelOldGC' +default['logstash']['server']['ipv4_only'] = false +default['logstash']['server']['debug'] = false +default['logstash']['server']['workers'] = 1 +default['logstash']['server']['patterns'] = [] + +default['logstash']['server']['base_config_cookbook'] = 'logstash' default['logstash']['server']['config_templates'] = [] default['logstash']['server']['config_templates_cookbook'] = 'logstash' default['logstash']['server']['config_templates_variables'] = {} -default['logstash']['server']['base_config'] = 'server.conf.erb' # set blank if don't want data driven config -default['logstash']['server']['base_config_cookbook'] = 'logstash' -default['logstash']['server']['xms'] = '1024M' -default['logstash']['server']['xmx'] = '1024M' -default['logstash']['server']['java_opts'] = '' -default['logstash']['server']['gc_opts'] = '-XX:+UseParallelOldGC' -default['logstash']['server']['ipv4_only'] = false -default['logstash']['server']['debug'] = false -default['logstash']['server']['workers'] = 1 # allow control over the upstart config default['logstash']['server']['upstart_with_sudo'] = false @@ -36,4 +38,4 @@ default['logstash']['server']['web']['address'] = '0.0.0.0' default['logstash']['server']['web']['port'] = '9292' -default['logstash']['server']['logrotate']['options'] = %w{ missingok notifempty compress copytruncate } +default['logstash']['server']['logrotate']['options'] = %w{ missingok notifempty compress copytruncate } \ No newline at end of file diff --git a/metadata.rb b/metadata.rb index defdb9b..a25a8f8 100644 --- a/metadata.rb +++ b/metadata.rb @@ -11,7 +11,7 @@ supports os end -%w{ build-essential runit git ant java logrotate rabbitmq yum python }.each do |ckbk| +%w{ build-essential runit git ant java logrotate rabbitmq yum python ark }.each do |ckbk| depends ckbk end diff --git a/providers/instance.rb b/providers/instance.rb index 29f98b4..6bf24f4 100644 --- a/providers/instance.rb +++ b/providers/instance.rb @@ -11,28 +11,37 @@ include Chef::Mixin::ShellOut def load_current_resource - @base_directory = new_resource.base_directory - @install_type = new_resource.install_type + @base_directory = new_resource.base_directory || node['logstash']['basedir'] + @install_type = new_resource.install_type || node['logstash']['default_install_type'] @version = new_resource.version || node['logstash']['default_version'] @checksum = new_resource.checksum || node['logstash']['default_checksum'] - @source_url = new_resource.source_url || "https://download.elasticsearch.org/logstash/logstash/logstash-#{@version}-flatjar.jar" + @source_url = new_resource.source_url || node['logstash']['default_source_url'] @repo = new_resource.repo @sha = new_resource.sha @java_home = new_resource.java_home - @ls_user = new_resource.user - @ls_group = new_resource.group - @ls_useropts = new_resource.user_opts.clone + @user = new_resource.user + @group = new_resource.group + @useropts = new_resource.user_opts.clone @instance_dir = "#{@base_directory}/#{new_resource.name}".clone @updated = false + @name = new_resource.name end action :create do - ls_homedir = @ls_useropts[:homedir] - ls_uid = @ls_useropts[:uid] - ls_gid = @ls_useropts[:gid] + ls_homedir = @useropts[:homedir] + ls_uid = @useropts[:uid] + ls_gid = @useropts[:gid] + ls_source_url = @source_url + ls_version = @version + ls_checksum = @checksum + ls_basedir = @base_directory + ls_user = @user + ls_group = @group + ls_dir = @dir + ls_name = @name - ur = user @ls_user do + ur = user ls_user do home ls_homedir system true action :create @@ -41,45 +50,65 @@ def load_current_resource end set_updated(ur.updated_by_last_action?) - gr = group @ls_group do + gr = group ls_group do gid ls_gid - members @ls_user + members ls_user append true system true end set_updated(gr.updated_by_last_action?) - bdr = directory @base_directory do - action :create - mode '0755' - owner @ls_user - group @ls_group - end - set_updated(bdr.updated_by_last_action?) + case @install_type + when 'tarball' + @run_context.include_recipe "ark::default" + arkit = ark ls_name do + url ls_source_url + checksum ls_checksum + owner ls_user + group ls_group + mode 0755 + version ls_version + path "#{ls_basedir}" + action :put + end + set_updated(arkit.updated_by_last_action?) - idr = directory @instance_dir do - action :create - mode '0755' - owner @ls_user - group @ls_group - end - set_updated(idr.updated_by_last_action?) + %w{bin etc lib log tmp etc/conf.d patterns}.each do |ldir| + r = directory "#{@instance_dir}/#{ldir}" do + action :create + mode '0755' + owner ls_user + group ls_group + end + set_updated(r.updated_by_last_action?) + end - %w{bin etc lib log tmp etc/conf.d etc/patterns}.each do |ldir| - r = directory "#{@instance_dir}/#{ldir}" do + when "jar" + bdr = directory @base_directory do action :create mode '0755' - owner @ls_user - group @ls_group + owner ls_user + group ls_group end - set_updated(r.updated_by_last_action?) - end + set_updated(bdr.updated_by_last_action?) + + idr = directory @instance_dir do + action :create + mode '0755' + owner ls_user + group ls_group + end + set_updated(idr.updated_by_last_action?) - if @install_type == "jar" - ls_source_url = @source_url - ls_version = @version - ls_checksum = @checksum - ls_instance_dir = @instance_dir + %w{bin etc lib log tmp etc/conf.d patterns}.each do |ldir| + r = directory "#{@instance_dir}/#{ldir}" do + action :create + mode '0755' + owner ls_user + group ls_group + end + set_updated(r.updated_by_last_action?) + end rfr = remote_file "#{ls_instance_dir}/lib/logstash-#{ls_version}.jar" do owner 'root' @@ -95,11 +124,38 @@ def load_current_resource only_if { new_resource.auto_symlink } end set_updated(lr.updated_by_last_action?) - elsif @install_type == "source" + + when "source" + bdr = directory @base_directory do + action :create + mode '0755' + owner ls_user + group ls_group + end + set_updated(bdr.updated_by_last_action?) + + idr = directory @instance_dir do + action :create + mode '0755' + owner ls_user + group ls_group + end + set_updated(idr.updated_by_last_action?) + + %w{bin etc lib log tmp etc/conf.d patterns}.each do |ldir| + r = directory "#{@instance_dir}/#{ldir}" do + action :create + mode '0755' + owner ls_user + group ls_group + end + set_updated(r.updated_by_last_action?) + end + sd = directory "#{@instance_dir}/source" do action :create - owner @ls_user - group @ls_group + owner ls_user + group ls_group mode '0755' end set_updated(sd.updated_by_last_action?) @@ -108,8 +164,8 @@ def load_current_resource repository @repo reference @sha action :sync - user @ls_user - group @ls_group + user ls_user + group ls_group end set_updated(gr.updated_by_last_action?) @@ -117,7 +173,7 @@ def load_current_resource er = execute "build-logstash" do cwd "#{@instance_dir}/source" environment(:JAVA_HOME => @java_home) - user @ls_user # Changed from root cause building as root...WHA? + user ls_user # Changed from root cause building as root...WHA? command "make clean && make VERSION=#{source_version} jar" action :run creates "#{@instance_dir}/source/build/logstash-#{source_version}--monolithic.jar" diff --git a/recipes/default.rb b/recipes/default.rb index cce024f..d5d94ae 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -3,46 +3,3 @@ # Cookbook Name:: logstash # Recipe:: default # -include_recipe 'runit' unless node['platform_version'] >= '12.04' - -if node['logstash']['create_account'] - - group node['logstash']['group'] do - system true - gid node['logstash']['gid'] - end - - user node['logstash']['user'] do - group node['logstash']['group'] - home node['logstash']['homedir'] - system true - action :create - manage_home true - uid node['logstash']['uid'] - end - -else - directory node['logstash']['homedir'] do - recursive true - action :create - group node['logstash']['group'] - owner node['logstash']['user'] - mode '0755' - end -end - -directory node['logstash']['basedir'] do - action :create - owner 'root' - group 'root' - mode '0755' -end - -node['logstash']['join_groups'].each do |grp| - group grp do - members node['logstash']['user'] - action :modify - append true - only_if "grep -q '^#{grp}:' /etc/group" - end -end diff --git a/recipes/server.rb b/recipes/server.rb index f6310f3..9158bdd 100644 --- a/recipes/server.rb +++ b/recipes/server.rb @@ -10,29 +10,26 @@ # # -include_recipe 'logstash::default' -include_recipe 'logrotate' +# install logstash 'server' +logstash_instance node['logstash']['server']['name'] do + base_directory node['logstash']['server']['basedir'] + version node['logstash']['server']['version'] + checksum node['logstash']['server']['checksum'] + source_url node['logstash']['server']['source_url'] + install_type node['logstash']['server']['install_type'] + user node['logstash']['user'] + group node['logstash']['group'] +end -include_recipe 'rabbitmq' if node['logstash']['install_rabbitmq'] +# check for rabbit / zero install +include_recipe 'rabbitmq' if node['logstash']['install_rabbitmq'] if node['logstash']['install_zeromq'] include_recipe 'logstash::zero_mq_repo' node['logstash']['zeromq_packages'].each { |p| package p } end -if node['logstash']['server']['init_method'] == 'runit' - include_recipe 'runit' - service_resource = 'runit_service[logstash_server]' -else - service_resource = 'service[logstash_server]' -end - -if node['logstash']['server']['patterns_dir'][0] == '/' - patterns_dir = node['logstash']['server']['patterns_dir'] -else - patterns_dir = node['logstash']['server']['home'] + '/' + node['logstash']['server']['patterns_dir'] -end - +# fix search if chef solo if Chef::Config[:solo] es_server_ip = node['logstash']['elasticsearch_ip'] graphite_server_ip = node['logstash']['graphite_ip'] @@ -53,63 +50,9 @@ end end -# Create directory for logstash -directory node['logstash']['server']['home'] do - action :create - mode '0755' - owner node['logstash']['user'] - group node['logstash']['group'] -end - -%w{bin etc lib log tmp }.each do |ldir| - directory "#{node['logstash']['server']['home']}/#{ldir}" do - action :create - mode '0755' - owner node['logstash']['user'] - group node['logstash']['group'] - end -end - -# installation -if node['logstash']['server']['install_method'] == 'jar' - remote_file "#{node['logstash']['server']['home']}/lib/logstash-#{node['logstash']['server']['version']}.jar" do - owner 'root' - group 'root' - mode '0755' - source node['logstash']['server']['source_url'] - checksum node['logstash']['server']['checksum'] - action :create_if_missing - end - - link "#{node['logstash']['server']['home']}/lib/logstash.jar" do - to "#{node['logstash']['server']['home']}/lib/logstash-#{node['logstash']['server']['version']}.jar" - notifies :restart, service_resource - end -else - include_recipe 'logstash::source' - - logstash_version = node['logstash']['source']['sha'] || "v#{node['logstash']['server']['version']}" - link "#{node['logstash']['server']['home']}/lib/logstash.jar" do - to "#{node['logstash']['basedir']}/source/build/logstash-#{logstash_version}-monolithic.jar" - notifies :restart, service_resource - end -end - -directory "#{node['logstash']['server']['home']}/etc/conf.d" do - action :create - mode '0755' - owner node['logstash']['user'] - group node['logstash']['group'] -end - -directory patterns_dir do - action :create - mode '0755' - owner node['logstash']['user'] - group node['logstash']['group'] -end - -node['logstash']['patterns'].each do |file, hash| +# add in any custom patterns +patterns_dir = "#{node['logstash']['server']['home']}/patterns" +node['logstash']['server']['patterns'].each do |file, hash| template_name = patterns_dir + '/' + file template template_name do source 'patterns.erb' @@ -121,49 +64,15 @@ end end -log_dir = ::File.dirname node['logstash']['server']['log_file'] -directory log_dir do - action :create - mode '0755' - owner node['logstash']['user'] - group node['logstash']['group'] - recursive true -end - -template "#{node['logstash']['server']['home']}/#{node['logstash']['server']['config_dir']}/#{node['logstash']['server']['config_file']}" do - source node['logstash']['server']['base_config'] - cookbook node['logstash']['server']['base_config_cookbook'] - owner node['logstash']['user'] - group node['logstash']['group'] - mode '0644' - variables( - :graphite_server_ip => graphite_server_ip, - :es_server_ip => es_server_ip, - :enable_embedded_es => node['logstash']['server']['enable_embedded_es'], - :es_cluster => node['logstash']['elasticsearch_cluster'], - :patterns_dir => patterns_dir - ) - notifies :restart, service_resource - action :create - only_if { node['logstash']['server']['config_file'] } -end - -unless node['logstash']['server']['config_templates'].empty? || node['logstash']['server']['config_templates'].nil? - node['logstash']['server']['config_templates'].each do |config_template| - template "#{node['logstash']['server']['home']}/#{node['logstash']['server']['config_dir']}/#{config_template}.conf" do - source "#{config_template}.conf.erb" - cookbook node['logstash']['server']['config_templates_cookbook'] - owner node['logstash']['user'] - group node['logstash']['group'] - mode '0644' - variables node['logstash']['server']['config_templates_variables'][config_template] - notifies :restart, service_resource - action :create - end - end +# services are hard! +if node['logstash']['server']['init_method'] == 'runit' + include_recipe 'runit' + service_resource = 'runit_service[logstash_server]' +else + service_resource = 'service[logstash_server]' end -services = ['server'] +services = [node['logstash']['server']['name']] services << 'web' if node['logstash']['server']['web']['enable'] services.each do |type| @@ -212,12 +121,12 @@ owner 'root' group 'root' mode '0774' - variables(:config_file => node['logstash']['server']['config_dir'], - :home => node['logstash']['server']['home'], - :name => type, - :log_file => node['logstash']['server']['log_file'], - :max_heap => node['logstash']['server']['xmx'], - :min_heap => node['logstash']['server']['xms'] + variables(:config_file => node['logstash']['server']['config_dir'], + :home => node['logstash']['server']['home'], + :name => type, + :log_file => "#{node['logstash']['server']['home']/log/log_file}", + :max_heap => node['logstash']['server']['xmx'], + :min_heap => node['logstash']['server']['xms'] ) end @@ -231,6 +140,43 @@ end end + +# config files +template "#{node['logstash']['server']['home']}/etc/conf.d/#{node['logstash']['server']['config_file']}" do + source node['logstash']['server']['base_config'] + cookbook node['logstash']['server']['base_config_cookbook'] + owner node['logstash']['user'] + group node['logstash']['group'] + mode '0644' + variables( + :graphite_server_ip => graphite_server_ip, + :es_server_ip => es_server_ip, + :enable_embedded_es => node['logstash']['server']['enable_embedded_es'], + :es_cluster => node['logstash']['elasticsearch_cluster'], + :patterns_dir => patterns_dir + ) + notifies :restart, service_resource + action :create + only_if { node['logstash']['server']['config_file'] } +end + +unless node['logstash']['server']['config_templates'].empty? || node['logstash']['server']['config_templates'].nil? + node['logstash']['server']['config_templates'].each do |config_template| + template "#{node['logstash']['server']['home']}/etc/conf.d/#{config_template}.conf" do + source "#{config_template}.conf.erb" + cookbook node['logstash']['server']['config_templates_cookbook'] + owner node['logstash']['user'] + group node['logstash']['group'] + mode '0644' + variables node['logstash']['server']['config_templates_variables'][config_template] + notifies :restart, service_resource + action :create + end + end +end + +# set up logrotate +include_recipe 'logrotate' logrotate_app 'logstash_server' do path "#{log_dir}/*.log" size node['logstash']['logging']['maxSize'] if node['logstash']['logging']['useFileSize'] diff --git a/recipes/test.rb b/recipes/test.rb new file mode 100644 index 0000000..665bee2 --- /dev/null +++ b/recipes/test.rb @@ -0,0 +1,12 @@ +# Encoding: utf-8 +# +# Cookbook Name:: logstash +# Recipe:: default +# + +logstash_instance 'tarball' do + version '1.4.0.rc1' + checksum 'b015fa130d589af957c9a48e6f59754f5c0954835abf44bd013547a6b6520e59' + source_url 'https://download.elasticsearch.org/logstash/logstash/logstash-1.4.0.rc1.tar.gz' + install_type 'tarball' +end diff --git a/resources/instance.rb b/resources/instance.rb index ef30fdb..0e3c943 100644 --- a/resources/instance.rb +++ b/resources/instance.rb @@ -10,10 +10,10 @@ default_action :create if defined?(default_action) attribute :name, :kind_of => String, :name_attribute => true -attribute :base_directory, :kind_of => String, :default => "/opt/logstash" -attribute :install_type, :kind_of => String, :equal_to => ["source", "jar"], :default => 'jar' +attribute :base_directory, :kind_of => String +attribute :install_type, :kind_of => String attribute :auto_symlink, :kind_of => [TrueClass, FalseClass], :default => true -# version/checksum/source_url used by `jar` install_type +# version/checksum/source_url used by `jar`, `tarball` install_type attribute :version, :kind_of => String attribute :checksum, :kind_of => String attribute :source_url, :kind_of => String diff --git a/templates/default/logstash_server.conf.erb b/templates/default/logstash_server.conf.erb index 94dc3c2..ba4291f 100644 --- a/templates/default/logstash_server.conf.erb +++ b/templates/default/logstash_server.conf.erb @@ -22,7 +22,7 @@ script export HOME=$LOGSTASH_HOME export GC_OPTS="<%= node['logstash']['server']['gc_opts'] %>" export JAVA_OPTS="-server -Xms<%= node['logstash']['server']['xms'] %> -Xmx<%= node['logstash']['server']['xmx'] %> -Djava.io.tmpdir=$LOGSTASH_HOME/tmp/ <%= node['logstash']['server']['java_opts'] %> <%= '-Djava.net.preferIPv4Stack=true' if node['logstash']['agent']['ipv4_only'] %>" - export LOGSTASH_OPTS="agent -f <%= node['logstash']['server']['config_dir'] %>" + export LOGSTASH_OPTS="agent -f <%= node['logstash']['server']['home'] %>/etc/conf.d" <% if node['logstash']['server']['pluginpath'] -%> export LOGSTASH_OPTS="$LOGSTASH_OPTS --pluginpath <%= node['logstash']['server']['pluginpath'] %>" <% end -%> @@ -30,7 +30,7 @@ script export LOGSTASH_OPTS="$LOGSTASH_OPTS -w <%= node['logstash']['server']['workers'] %>" <% end %> <% if node['logstash']['server']['log_file'] -%> - export LOGSTASH_OPTS="$LOGSTASH_OPTS -l <%= node['logstash']['server']['log_file'] %>" + export LOGSTASH_OPTS="$LOGSTASH_OPTS -l <%= node['logstash']['server']['home'] %>/log/<%= node['logstash']['server']['log_file'] %>" <% end -%> <% if node['logstash']['server']['debug'] -%> export LOGSTASH_OPTS="$LOGSTASH_OPTS -vv" diff --git a/templates/default/sv-logstash_server-run.erb b/templates/default/sv-logstash_server-run.erb index 77173e2..628e04e 100644 --- a/templates/default/sv-logstash_server-run.erb +++ b/templates/default/sv-logstash_server-run.erb @@ -9,7 +9,7 @@ exec 2>&1 LOGSTASH_HOME="<%= node['logstash']['server']['home'] %>" GC_OPTS="<%= node['logstash']['server']['gc_opts'] %>" JAVA_OPTS="-server -Xms<%= node['logstash']['server']['xms'] %> -Xmx<%= node['logstash']['server']['xmx'] %> -Djava.io.tmpdir=$LOGSTASH_HOME/tmp/ <%= node['logstash']['server']['java_opts'] %> <%= '-Djava.net.preferIPv4Stack=true' if node['logstash']['agent']['ipv4_only'] %>" -LOGSTASH_OPTS="agent -f <%= node['logstash']['server']['config_dir'] %>" +LOGSTASH_OPTS="agent -f <%= node['logstash']['server']['home'] %>/etc/conf.d" <% if node['logstash']['server']['pluginpath'] -%> LOGSTASH_OPTS="$LOGSTASH_OPTS --pluginpath <%= node['logstash']['server']['pluginpath'] %>" <% end -%> @@ -19,11 +19,19 @@ LOGSTASH_OPTS="$LOGSTASH_OPTS -vv" <% if node['logstash']['server']['log_file'] -%> LOGSTASH_OPTS="$LOGSTASH_OPTS -l <%= node['logstash']['server']['log_file'] %>" <% end -%> -<% if node['logstash']['server']['workers'] %> +<% if node['logstash']['server']['workers'] -%> export LOGSTASH_OPTS="$LOGSTASH_OPTS -w <%= node['logstash']['server']['workers'] %>" -<% end %> -<% if node['logstash']['supervisor_gid'] -%> -HOME=$LOGSTASH_HOME exec chpst -u <%= node["logstash"]["user"] %>:<%= node["logstash"]["supervisor_gid"] %> java $JAVA_OPTS $GC_OPTS -jar $LOGSTASH_HOME/lib/logstash.jar $LOGSTASH_OPTS +<% end -%> +<% if node['logstash']['server']['install_method'] == 'tarball' -%> +<% if node['logstash']['supervisor_gid'] -%> +HOME=$LOGSTASH_HOME exec chpst -u <%= node["logstash"]["user"] %>:<%= node["logstash"]["supervisor_gid"] %> $LOGSTASH_HOME/bin/logstash $LOGSTASH_OPTS +<% else -%> +HOME=$LOGSTASH_HOME exec chpst -u <%= node["logstash"]["user"] %> $LOGSTASH_HOME/bin/logstash $LOGSTASH_OPTS +<% end -%> <% else -%> +<% if node['logstash']['supervisor_gid'] -%> +HOME=$LOGSTASH_HOME exec chpst -u <%= node["logstash"]["user"] %>:<%= node["logstash"]["supervisor_gid"] %> java $JAVA_OPTS $GC_OPTS -jar $LOGSTASH_HOME/lib/logstash.jar $LOGSTASH_OPTS +<% else -%> HOME=$LOGSTASH_HOME exec chpst -u <%= node["logstash"]["user"] %> java $JAVA_OPTS $GC_OPTS -jar $LOGSTASH_HOME/lib/logstash.jar $LOGSTASH_OPTS +<% end -%> <% end -%> diff --git a/templates/default/sv-logstash_web-run.erb b/templates/default/sv-logstash_web-run.erb index 3ade8b6..98bba71 100644 --- a/templates/default/sv-logstash_web-run.erb +++ b/templates/default/sv-logstash_web-run.erb @@ -11,9 +11,16 @@ GC_OPTS="<%= node['logstash']['server']['gc_opts'] %>" LOGSTASH_OPTS="web -a <%= node['logstash']['server']['web']['address'] %> -p <%= node['logstash']['server']['web']['port'] %>" - -<% if ! node['logstash']['supervisor_gid'].empty? -%> -HOME=$LOGSTASH_HOME exec chpst -u <%= node['logstash']['user'] %>:<%= node['logstash']['supervisor_gid'] %> java $GC_OPTS -jar $LOGSTASH_HOME/lib/logstash.jar $LOGSTASH_OPTS +<% if node['logstash']['server']['install_method'] == 'tarball' -%> +<% if ! node['logstash']['supervisor_gid'].empty? -%> +HOME=$LOGSTASH_HOME exec chpst -u <%= node['logstash']['user'] %>:<%= node['logstash']['supervisor_gid'] %> $LOGSTASH_HOME/bin/logstash $LOGSTASH_OPTS +<% else -%> +HOME=$LOGSTASH_HOME exec chpst -u <%= node['logstash']['user'] %> $LOGSTASH_HOME/bin/logstash $LOGSTASH_OPTS +<% end -%> <% else -%> +<% if ! node['logstash']['supervisor_gid'].empty? -%> +HOME=$LOGSTASH_HOME exec chpst -u <%= node['logstash']['user'] %>:<%= node['logstash']['supervisor_gid'] %> java $GC_OPTS -jar $LOGSTASH_HOME/lib/logstash.jar $LOGSTASH_OPTS +<% else -%> HOME=$LOGSTASH_HOME exec chpst -u <%= node['logstash']['user'] %> java $GC_OPTS -jar $LOGSTASH_HOME/lib/logstash.jar $LOGSTASH_OPTS -<% end -%> +<% end -%> +<% end -%> \ No newline at end of file