From f2e6ad4f95236caa8fb032382952c42b0aaf2e99 Mon Sep 17 00:00:00 2001 From: Simon McCartney Date: Tue, 27 Aug 2013 15:56:11 +0100 Subject: [PATCH] Allow TCP and UDP listening to be configurable --- .kitchen.yml | 5 ++++- attributes/default.rb | 18 ++++++++++++++---- recipes/default.rb | 1 - templates/default/rsyslog.conf.erb | 21 ++++++++++++--------- 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/.kitchen.yml b/.kitchen.yml index 1047f059..a6881470 100644 --- a/.kitchen.yml +++ b/.kitchen.yml @@ -13,7 +13,10 @@ suites: run_list: ["recipe[rsyslog::server]", "recipe[rsyslog::client]"] attributes: rsyslog: - server_ip: 127.0.0.1 + server_ip: 127.0.0.1 # send to ourselves (dumb) + udp_enabled: true # listen on udp.. + udp_address: 127.0.0.1 # ..but bound to the loopback for safety + - name: rsyslog-clientdisabled run_list: ["recipe[rsyslog::clientdisabled]"] attributes: diff --git a/attributes/default.rb b/attributes/default.rb index 3d3ac800..3dfcda4d 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -18,10 +18,20 @@ # default["rsyslog"]["log_dir"] = "/srv/rsyslog" -default["rsyslog"]["server"] = false -default["rsyslog"]["protocol"] = "tcp" -default["rsyslog"]["port"] = "514" -default["rsyslog"]["server_ip"] = nil + +# rsyslog shipper/remote configuration +default["rsyslog"]["server_ip"] = nil # where to send logs +default["rsyslog"]["protocol"] = "tcp" # protocol touse when sending logs +default["rsyslog"]["port"] = "514" # port to use when sending logs + +# rsyslog server/listener options +default["rsyslog"]["server"] = false +default["rsyslog"]['listener']["tcp_enabled"] = false # listen on TCP? +default["rsyslog"]['listener']["tcp_port"] = "514" # what port to listen for TCP on +default["rsyslog"]['listener']["udp_enabled"] = true # listen on UDP? +default["rsyslog"]['listener']["udp_port"] = "514" # what port to listen for UDP on +default["rsyslog"]['listener']["udp_address"] = nil # what ip to bind to, nil means unconfigured, so rsyslog defaults + default["rsyslog"]["server_search"] = "role:loghost" default["rsyslog"]["remote_logs"] = true default["rsyslog"]["per_host_dir"] = "%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%" diff --git a/recipes/default.rb b/recipes/default.rb index bf5762e7..6621829f 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -47,7 +47,6 @@ owner node['rsyslog']['user'] group node['rsyslog']['group'] mode 0644 - variables(:protocol => node['rsyslog']['protocol']) notifies :restart, "service[#{node['rsyslog']['service_name']}]" end diff --git a/templates/default/rsyslog.conf.erb b/templates/default/rsyslog.conf.erb index 2f7c6472..026aeeb1 100644 --- a/templates/default/rsyslog.conf.erb +++ b/templates/default/rsyslog.conf.erb @@ -21,17 +21,20 @@ $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support (previously done by rklogd) #$ModLoad immark # provides --MARK-- message capability -<% if node['rsyslog']['server'] -%> -# Provide <%= @protocol.upcase %> log reception -<% case @protocol -%> -<% when "tcp" -%> + <% if node['rsyslog']['listener']['tcp_enabled'] -%> +# Provide TCP log reception $ModLoad imtcp -$InputTCPServerRun <%= node['rsyslog']['port'] %> -<% when "udp" -%> +$InputTCPServerRun <%= node['rsyslog']['listener']['tcp_port'] %> + <% end -%> + + <% if node['rsyslog']['listener']['udp_enabled'] -%> +# Provide UDP log reception $ModLoad imudp -$UDPServerRun <%= node['rsyslog']['port'] %> -<% end -%> -<% end -%> + <% unless node['rsyslog']['listener']['udp_address'].nil? %> +$UDPServerAddress <%= node['rsyslog']['listener']['udp_address'] %> + <% end %> +$UDPServerRun <%= node['rsyslog']['listener']['udp_port'] %> + <% end -%> ########################### #### GLOBAL DIRECTIVES ####