【问题标题】:How do I enable monitoring and logging for my containers on Bluemix?如何在 Bluemix 上为我的容器启用监控和日志记录?
【发布时间】:2015-05-29 16:28:03
【问题描述】:

我在 Bluemix 上创建了我的第一个容器。我很高兴通过 GUI 和 CLI 创建它们是多么容易。我现在需要进行一些调试,所以我转到 Bluemix UI 中应用程序容器的 Monitoring and Logging 页面查看日志,发现我需要启用监控和日志记录。我按照说明的链接快速浏览了它们。他们是压倒性的。第 1 步是“以 root 用户身份登录到容器或 VM”,但没有关于如何为容器执行此操作的指导。我是否需要在运行 SSH 守护程序的情况下构建映像?如果是这样,怎么做?运行容器时是否需要提供 SSH 密钥?如果是这样,怎么做?有一个相关问题仍未得到解答:unable to connect through SSH key to bluemix container 任何帮助将不胜感激。

【问题讨论】:

    标签: logging docker containers monitoring ibm-cloud


    【解决方案1】:

    作为服务的一部分提供的两个默认容器都启用了 ssh。从 bluemix UI 启动这些容器时,右下角有一些输入字段用于公开端口(公开端口 22 用于 ssh)并粘贴到您的 ssh 公钥中。确保您粘贴的内容以 ssh-rsa 开头,以 == 或您的电子邮件地址结尾。您还需要分配一个公共 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 文件,以便收集您希望收集的任何日志文件。

    【讨论】:

      【解决方案2】:

      感谢您的反馈。
      如果其他人找不到该文档,这里是有关如何设置容器监控和日志记录的文档的链接。 https://www.ng.bluemix.net/docs/manageapps/index-gentopic5.html

      那么文档是 Beta 版。我已打开反馈请求以改进该主题。您也可以到上面的页面,点击页面中间右侧的反馈按钮。该文档确实假定了一些使用容器的知识。

      您可以尝试 ssh 或附加到 docker 容器中。 $ sudo 码头工人 ps 使用返回的容器 ID 和名称。 IE 如果 ID 是 795b4a1e17b9 并且 Names 是 MyContainerName

      $ sudo docker attach 795b4a1e17b9 #by ID
      

      $ sudo docker attach MyContainerName #by Name
      $ root@795b4a1e17b9:/# 
      

      你可以尝试使用bash:

      $ sudo docker exec -it MyContainerName bash
      

      退出 bash 而不让 bash 运行进程

      $ exit
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-04
        • 2021-02-14
        • 2018-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多