日志文件以查看puppet agent所做的最后更改

时间:2016-12-21 06:15:55

标签: puppet

如果您在后台运行代理时puppet agent -t日志文件,我们可以在哪里看到更改,而不是在puppet仪表板上。

我查看了puppet.conf,在主要部分中我看到logdir,但没有在该位置创建日志文件。

3 个答案:

答案 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/messagesjournalctl)。 您应该在.yaml

中以/var/lib/puppet格式生成每次执行的报告

答案 2 :(得分:1)

这是一个较旧的问题,但是被接受的答案并没有帮助我,因此这是其他人可能会发现有用的替代方法。如果您的人偶运行是前一段时间发生的,则其输出可能不会出现在/var/log/messages中。

相反,您可以查看/var/lib/puppet/state/last_run_summary.yaml(和last_run_report.yaml)中在节点上运行的最后一个木偶的摘要(和报告)。该报告是上一次运行的完整日志,而摘要是简要概述。他们拥有您可能无法从messages获得的信息。