让人偶模块 pcfens/filebeat 工作

Getting the puppet module pcfens/filebeat to work

我是这个网站和 puppet 的新手。我正在尝试为 filebeat 设置一个人偶模块。我希望 Linux 个节点使用 module

将日志发送到 logstash

我想要一个看起来像这样的配置:

class { 'filebeat':
  outputs => {
    'logstash'     => {
     'hosts' => [
       '<FQDN>:5044',
     ],
     'enabled' => true,
    },
  },
}


filebeat::prospector { 'syslogs':
  paths    => [
    '/var/log/*.log',
    '/var/log/messages',
  ],
  doc_type => 'syslog-beat',
}

有没有人对这个模块或 Puppet 一般有任何经验,可以告诉我如何使用上面的配置配置这个模块。我现在感到一头雾水,而且我似乎找不到很多关于这个模块的文档。我真的很感激在如何设置这个模块方面朝着正确的方向前进。

您可能想问一下如何开始您的 Control Repo. But before you do that, make sure you read up on the Roles and Profiles 设计模式。

为了让你开始,你将开始这样的事情:

$ tree 
.
└── modules
    ├── profile
    │   └── manifests
    │       ├── base
    │       │   └── filebeat.pp
    │       └── base.pp
    └── role
        └── manifests
            ├── base
            └── myrole.pp

7 directories, 3 files

(显然,正如您从我上面链接的示例中看到的那样,它最终会包含更多内容。)

那么你的基地class:

$ cat modules/profile/manifests/base.pp 
class profile::base {
  include profile::base::filebeat
}

其中包括(你上面写的代码):

$ cat modules/profile/manifests/base/filebeat.pp 
class profile::base::filebeat {
  class { 'filebeat':
    outputs => {
      'logstash'     => {
       'hosts' => [
         '<FQDN>:5044',
       ],
       'enabled' => true,
      },
    },
  }

  filebeat::prospector { 'syslogs':
    paths => [
      '/var/log/*.log',
      '/var/log/messages',
    ],
    doc_type => 'syslog-beat',
  }
}

您的角色:

$ cat modules/role/manifests/myrole.pp 
class role::myrole {
  include profile::base
}

现在,您只需确保以某种方式将您的模块目录复制到 Puppet 的 modulepath.

即可在本地主机上测试代码

如果是这样,试试:

# puppet module install pcfens/filebeat
# puppet apply -e 'include role::myrole'

如果您正确安装了 Puppet,并且上面的代码是正确的,那么您就可以开始了。