我在 Bluemix 上创建了第一个容器。我对通过 GUI 和 CLI 创建它们是多么容易感到非常满意。我现在需要进行一些调试,因此我转到 Bluemix UI 中应用程序容器的“监控和日志记录”页面查看日志,发现我需要启用监控和日志记录。我按照说明链接快速浏览了一遍。他们势不可挡。步骤 1 是“以 root 用户身份登录到容器或虚拟机”,但没有关于如何为容器执行此操作的指南。我需要在运行 SSH 守护程序的情况下构建镜像吗?如果是这样,怎么办?运行容器时是否需要提供 SSH key ?如果是这样,怎么办?有一个相关问题尚未得到解答:unable to connect through SSH key to bluemix container 任何帮助将不胜感激。
最佳答案
作为服务的一部分提供的两个默认容器都启用了 ssh。从 bluemix UI 启动这些容器时,右下角有输入字段,用于公开端口(为 ssh 公开端口 22)并粘贴您的 ssh 公钥。确保您粘贴的内容以 ssh-rsa 开头,并以 == 或您的电子邮件地址结尾。您还需要分配一个公共(public) IP 地址。
如果您要提供自己的容器,这里是我找到的一个链接,其中包含用于启用 SSH 的 dockerfile,或者 dockerhub 中有一些启用了 SSH 的容器。
https://docs.docker.com/examples/running_ssh_service/
启用 ssh 后,请按照另一个答案中粘贴的链接中的文档进行操作:https://www.ng.bluemix.net/docs/manageapps/index-gentopic5.html启用日志记录。 如果使用 bluemix 服务提供的容器镜像之一,您可以跳过“配置日志收集”下的步骤 2 和 3,因为系统会为您完成此操作。
启用日志记录需要添加到说明中的最后一步是将您在步骤 1 中安装的日志记录组件配置为由主管运行,该组件默认安装在 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-forwarder:
supervisorctl reread
supervisorctl update
如果您提供自己的容器,则需要确保容器中安装了supervisord,并且需要运行说明中的步骤1和2(您不能像使用bluemix 提供了容器),但创建/etc/supervisor/conf.d/mt-logstash-forwarder.conf 的步骤是相同的。
最后,正如步骤 3 下的注释中所述,仅监视 syslog,但您可以按照这些说明创建其他conf 文件,以允许收集您希望收集的任何日志文件。
关于logging - 如何在 Bluemix 上启用对容器的监控和日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30534588/