我正在尝试获取ec2“用户数据”脚本日志并将其指向Windows上的系统日志。在linux上,有人已经找到了解决方案:http://alestic.com/2010/12/ec2-user-data-output
基本上你可以将/var/log/user-data.log发送到系统日志。我需要知道如何为Windows实例做这件事。我在我的Windows实例上找不到任何user-data.log。
您是否尝试过查看C:\ CFN \ LOG \ cfn-init.log - 这通常是您获取CFN用户数据日志的地方?
内部和周围也有有用的信息
C:\ Program Files \ Amazon \ Ec2ConfigService \ Logs \ Ec2ConfigLog.txt
参考:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-windows-stacks-bootstrapping.html
对于那些发现并且仍在寻找的人,您可以尝试查看ProgramData。这里有几个日志文件可以为您提供有关启动的更多信息。
C:\ProgramData\Amazon\EC2-Windows\Launch\Log\Ec2Launch.log
C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
您实际上不必依赖任何云/服务的标准日志。只需在开头的powershell代码中使用start-transcript
即可。如果此命令从管理员配置文件运行,或者根据运行脚本的用户配置文件在其他位置运行,它将通常在C:\Users\Administrators\Documents
中存储所有日志。
我发现有一个专用于用户数据执行的日志文件,它表示发生了错误,但它没有指出错误是什么;所以解决方案(直到ops-code做得更好)就是以一种方式为你编写用户数据代码,它将输出定向到一个文件,并且可以解析该文件以报告错误细节或帮助调试。
截至2019年7月,这个问题的答案中的几条路径都已过时。不再有任何C:\ Program Files \ Amazon \ Ec2ConfigService或C:\ CFN(至少对我来说,但我没有使用CFN来如果重要,请提供)
起初我以为C:\ ProgramData \ Amazon \ location也已过时,但我忘了ProgramData隐藏在Windows上,默认情况下不会显示隐藏文件。还记得每次安装Windows时你必须将选择设置为“显示隐藏文件”吗?我在这忘记了。
所以windows用户数据日志都在C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
中
此外,如果它有帮助,Userdata脚本本身(后任何配置模板,提供给实例)在C:\Windows\Temp\UserScript.ps1
但我想第二个tarvinder91的建议,使用powerscript函数“Start-Transcript”来轻松创建自己的日志。您可以在脚本开头设置自定义路径和-andnd,如Start-Transcript -Path "C:\UserData.log" -Append
。通过这种方式,您可以控制日志的位置,而不必担心AMI如何配置为存储日志。