生成报告

What the world really needs is more love and less paperwork.

— Pearl Bailey

大型的基础设施架构往往是真正的第一受害者。如果你正管理着许多机器, 那么使用 Puppet 的报告设施,可以为你提供一些关于正在发生什么的有价值的信息。

操作步骤

要启用报告,只要将如下的行加入客户端的 puppet.conf 文件:

report = true

工作原理

启用报告之后,Puppet 将在 Puppetmaster 上生成报告文件,包含如下的数据:

  • 从 Puppetmaster 获取配置所需要的时间

  • Puppet 的总体运行时间

  • 运行期间的日志消息输出

  • 客户端配置清单中的所有资源列表

  • Puppet 是否改变了每个资源

  • 一个资源是否与配置清单不同步

默认情况下,这些报告存储在 /var/lib/puppet/reports 目录下,你也可以使用 reportdir 参数指定到不同的位置。你可以创建自己的脚本处理这些报告 (这些报告都是标准的 YAML 格式),或者使用工具,例如 Puppet Dashboard 来获得您的网络图形概览。

更多用法

在下文中将解释从 Puppet 报告中收集信息的几个实用技巧。

从命令行启用报告

如果你只是想要一个报告,或者你不想让所有客户端都发送报告, 你可以切换到命令行,手动执行带有 --report 参数的命令:

# puppet agent --test --report

你还可以使用如下带有 --summarize 参数的命令看到关于 Puppet 的运行统计概要信息:

# puppet agent --test --summarize
info: Retrieving plugin
info: Caching catalog for cookbook.bitfieldconsulting.com
info: Applying configuration version '1306169315'
notice: Finished catalog run in 0.58 seconds
Changes:
Events:
Resources:
             Total: 7
Time:
  Config retrieval: 3.65
        Filebucket: 0.00
          Schedule: 0.00
将 Puppet 的信息记入系统日志

Puppet 也可以将日志信息发送到 Puppetmaster 的 系统日志(syslog), 因此你可以使用标准的 syslog 工具分析这些日志消息。 为了实现这一点,你可以在 Puppetmaster 的配置文件 puppet.conf 中添加如下所示的选项:

[master]
reports = store,log

默认的报告类型是 store (将报告输出到 /var/lib/puppet/reports), log 选项是告诉 Puppet 同时将消息发送到 syslog。

参见本书