Puppet Class: cflogsink::internal::logstash

Defined in:
manifests/internal/logstash.pp

Overview

Parameters:

  • plugins (Array[ String[1] ]) (defaults to: [])


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'manifests/internal/logstash.pp', line 6

class cflogsink::internal::logstash (
    Array[ String[1] ] $plugins = [],
) {
    include cfdb::elasticsearch
    ensure_resource( 'package', 'logstash' )

    file { '/etc/systemd/system/logstash.service':
        ensure => link,
        target => '/dev/null',
    }
    -> service { 'logstash':
        ensure  => stopped,
        enable  => mask,
        require => Package['logstash'],
    }

    #---
    $all_plugins = $plugins + [
        #'logstash-input-syslog',
        #'',
    ]

    $plugin_installer = '/usr/share/logstash/bin/logstash-plugin-installer'

    file { $plugin_installer:
        mode    => '0700',
        content => file( 'cflogsink/logstash_plugin_installer.sh' ),
    }
    -> exec { 'Installing LogStash plugins':
        command => "${plugin_installer} install ${all_plugins.join(' ')}",
        unless  => "${plugin_installer} check ${all_plugins.join(' ')}",
        require => Package['logstash'],
    }
}