diff --git a/manifests/init.pp b/manifests/init.pp index 493848d..82c427c 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -14,9 +14,6 @@ # [*config_file*] # String. Path to the configuration file. # -# [*logfile*] -# String. Path to the log file. -# # [*config_file_owner*] # String. User to own the telegraf config file. # @@ -32,6 +29,21 @@ # [*config_folder_mode*] # String. File mode for the telegraf config folder. # +# [*logfile*] +# String. Path to the log file. +# +# [*logfile_rotation_interval*] +# String. The logfile will be rotated after this time interval. When set +# to 0 no time based rotation is performed. ex: "1d" +# +# [*logfile_rotation_max_size*] +# String. The logfile will be rotated when it becomes larger than this specified +# size. When set to 0 no size based rotation is performed. ex: "10MB" +# +# [*logfile_rotation_max_archives*] +# Integer. Maximum number of rotated archives to keep, any older logs are deleted. +# If set to -1, no archives are removed. +# # [*hostname*] # String. Override default hostname used to identify this agent. # @@ -96,39 +108,42 @@ # String. URL for windows telegraf chocolatey repo # class telegraf ( - String $package_name = $telegraf::params::package_name, - String $ensure = $telegraf::params::ensure, - String $config_file = $telegraf::params::config_file, - String $config_file_owner = $telegraf::params::config_file_owner, - String $config_file_group = $telegraf::params::config_file_group, - Stdlib::Filemode $config_file_mode = $telegraf::params::config_file_mode, - String $config_folder = $telegraf::params::config_folder, - Stdlib::Filemode $config_folder_mode = $telegraf::params::config_folder_mode, - String $hostname = $telegraf::params::hostname, - Boolean $omit_hostname = $telegraf::params::omit_hostname, - String $interval = $telegraf::params::interval, - Boolean $round_interval = $telegraf::params::round_interval, - Integer $metric_batch_size = $telegraf::params::metric_batch_size, - Integer $metric_buffer_limit = $telegraf::params::metric_buffer_limit, - String $collection_jitter = $telegraf::params::collection_jitter, - String $flush_interval = $telegraf::params::flush_interval, - String $flush_jitter = $telegraf::params::flush_jitter, - String $precision = $telegraf::params::precision, - String $logfile = $telegraf::params::logfile, - Boolean $debug = $telegraf::params::debug, - Boolean $quiet = $telegraf::params::quiet, - Hash $inputs = $telegraf::params::inputs, - Hash $outputs = $telegraf::params::outputs, - Hash $global_tags = $telegraf::params::global_tags, - Boolean $manage_service = $telegraf::params::manage_service, - Boolean $manage_repo = $telegraf::params::manage_repo, - Optional[String] $repo_location = $telegraf::params::repo_location, - Boolean $purge_config_fragments = $telegraf::params::purge_config_fragments, - String $repo_type = $telegraf::params::repo_type, - String $windows_package_url = $telegraf::params::windows_package_url, - Boolean $service_enable = $telegraf::params::service_enable, - String $service_ensure = $telegraf::params::service_ensure, - Array $install_options = $telegraf::params::install_options, + String $package_name = $telegraf::params::package_name, + String $ensure = $telegraf::params::ensure, + String $config_file = $telegraf::params::config_file, + String $config_file_owner = $telegraf::params::config_file_owner, + String $config_file_group = $telegraf::params::config_file_group, + Stdlib::Filemode $config_file_mode = $telegraf::params::config_file_mode, + String $config_folder = $telegraf::params::config_folder, + Stdlib::Filemode $config_folder_mode = $telegraf::params::config_folder_mode, + String $hostname = $telegraf::params::hostname, + Boolean $omit_hostname = $telegraf::params::omit_hostname, + String $interval = $telegraf::params::interval, + Boolean $round_interval = $telegraf::params::round_interval, + Integer $metric_batch_size = $telegraf::params::metric_batch_size, + Integer $metric_buffer_limit = $telegraf::params::metric_buffer_limit, + String $collection_jitter = $telegraf::params::collection_jitter, + String $flush_interval = $telegraf::params::flush_interval, + String $flush_jitter = $telegraf::params::flush_jitter, + String $precision = $telegraf::params::precision, + String $logfile = $telegraf::params::logfile, + String $logfile_rotation_interval = $telegraf::params::logfile_rotation_interval, + String $logfile_rotation_max_size = $telegraf::params::logfile_rotation_max_size, + Integer $logfile_rotation_max_archives = $telegraf::params::logfile_rotation_max_archives, + Boolean $debug = $telegraf::params::debug, + Boolean $quiet = $telegraf::params::quiet, + Hash $inputs = $telegraf::params::inputs, + Hash $outputs = $telegraf::params::outputs, + Hash $global_tags = $telegraf::params::global_tags, + Boolean $manage_service = $telegraf::params::manage_service, + Boolean $manage_repo = $telegraf::params::manage_repo, + Optional[String] $repo_location = $telegraf::params::repo_location, + Boolean $purge_config_fragments = $telegraf::params::purge_config_fragments, + String $repo_type = $telegraf::params::repo_type, + String $windows_package_url = $telegraf::params::windows_package_url, + Boolean $service_enable = $telegraf::params::service_enable, + String $service_ensure = $telegraf::params::service_ensure, + Array $install_options = $telegraf::params::install_options, ) inherits telegraf::params { diff --git a/manifests/params.pp b/manifests/params.pp index 59e5c46..39d28cb 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -5,52 +5,55 @@ class telegraf::params { if $facts['os']['family'] == 'windows' { - $config_file = 'C:/Program Files/telegraf/telegraf.conf' - $config_file_owner = 'Administrator' - $config_file_group = 'Administrators' - $config_folder = 'C:/Program Files/telegraf/telegraf.d' - $logfile = 'C:/Program Files/telegraf/telegraf.log' - $manage_repo = false - $repo_location = undef - $service_enable = true - $service_ensure = running - $service_hasstatus = false - $service_restart = undef + $config_file = 'C:/Program Files/telegraf/telegraf.conf' + $config_file_owner = 'Administrator' + $config_file_group = 'Administrators' + $config_folder = 'C:/Program Files/telegraf/telegraf.d' + $logfile = 'C:/Program Files/telegraf/telegraf.log' + $manage_repo = false + $repo_location = undef + $service_enable = true + $service_ensure = running + $service_hasstatus = false + $service_restart = undef } else { - $config_file = '/etc/telegraf/telegraf.conf' - $config_file_owner = 'telegraf' - $config_file_group = 'telegraf' - $config_file_mode = '0640' - $config_folder = '/etc/telegraf/telegraf.d' - $config_folder_mode = '0770' - $logfile = '' - $manage_repo = true - $repo_location = 'https://repos.influxdata.com/' - $service_enable = true - $service_ensure = running - $service_hasstatus = true - $service_restart = 'pkill -HUP telegraf' + $config_file = '/etc/telegraf/telegraf.conf' + $config_file_owner = 'telegraf' + $config_file_group = 'telegraf' + $config_file_mode = '0640' + $config_folder = '/etc/telegraf/telegraf.d' + $config_folder_mode = '0770' + $logfile = '' + $manage_repo = true + $repo_location = 'https://repos.influxdata.com/' + $service_enable = true + $service_ensure = running + $service_hasstatus = true + $service_restart = 'pkill -HUP telegraf' } - $package_name = 'telegraf' - $ensure = 'present' - $install_options = [] - $hostname = $trusted['hostname'] - $omit_hostname = false - $interval = '10s' - $round_interval = true - $metric_batch_size = 1000 - $metric_buffer_limit = 10000 - $collection_jitter = '0s' - $flush_interval = '10s' - $flush_jitter = '0s' - $precision = '' - $debug = false - $quiet = false - $global_tags = {} - $manage_service = true - $purge_config_fragments = false - $repo_type = 'stable' - $windows_package_url = 'https://chocolatey.org/api/v2/' + $package_name = 'telegraf' + $ensure = 'present' + $install_options = [] + $hostname = $facts['networking']['hostname'] + $omit_hostname = false + $interval = '10s' + $round_interval = true + $logfile_rotation_interval = '0' + $logfile_rotation_max_size = '0' + $logfile_rotation_max_archives = 0 + $metric_batch_size = 1000 + $metric_buffer_limit = 10000 + $collection_jitter = '0s' + $flush_interval = '10s' + $flush_jitter = '0s' + $precision = '' + $debug = false + $quiet = false + $global_tags = {} + $manage_service = true + $purge_config_fragments = false + $repo_type = 'stable' + $windows_package_url = 'https://chocolatey.org/api/v2/' $outputs = { 'influxdb' => [{ diff --git a/templates/telegraf.conf.erb b/templates/telegraf.conf.erb index 9129234..78d41e1 100644 --- a/templates/telegraf.conf.erb +++ b/templates/telegraf.conf.erb @@ -21,6 +21,9 @@ flush_jitter = "<%= @flush_jitter %>" precision = "<%= @precision %>" logfile = "<%= @logfile %>" + logfile_rotation_interval = "<%= @logfile_rotation_interval %>" + logfile_rotation_max_size = "<%= @logfile_rotation_max_size %>" + logfile_rotation_max_archives = <%= @logfile_rotation_max_archives %> debug = <%= @debug %> quiet = <%= @quiet %>