Vagrant 木偶:Nagios#u主机+;木偶数据库+;Nagios=无法收集导出的资源

Vagrant 木偶:Nagios#u主机+;木偶数据库+;Nagios=无法收集导出的资源,vagrant,puppet,Vagrant,Puppet,我们目前正试图在Ubuntu Precise 64机器上创建一个Vagrant+Puppet+Nagios配置。事情进展相当顺利,但我们显然遇到了一个障碍,试图让Puppet使用“Nagios_主机”设置Nagios配置。目前,我们在同一个实例上运行所有东西:PuppetDB、Puppetmaster服务和Nagios 木偶大师似乎正确地连接到了木偶数据库。发布“puppet agent--test”并查看Puppetdb日志显示了实际更新的事实,如本链接所示:(步骤3)。 另外,查看/etc/

我们目前正试图在Ubuntu Precise 64机器上创建一个Vagrant+Puppet+Nagios配置。事情进展相当顺利,但我们显然遇到了一个障碍,试图让Puppet使用“Nagios_主机”设置Nagios配置。目前,我们在同一个实例上运行所有东西:PuppetDB、Puppetmaster服务和Nagios

木偶大师似乎正确地连接到了木偶数据库。发布“puppet agent--test”并查看Puppetdb日志显示了实际更新的事实,如本链接所示:(步骤3)。 另外,查看/etc/puppet/puppet.conf会显示storeconfigs=true和backend=puppetdb

我们的下一步是收集和导出资源,以便在Nagios中进行监视。我们已经尝试在线学习了一些教程,比如Puppetlab自己的导出资源指南。但他们都会带我们走同一条路。Puppet显示了一系列警告,并且没有生成Nagios配置:

“警告:如果未设置storeconfigs,则无法收集导出的资源;第XX行上的收集将被忽略” “警告:在没有storeconfigs的情况下不收集导出的资源”

据我们所知,这些警告表明Puppet没有发现我们已经配置了Puppetdb的事实,我们认为我们已经验证了这一事实。

我们舱单的一些相关部分:

class companyname::puppetmaster {
    package { 'puppetmaster':
      ensure => 'installed',
    }
    service { 'puppetmaster':
      ensure => 'running'
    }
    class {
        'puppetdb':
        ssl_listen_address => "0.0.0.0",
        notify => Service['puppetmaster'],
    }

    class {
        'puppetdb::master::config':
    }
}

class companyname::monitoring_server {
  package { 'nagios3':
           ensure  => installed,
           alias   => 'nagios',
   }

   service {
      'nagios3':
         ensure  => running,
         enable => true,
         alias   => 'nagios',
         hasstatus       => true,
         hasrestart      => true,
         require => Package['nagios'],
   }
  Nagios_host <<||>>    # This line triggers the warning
}
class companyname::puppetmaster{
包{'puppetmaster':
确保=>“已安装”,
}
服务{'puppetmaster':
确保=>“正在运行”
}
阶级{
“木偶数据库”:
ssl_侦听_地址=>“0.0.0.0”,
notify=>Service['puppetmaster'],
}
阶级{
'puppetdb::master::config':
}
}
类companyname::监视\u服务器{
包{'nagios3':
确保=>已安装,
别名=>“nagios”,
}
服务{
“nagios3”:
确保=>正在运行,
enable=>true,
别名=>“nagios”,
hasstatus=>正确,
hasrestart=>true,
require=>Package['nagios'],
}
Nagios_主机#此行触发警告
}
}

我们忽略了什么?

我们尝试了其他一些流浪者的盒子,包括一个Puppetlabs的CentOS盒子。同样的结果。软件版本:puppetmaster 3.5.1、puppet 3.5.1、puppetdb 1.6.3、hiera 1.3.2、facter 2.0.1、nagios3 3.3.1、nagios插件1.4.16、Vagrant 1.5.1

谢谢, 米凯尔

警告:如果未设置storeconfigs,则无法收集导出的资源;第XX行上的集合将被忽略” “警告:在没有storeconfigs的情况下不收集导出的资源”

Puppet正试图告诉您出了什么问题。您没有启用storeconfigs

在puppet主机上,确保puppet.conf文件具有以下内容:

storeconfigs = true
在[主]部分

通过在puppet master上运行以下命令进行验证:

puppet config print | grep storeconfigs

我最终将storeconfigs=true和storeconfigs\u backend=puppetdb移动到了[main]在/etc/puppet/puppet.conf.中的一节中,它修复了这个问题,但我不知道为什么。我将尝试花更多的时间来找出原因。

是的,我已经这样做了。它被配置为使用Puppetdb。仍然是相同的错误。puppet怎么能说你没有呢?再次检查puppet.conf并确保该行在[master]中部分。这与puppetdb无关。puppetdb只是存储它们的地方,而不是真正打开功能。在主运行
puppet config print时| grep storeconfigs
。如果它没有说true,它就没有打开。如果是,那么就会出现问题。“puppet master--configprint all”的结果是“取决于登录的用户。在这种情况下,puppet主进程作为“puppet”运行。列出作为“puppet”登录的主配置显示它在/var/lib/puppet/.puppet中查找配置文件。复制/etc/puppet/puppet.conf并重新启动主机。现在Sure storeconfigs=true,但重新运行“vagrant provision”仍会生成相同的警告。还尝试设置“-confdir”等,但这也不起作用。puppet.conf中的所有选项也是命令行选项。我最终将storeconfigs=true和storeconfigs\u backend=puppetdb移动到/etc/puppet/puppet.conf中的[main]部分。这解决了问题,但我不知道为什么。我会花更多的时间来找出原因。谢谢你的帮助!我遇到了完全相同的问题-我相信在Puppet 3中,[master]部分忽略了“storeconfigs”选项。无法找出原因(或者它在哪里说的),但您的修复似乎有效!