diff --git a/manifests/site.pp b/manifests/site.pp index 456371d2daec07a67aa9a09c9616bad146e92dac..1c7a52ad839705d5ae75b693d0e76254c64f5fc9 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -31,19 +31,24 @@ node default { } node 'elk-server.openstacklocal' { -# include ::java + # Configure java + # JAVA_HOME needs to be set for various ELK components to work properly class { 'java' : package => 'openjdk-8-jre', java_home => '/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java', } + # Load Elastic Repo. Contains various packages include elastic_stack::repo + # Default Elasticsearch setup class { 'elasticsearch': } + # Default Kibana setup class { 'kibana': } - #include nginx + # Set up a reverse proxy with nginx + # Needed in order to view the Kibana dashboard in a web browser class { 'nginx': } nginx::resource::server { 'default': listen_port => 80, @@ -51,20 +56,21 @@ node 'elk-server.openstacklocal' { listen_options => 'default_server', } + # Configure logstash include logstash - # TODO: Chain package, file thingies + # Install and configure heartbeat package {'heartbeat-elastic': ensure => present, - }~> file {'/etc/heartbeat/heartbeat.yml': + } ~> file {'/etc/heartbeat/heartbeat.yml': ensure => present, source => 'puppet:///modules/beats_conf/heartbeat.yml', - }~> service {'heartbeat-elastic': + } ~> service {'heartbeat-elastic': ensure => running, enable => true, - require => Package['heartbeat-elastic'], } + # Load config file from repo file {'/etc/filebeat/filebeat.yml': ensure => present, source => 'puppet:///modules/beats_conf/filebeat.yml', @@ -72,11 +78,12 @@ node 'elk-server.openstacklocal' { notify => Service['filebeat'], } + # Install filebeat package {'filebeat': ensure => present, - # require => File['/etc/filebeat/filebeat.yml'], } + # Enable the filebeat nginx module file { '/etc/filebeat/modules.d/nginx.yml': ensure => link, target => '/etc/filebeat/modules.d/nginx.yml.disabled', @@ -84,6 +91,7 @@ node 'elk-server.openstacklocal' { notify => Service['filebeat'], } + # Enable the filebeat system module file { '/etc/filebeat/modules.d/system.yml': ensure => link, target => '/etc/filebeat/modules.d/system.yml.disabled', @@ -94,22 +102,24 @@ node 'elk-server.openstacklocal' { service {'filebeat': ensure => running, enable => true, - # require => File['/etc/filebeat/filebeat.yml'], - # require => File['/etc/filebeat/modules.d/system.yml'], - # require => File['/etc/filebeat/modules.d/nginx.yml'], } + ### Config files for logstash + + # Make logstash use beats as an input logstash::configfile { 'beats': content => 'input { beats { port => 5044 } }', path => '/etc/logstash/conf.d/02-beats-input.conf', } + # Use heartbeat as an input logstash::configfile { 'heartbeat': content => 'input { heartbeat {} }', path => '/etc/logstash/conf.d/03-heartbeat-input.conf', } + # Configure output to Elasticsearch logstash::configfile { 'es-01-out': source => 'puppet:///modules/logstash_conf/30-elasticsearch-output.conf', path => '/etc/logstash/conf.d/30-elasticsearch-output.conf' @@ -118,9 +128,13 @@ node 'elk-server.openstacklocal' { } node 'app-server.openstacklocal' { + # Set up a default apache server include apache + + # Load Elastic stack repo to get various packages include elastic_stack::repo + # Configure filebeat file {'/etc/filebeat/filebeat.yml': ensure => present, source => 'puppet:///modules/beats_conf/filebeat.yml', @@ -128,12 +142,12 @@ node 'app-server.openstacklocal' { notify => Service['filebeat'], } + # Install filebeat package {'filebeat': ensure => present, -# require => File['/etc/filebeat/filebeat.yml'], } - # TODO: change to ~> + # Enable the filebeat apache module file { '/etc/filebeat/modules.d/apache.yml': ensure => link, target => '/etc/filebeat/modules.d/apache.yml.disabled', @@ -141,6 +155,7 @@ node 'app-server.openstacklocal' { notify => Service['filebeat'], } + # Enable the filebeat apache module file { '/etc/filebeat/modules.d/system.yml': ensure => link, target => '/etc/filebeat/modules.d/system.yml.disabled', @@ -151,8 +166,5 @@ node 'app-server.openstacklocal' { service {'filebeat': ensure => running, enable => true, - # require => File['/etc/filebeat/filebeat.yml'], - # require => File['/etc/filebeat/modules.d/system.yml'], - # require => File['/etc/filebeat/modules.d/nginx.yml'], } }