如果您在后台运行代理时puppet agent -t
,日志文件,我们可以在哪里看到更改,而不是在puppet仪表板上。
我查看了puppet.conf,在主要部分中我看到logdir
,但没有在该位置创建日志文件。
答案 0 :(得分:4)
来自文档:
作为服务运行时,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
正如劳尔所提到的,最后一次运行报告被保存为在陈述目录下的yaml文件。
根据您的操作系统和您使用的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。
答案 1 :(得分:1)
在Linux中,查看系统日志(/var/log/messages
或journalctl
)。
您应该在.yaml
/var/lib/puppet
格式生成每次执行的报告
答案 2 :(得分:1)
这是一个较旧的问题,但是被接受的答案并没有帮助我,因此这是其他人可能会发现有用的替代方法。如果您的人偶运行是前一段时间发生的,则其输出可能不会出现在/var/log/messages
中。
相反,您可以查看/var/lib/puppet/state/last_run_summary.yaml
(和last_run_report.yaml
)中在节点上运行的最后一个木偶的摘要(和报告)。该报告是上一次运行的完整日志,而摘要是简要概述。他们拥有您可能无法从messages
获得的信息。