我们正在管理一个应用程序,它有时会崩溃并转储核心。我们有一个脚本,它可以从核心输出应用程序的堆栈——以及一些其他对调试有用的详细信息。
是否可以将 Splunk 配置为在目录中遇到新的核心转储时调用脚本 - 并将脚本的输出存储在集中式服务器上?
我知道,我们可以自己做这件事——调用脚本,将其输出存储在日志中,并让 Splunk 监控该日志。但如果 Splunk 自己进行监控,那么在我们的环境中会更方便(出于非技术原因)...
四年后再次回到这个问题......“脚本输入”解决方案并不是一个很好的解决方案,因为它放弃了通用转发器中已经内置的文件跟踪 - 自定义脚本必须完成以下三项操作:
- 检测新的核心转储。
- 处理所有新检测到的核心转储。
- 跟踪已处理的核心转储。
这使得它比简单地使用 cron 或 incrond 稍微好一点。
我更希望能够对项目 1. 和 3 使用标准 UF 设施——并且只执行第二步,作为我自己的core2json
...可以做下面这样的事情吗?
[monitor:///my/application/directory/core.*]
disabled=0
sourcetype=coredump
process_with=/my/scripts/core2json
process_with
语法里有类似的东西吗inputs.conf
?
答案1
Splunk 可以做到这一点。您正在寻找的是脚本输入。
Splunk 有关于此内容的文档http://docs.splunk.com/Documentation/Splunk/7.0.2/AdvancedDev/ScriptedInputsIntro
我认为,与监视核心转储相比,定期运行脚本输入、处理任何核心转储,然后将它们移动到不同的目录(或删除它们)会更有效率,这样就不会重复处理相同的核心转储。