cookbooks/fb_syslog/templates/default/rsyslog.conf.erb (162 lines of code) (raw):

# rsyslog v5 configuration file # This rsyslog.conf was generated by Chef. To make changes, see # fb_syslog/README.md # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html # Use FQDN for hostname field $PreserveFQDN on #### MODULES #### # Provides support for local system logging (e.g. via logger command) $ModLoad imuxsock <% if node.centos? && !node.centos6? -%> $OmitLocalLogging off <% end -%> # Provides kernel logging support (previously done by rklogd) $ModLoad imklog <% if node['fb_syslog']['rsyslog_use_omprog'] -%> # Provides logging to external programs. module(load="omprog") <% end -%> <% if node['fb_syslog']['rsyslog_server'] -%> # UDP / TCP reception $ModLoad imudp $ModLoad imtcp <% if node['fb_syslog']['rsyslog_server_address'] -%> $UDPServerAddress <%= node['fb_syslog']['rsyslog_server_address'] %> <% end -%> <% non_ruleset_ports = node['fb_syslog']['rsyslog_nonruleset_ports'].to_hash %> <% non_ruleset_ports.each do |proto, ports| -%> <% if proto == 'udp' -%> <% ports.each do |port| -%> $UDPServerRun <%= port %> <% end -%> <% elsif proto == 'tcp' -%> <% ports.each do |port| -%> $InputTCPServerRun <%= port %> <% end -%> <% end -%> <% end -%> <% end -%> <% if node['fb_syslog']['rsyslog_stats_logging'] -%> # Provides periodic output of rsyslog internal counters module(load="impstats" severity="7" resetCounters="on") ## Stats logging syslog.=debug /var/log/rsyslog-stats.log <% end -%> #### GLOBAL DIRECTIVES #### # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat <% if node['fb_syslog']['rsyslog_escape_cchars'] -%> # Escape non-printable control characters in messages entering syslog $EscapeControlCharactersOnReceive on <% end -%> <% unless node['fb_syslog']['rsyslog_additional_sockets'].empty? %> # Additional sockets $InputUnixListenSocketCreatePath on <% node['fb_syslog']['rsyslog_additional_sockets'].each do |sock| %> $AddUnixListenSocket <%= sock %> <% end %> <% end %> # File syncing capability is disabled by default. This feature is usually not required, # not useful and an extreme performance hit #$ActionFileEnableSync on <% unless node['fb_syslog']['rsyslog_early_lines'].empty? %> <% node['fb_syslog']['rsyslog_early_lines'].each do |line| %> <%= line %> <% end %> <% end %> <% node['fb_syslog']['syslog-entries'].to_hash.each_value do |entry| -%> <% if entry['comment'] -%> <%= FB::Helpers.commentify(entry['comment']) %> <% end -%> <%# syslog doesn't support not flushing on OS X, so we cannot use the `-` prefix for files. %> <% action = entry['action'] -%> <% if node.macos? && action.start_with?('-') -%> <% action.slice!(0) -%> <% end -%> <%= "%s %s" % [entry['selector'], action] %> <% end -%> <% unless node['fb_syslog']['rsyslog_late_lines'].empty? %> <% node['fb_syslog']['rsyslog_late_lines'].each do |line| %> <%= line %> <% end %> <% end %> <% rulesets = node['fb_syslog']['rsyslog_rulesets'].to_hash %> <% unless rulesets.empty? -%> ### Custom Rulesets ### <% rulesets.each do |ruleset_name, specs| -%> $RuleSet <%= ruleset_name %> <% specs['rules'].each do |name, filters| -%> # <%= name %> <% filters.each do |filter| -%> <%= filter %> <% end -%> <% end -%> <% if specs['proto'] == 'udp' -%> $InputUDPServerBindRuleset <%= ruleset_name %> $UDPServerRun <%= specs['port'] %> <% elsif specs['proto'] == 'tcp' -%> $InputTCPServerBindRuleset <%= ruleset_name %> $InputTCPServerRun <%= specs['port'] %> <% end -%> <% end -%> <% end -%> <% if node['fb_syslog']['rsyslog_report_suspension'].nil? report_suspension = nil else report_suspension = node['fb_syslog']['rsyslog_report_suspension'] ? 'on' : 'off' end if (!node['fb_syslog']['rsyslog_server'] || node['fb_syslog']['rsyslog_use_omprog_force']) && !node['fb_syslog']['rsyslog_facilities_sent_to_remote'].empty? if node['fb_syslog']['rsyslog_use_omprog'] rsyslog_omprog_binary = node['fb_syslog']['rsyslog_omprog_binary'] rsyslog_omprog_binary_args = node['fb_syslog']['rsyslog_omprog_binary_args'] unless rsyslog_omprog_binary_args.empty? rsyslog_omprog_binary += ' ' + rsyslog_omprog_binary_args.join(' ') end if node.linux? %> # Program Logging <%= node['fb_syslog']['rsyslog_facilities_sent_to_remote'].join(',') %> { action(type="omprog" name="Program_Logging" binary="<%= rsyslog_omprog_binary %>" <% unless report_suspension.nil? -%> action.reportSuspension="<%= report_suspension %>" action.reportSuspensionContinuation="<%= report_suspension %>" <% end -%> template="RSYSLOG_TraditionalFileFormat" ) } <% end # if node.linux? %> <% else # if rsyslog_use_omprog rsyslog_port = node['fb_syslog']['rsyslog_port'] rsyslog_upstream = node['fb_syslog']['rsyslog_upstream'] rsyslog_type = 'omfwd' extra_lines = [] if node.linux? %> # Remote Logging <%= node['fb_syslog']['rsyslog_facilities_sent_to_remote'].join(',') %> { action(type="<%= rsyslog_type %>" name="Remote_Logging" target="<%= rsyslog_upstream %>" port="<%= rsyslog_port %>" protocol="tcp" <% unless report_suspension.nil? -%> action.reportSuspension="<%= report_suspension %>" action.reportSuspensionContinuation="<%= report_suspension %>" <% end -%> <% extra_lines.each do |line| %> <%= line %> <% end # if extra_lines.each %> ) } <% end # if node.linux? %> <% end # ending else rsyslog_use_omprog' %> <% end # if !rsyslog_server and !rsyslog_facilities_sent_to_remote.empty -%>