Назад | Перейти на главную страницу

Модуль puppet-logstash создает пустой файл logstash.conf

Я, наверное, не понимаю, как правильно использовать.

Я настроил конфигурацию моего грузоотправителя с помощью Hiera:

classes:
  - os::repo
  - profiles::logstash::shipper

logstash::configfile:
   'input_file':
      content: '/etc/puppet/modules/profiles/manifests/logstash/templates/input_file.erb'
      order:   '10'

Мои профили :: logstash :: shipper настроены как:

class profiles::logstash::shipper() {
  class { 'logstash':
    ensure  => 'present',
    version => '1.4.1-1_bd507eb',
    status  => 'enabled',
  }

  include logstash
}

input_file.erb:

input {
  file {
    type => "syslog"
    path => ["/var/log/secure", "/var/log/messages", "/var/log/syslog"]
    exclude => ["*.gz", "shipper.log"]
    sincedb_path => "/var/run/logstash/lssincedbs"
  }

  file {
    type => "logfile"
    path => ["/tmp/*.log"]
    sincedb_path => "/var/run/logstash/lssincedbs"
  }
}

(Я знаю, что технически это не эрб, но в конечном итоге будет)

Каждый раз, когда марионеточный агент запускает каталог, он создает пустой logstash.conf в /etc/logstash/conf.d на моего агента, выступающего в качестве грузоотправителя.

Что я сделал не так? Я, наверное, запутался, так как что-то не понял в документации github.

Обратите внимание, что это значение hiera

logstash::configfile:
  'input_file':
    content: '/etc/puppet/modules/profiles/manifests/logstash/templates/input_file.erb'
    order:   '10'

делает не неявно создать этот ресурс

logstash::configfile { 'input_file': content => '...', order => 10 }

Это бы сделайте это, если вы добавили этот вызов в свой манифест

create_resources('logstash::configfile', hiera('logstash::configfile'))

но

  1. это была бы довольно запутанная схема именования в hiera и, что более важно
  2. это не будет просто работать, если вы делать хотите, чтобы Puppet интерпретировал ваш шаблон с помощью кода ERB

Если это вариант, переместите файл конфигурации из Hiera в свой манифест.