diff --git a/deployment_scripts/puppet/modules/lma_logging_analytics/manifests/kibana.pp b/deployment_scripts/puppet/modules/lma_logging_analytics/manifests/kibana.pp index 8b80f2b..6bca86d 100644 --- a/deployment_scripts/puppet/modules/lma_logging_analytics/manifests/kibana.pp +++ b/deployment_scripts/puppet/modules/lma_logging_analytics/manifests/kibana.pp @@ -34,8 +34,12 @@ class lma_logging_analytics::kibana ( ensure => $version, } + # The init script always creates /var/log/kibana and sets appropriate rights. + $log_dir = '/var/log/kibana' + file { '/opt/kibana/config/kibana.yml': ensure => present, + # This template uses $log_dir content => template('lma_logging_analytics/kibana4.yaml.erb'), notify => Service['kibana'], require => Package['kibana'], @@ -48,4 +52,14 @@ class lma_logging_analytics::kibana ( hasrestart => true, require => Package['kibana'], } + + file { '/etc/logrotate.d/kibana.conf': + ensure => present, + # This template uses $log_dir + content => template('lma_logging_analytics/kibana_logrotate.conf.erb'), + owner => 'root', + group => 'root', + mode => '0644', + require => Package['kibana'], + } } diff --git a/deployment_scripts/puppet/modules/lma_logging_analytics/spec/classes/lma_logging_analytics_kibana_spec.rb b/deployment_scripts/puppet/modules/lma_logging_analytics/spec/classes/lma_logging_analytics_kibana_spec.rb index 775a777..2c2d518 100644 --- a/deployment_scripts/puppet/modules/lma_logging_analytics/spec/classes/lma_logging_analytics_kibana_spec.rb +++ b/deployment_scripts/puppet/modules/lma_logging_analytics/spec/classes/lma_logging_analytics_kibana_spec.rb @@ -28,4 +28,6 @@ describe 'lma_logging_analytics::kibana' do :ensure => '42.24') } it { should contain_service('kibana')} + + it { is_expected.to contain_file('/etc/logrotate.d/kibana.conf') } end diff --git a/deployment_scripts/puppet/modules/lma_logging_analytics/templates/kibana4.yaml.erb b/deployment_scripts/puppet/modules/lma_logging_analytics/templates/kibana4.yaml.erb index b92d423..ec57145 100644 --- a/deployment_scripts/puppet/modules/lma_logging_analytics/templates/kibana4.yaml.erb +++ b/deployment_scripts/puppet/modules/lma_logging_analytics/templates/kibana4.yaml.erb @@ -2,3 +2,4 @@ elasticsearch.url: "<%= @es_scheme %>://<%= @es_host %>:<%= @es_port %>" server.host: <%= @listen_address %> server.port: <%= @listen_port %> kibana.defaultAppId: "dashboard/Logs" +logging.dest: "<%= @log_dir %>/kibana.log" diff --git a/deployment_scripts/puppet/modules/lma_logging_analytics/templates/kibana_logrotate.conf.erb b/deployment_scripts/puppet/modules/lma_logging_analytics/templates/kibana_logrotate.conf.erb new file mode 100644 index 0000000..d3cb4ee --- /dev/null +++ b/deployment_scripts/puppet/modules/lma_logging_analytics/templates/kibana_logrotate.conf.erb @@ -0,0 +1,19 @@ +# managed by puppet + +<%= @log_dir %>/*.log { + copytruncate + compress + delaycompress + missingok + notifempty + # logrotate allows to use only year, month, day and unix epoch + dateext + dateformat -%Y%m%d-%s + # number of rotated files to keep + rotate 10 + # do not rotate files unless both size and time conditions are met + hourly + minsize 20M + # force rotate if filesize exceeded 100M + maxsize 100M +}