【发布时间】:2016-12-21 06:15:54
【问题描述】:
如果您为代理在后台运行时执行 puppet agent -t,那么除了 puppet 仪表板之外,我们可以在其中看到更改的日志文件在哪里。
我查看了 puppet.conf 并在主要部分看到了logdir,但在该位置没有创建日志文件。
【问题讨论】:
标签: puppet
如果您为代理在后台运行时执行 puppet agent -t,那么除了 puppet 仪表板之外,我们可以在其中看到更改的日志文件在哪里。
我查看了 puppet.conf 并在主要部分看到了logdir,但在该位置没有创建日志文件。
【问题讨论】:
标签: puppet
来自文档:
当作为服务运行时,Puppet 代理将消息记录到 syslog。您的 syslog 配置规定了这些消息的保存位置,但是 默认位置是 Linux 上的 /var/log/messages, 在 Mac OS X 上是 /var/log/system.log,在 Solaris 上是 /var/adm/messages。
当使用 --logdest FILE 选项启动时,Puppet 代理记录到 FILE 指定的文件。
https://docs.puppet.com/puppet/4.8/services_agent_unix.html#running-puppet-agent-as-a-service
正如 Raul 所提到的,上次运行报告保存为 yaml 文件,位于 stater 目录下。
根据您的操作系统和您使用的 Puppet 版本,它可能位于不同的位置。
例如,在我安装了 Puppet 4 的服务器上:
$ tree $(puppet agent --configprint statedir)
/opt/puppetlabs/puppet/cache/state
├── classes.txt
├── graphs
│ ├── expanded_relationships.dot
│ ├── relationships.dot
│ └── resources.dot
├── last_run_report.yaml
├── last_run_summary.yaml
├── resources.txt
├── state.yaml
└── transactionstore.yaml
1 directory, 9 files
阅读最后一个报告文件的好工具是report-print。如果您需要上一份报告中的某条特定信息,您可以调整一些报告打印代码来制作您自己的报告打印机。
您还可以使用所谓的报告处理器,即当您编写自定义代码来控制格式和处理时,例如发布到 Splunk 服务器、Slack、Hipchat 等。一个简单的例子是store_json,它将报告存储为 JSON 而不是 Yaml。
【讨论】:
在 Linux 中,查看系统日志(/var/log/messages 或 journalctl)。
您应该在/var/lib/puppet 中以.yaml 格式提供每次执行的报告
【讨论】:
这是一个较老的问题,但接受的答案对我没有帮助,所以这是其他人可能会觉得有用的替代方法。如果您的 puppet 运行发生在不久之前,那么它的输出可能不会出现在 /var/log/messages 中。
相反,您可以在/var/lib/puppet/state/last_run_summary.yaml(和last_run_report.yaml)的节点上查看上次puppet 运行的摘要(和报告)。该报告是上一次运行的完整日志,而摘要是简要概述。他们有您可能无法从messages 获得的信息。
【讨论】:
Windows Puppets 日志文件路径:C:\ProgramData\PuppetLabs\puppet\cache\state
在这里您会找到一些文件,我发现其中最有用的是: last_run_report.yaml 和 last_run_summary.yaml
截至目前,此路径适用于 Puppet 6.18 版^
【讨论】: