X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/a92c80c41d88faa20123f2841cc335c37905f638..8b89cd092a7f884d64a6901b4935f3193b69da10:/cookbooks/logstash/recipes/default.rb diff --git a/cookbooks/logstash/recipes/default.rb b/cookbooks/logstash/recipes/default.rb index b2932aa97..bbe845021 100644 --- a/cookbooks/logstash/recipes/default.rb +++ b/cookbooks/logstash/recipes/default.rb @@ -1,14 +1,14 @@ # -# Cookbook Name:: logstash +# Cookbook:: logstash # Recipe:: default # -# Copyright 2015, OpenStreetMap Foundation +# Copyright:: 2015, OpenStreetMap Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -17,26 +17,29 @@ # limitations under the License. # +include_recipe "elasticsearch" include_recipe "networking" keys = data_bag_item("logstash", "keys") -package "openjdk-7-jre-headless" -package "logstash" +package %w[ + openjdk-11-jre-headless + logstash +] -cookbook_file "/var/lib/logstash/lumberjack.crt" do - source "lumberjack.crt" +cookbook_file "/var/lib/logstash/beats.crt" do + source "beats.crt" user "root" group "logstash" - mode 0644 + mode "644" notifies :restart, "service[logstash]" end -file "/var/lib/logstash/lumberjack.key" do - content keys["lumberjack"].join("\n") +file "/var/lib/logstash/beats.key" do + content keys["beats"].join("\n") user "root" group "logstash" - mode 0640 + mode "640" notifies :restart, "service[logstash]" end @@ -44,27 +47,49 @@ template "/etc/logstash/conf.d/chef.conf" do source "logstash.conf.erb" user "root" group "root" - mode 0644 + mode "644" + notifies :start, "service[logstash]" +end + +file "/etc/logrotate.d/logstash" do + mode "644" +end + +template "/etc/default/logstash" do + source "logstash.default.erb" + user "root" + group "root" + mode "644" notifies :restart, "service[logstash]" end service "logstash" do action [:enable, :start] - supports :status => true, :restart => true end -forwarders = search(:node, "recipes:logstash\\:\\:forwarder") +template "/etc/cron.daily/expire-logstash" do + source "expire.erb" + owner "root" + group "root" + mode "755" +end + +forwarders = [] + +search(:node, "recipes:logstash\\:\\:forwarder").each do |forwarder| + forwarders.append(forwarder.ipaddresses(:role => :external)) +end + +search(:node, "roles:gateway").each do |forwarder| + forwarders.append(forwarder.ipaddresses(:role => :external)) +end -forwarders.each do |forwarder| - forwarder.interfaces(:role => :external) do |interface| - firewall_rule "accept-lumberjack-#{forwarder}" do - action :accept - family interface[:family] - source "#{interface[:zone]}:#{interface[:address]}" - dest "fw" - proto "tcp:syn" - dest_ports "5043" - source_ports "1024:" - end - end +firewall_rule "accept-logstash" do + action :accept + context :incoming + protocol :tcp + source forwarders + dest_ports %w[5043 5044] + source_ports "1024-65535" + not_if { forwarders.empty? } end