Logging 如何在Bluemix上启用容器的监视和日志记录?

Logging 如何在Bluemix上启用容器的监视和日志记录?,logging,docker,containers,monitoring,ibm-cloud,Logging,Docker,Containers,Monitoring,Ibm Cloud,我在Bluemix上创建了我的第一个容器。我很高兴能够通过GUI和CLI轻松地创建它们。我现在需要进行一些调试,因此我转到Bluemix UI中应用程序容器的监视和日志页面查看日志,发现我需要启用监视和日志。我按照说明的链接快速浏览。他们势不可挡。步骤1是“以root用户身份登录到容器或VM”,但没有关于如何为容器这样做的指导。我是否需要在SSH守护进程运行的情况下构建映像?如果是,怎么做?运行容器时是否需要提供SSH密钥?如果是,怎么做?还有一个相关的问题尚未回答: 任何帮助都将不胜感激。感谢

我在Bluemix上创建了我的第一个容器。我很高兴能够通过GUI和CLI轻松地创建它们。我现在需要进行一些调试,因此我转到Bluemix UI中应用程序容器的监视和日志页面查看日志,发现我需要启用监视和日志。我按照说明的链接快速浏览。他们势不可挡。步骤1是“以root用户身份登录到容器或VM”,但没有关于如何为容器这样做的指导。我是否需要在SSH守护进程运行的情况下构建映像?如果是,怎么做?运行容器时是否需要提供SSH密钥?如果是,怎么做?还有一个相关的问题尚未回答:
任何帮助都将不胜感激。

感谢您的反馈。
如果其他人找不到该文档,以下是有关如何设置容器的监视和日志记录的文档链接。

然后文档是Beta版的。我已经打开了一个反馈请求来改进这个主题。您也可以转到上面的页面,并单击页面右中部的反馈按钮。文档中确实假设了一些使用容器的知识

您可以尝试ssh或附加到docker容器中。 $sudo docker ps 使用返回的容器ID和名称。即如果ID为795b4a1e17b9且名称为MyContainerName

$ sudo docker attach 795b4a1e17b9 #by ID

您可以尝试使用bash:

$ sudo docker exec -it MyContainerName bash
退出bash而不让bash运行进程

$ exit

作为服务的一部分提供的两个默认容器都已启用ssh。从bluemix UI启动这些容器时,右下角有一些输入字段,用于公开端口(对于ssh,公开端口22)并粘贴到ssh公钥中。确保粘贴内容以ssh rsa开头,以==或您的电子邮件地址结尾。您还需要分配一个公共IP地址

如果您提供自己的容器,那么我找到了一个链接,其中包含用于启用SSH的dockerfile,或者dockerhub中有一些启用了SSH的容器

启用ssh后,请按照另一个答案中粘贴的链接中的文档进行操作:启用日志记录。 如果使用bluemix服务提供的其中一个容器映像,您可以跳过“配置日志收集”下的步骤2和3,因为这将为您完成

启用需要添加到说明中的日志记录的最后一步是将您在步骤1中安装的日志记录组件配置为由supervisor运行,该组件默认安装在bluemix提供的容器中

您可以通过以下方式执行此操作:

vi /etc/supervisor/conf.d/mt-logstash-forwarder.conf
并粘贴以下内容:

[program:mt-logstash-forwarder]
command=/opt/mt-logstash-forwarder/bin/run-container-lsf.sh
stdout_logfile=/var/log/mt-logstash-forwarder.log
stderr_logfile=/var/log/mt-logstash-forwarder.log
autorestart=true
然后重新启动容器,或通过运行以下命令在正在运行的容器中启动mt logstash转发器:

supervisorctl reread
supervisorctl update
如果您提供自己的容器,您需要确保supervisord安装在容器中,并且需要运行说明中的步骤1和2(您不能像使用bluemix提供的容器那样跳过步骤2),但是创建/etc/supervisor/conf.d/mt-logstash-forwarder.conf的步骤是相同的

最后,正如步骤3的说明中所述,只监视syslog,但是您可以按照这些说明创建额外的conf文件,以允许收集任何您想要的日志文件

supervisorctl reread
supervisorctl update