在哪里以及如何阅读ebextensions执行的结果?

yeg*_*256 20 amazon-web-services amazon-elastic-beanstalk

我将.ebextensions/start.config文件添加到WAR包的根文件夹中(如AWS建议的),将其部署到Elastic Beanstalk,但没有任何反应.在EC2实例中哪里可以看到此文件处理的日志?或者我可以在EBT的TAIL报告中看到这些信息?

Sam*_*ack 19

通过在线控制台快照您的Elastic Beanstalk环境的日志.

查看日志时,搜索以"cfn-init.log"开头的部分.

在那一节你会看到像这样的条目

2013-08-30 10:25:13,517 [INFO] Command 01-ec2setcomputername-enable succeeded
2013-08-30 10:25:24,516 [INFO] Command 02-install-server-monitor succeeded
2013-08-30 10:25:30,115 [INFO] Command 03-install-agent succeeded
Run Code Online (Sandbox Code Playgroud)

其中01-ec2setcomputername-enable等是我的.config文件中命令的名称.如果命令失败,您也应该在此处看到错误消息.


Pat*_*ild 8

您可以在Web UI中查看一些日志以查看您的.ebextensions工作是否正常(通过Elastic Beanstalk→查看环境→日志).您应该为您定义的每个命令看到成功或失败消息.(例如,对于命名的命令,01_setup您将看到类似的消息command 01_setup succeeded.)

查看命令输出

虽然日志快照将显示命令失败,但它不会显示命令输出:

[ERROR] Command 01_setup (setup.cmd) failed
[ERROR] Error encountered during build of postbuild_0_server: Command 01_setup failed
Traceback (most recent call last):
   <irrelevant traceback>
Run Code Online (Sandbox Code Playgroud)

您可以连接到底层EC2服务器并查看cfn-init-cmd.log文件中的命令输出(c:\cfn\log\cfn-init-cmd.log位于Windows或/var/log/cfn-init-cmd.logLinux中).这提供了更多有用的信息:

[INFO] Running command "setup.cmd"
[INFO] -----------------------Command Output-----------------------
[INFO]  'setup.cmd' is not recognized as an internal or external command,
[INFO]  operable program or batch file.
[INFO] ------------------------------------------------------------
[ERROR] Exited with error code 1
Run Code Online (Sandbox Code Playgroud)

有关连接到EC2实例的帮助,请参阅Windows说明.

进一步排查

命令输出还允许您运行任意命令以确定发生了什么.例如,哪个目录是正在执行的命令?

这是.ebextensions文件:

container_commands:
  where_am_i:
    command: dir
Run Code Online (Sandbox Code Playgroud)

以下是输出cfn-init-cmd.log:

[INFO] Running command "dir"
[INFO] -----------------------Command Output-----------------------
[INFO]   Volume in drive C has no label.
[INFO]   Volume Serial Number is 12A7-BAEB
[INFO]  
[INFO]   Directory of C:\inetpub\wwwroot
[INFO]  
[INFO]  05/29/2015  05:42 PM    <DIR>          .
[INFO]  05/29/2015  05:42 PM    <DIR>          ..
[INFO]  05/29/2015  05:42 PM    <DIR>          .ebextensions
[INFO]  05/29/2015  05:31 PM    <DIR>          bin
[INFO]  05/28/2015  05:20 PM               106 Global.asax
[INFO]  05/28/2015  05:20 PM               498 packages.config
[INFO]  05/28/2015  05:20 PM             2,054 README.md
[INFO]  05/29/2015  06:56 PM             3,064 Web.config
[INFO]                 4 File(s)          5,722 bytes
[INFO]                 4 Dir(s)   4,553,273,344 bytes free
[INFO] ------------------------------------------------------------
[INFO] Completed successfully.
Run Code Online (Sandbox Code Playgroud)


小智 7

在Linux 32位Tomcat 7容器上,我能够在:找到日志 /var/log/eb-tools.log,在那里我能够看到哪些命令失败了.

  • 这个答案现在似乎已经过时了.@ SamuelJack在这条路径上查看日志文件的答案对我有用:/var/log/cfn-init.log (8认同)

tay*_*0rs 7

对于Windows,包含自定义ebextension输出的日志文件不是通过EB控制台"request logs"命令获得的EB日志的一部分.但是,您可以通过.ebextension文件中的此文件命令轻松地将该日志文件添加到捆绑包中:

files:
  "C:\\Program Files\\Amazon\\ElasticBeanstalk\\config\\taillogs.d\\cfn-init-cmd.conf" :
    content: |
      c:\cfn\log\cfn-init-cmd.log
Run Code Online (Sandbox Code Playgroud)

它所做的只是创建一个新的配置文件(cfn-init-cmd.conf),其中包含要添加到日志包中的日志文件(cfn-init-cmd.log)的名称.