文章主题: Galaxy 文档

日志

在排查任何 Galaxy 问题时,日志应该是您首先查看的地方。与 Galaxy 支持人员合作时,支持人员通常会首先查看您的日志。如果日志中已标记了明确说明的问题,您可以通过阅读日志并迭代代码直到错误消失来节省时间。

您可以通过点击您的应用,然后点击“日志”选项卡来访问日志仪表板。



日志过滤器



在“日志”选项卡下方,您可以点击几个日志过滤器。

主要选项是查看实时日志或按日期筛选日志

- 实时:这允许您实时查看日志。您可以点击查看旧日志以查看旧日志,点击底部查看新日志,并将日志设置为自动滚动
- 按日期:这允许您按日期和时间筛选日志。即使您按日期筛选,我们也会显示分页的日志。您仍然可以点击查看旧日志,以防您想查看的日志未显示。

以下是按类型筛选日志的选项

- 全部:用于组合视图。
- 应用:用于特定于应用程序的消息和错误。
- 服务:用于构建过程中生成的消息,以及指示容器正在启动或停止的消息。
- 错误:专门用于错误,这些错误在其他选项卡视图中以红色标记。

如果您正在运行多个容器并定期部署,则按选项卡细分将特别有用。

还有一个按钮,您可以下载所有仍然可用的日志(我们保留日志 7 天)。

全部



此处将显示所有消息和错误。

如果您的容器运行正常并且已运行一段时间,则此选项卡可能是最方便的检查选项卡。如果您有多个容器以及构建成功和失败的情况,则此视图可能会过于拥挤。

应用



假设我们的镜像构建器能够构建您的应用并成功启动它,则此处将显示您的应用抛出的任何消息或错误。

检查此选项卡以查看您的应用在正常操作期间的行为。您始终可以在代码中添加行以打印您的应用正在执行的操作,以增强可见性。

服务



如果您的应用未成功部署,则需要检查此选项卡。我们的镜像构建器会尝试将您的应用构建到容器中;如果失败,则此处会记录失败。

一种错误类型(例如此处)是我们的镜像构建器无法构建特定版本的软件包。如果您的应用发生这种情况,则输出通常会在软件包安装行之后包含如下所示的行

node-pre-gyp install --fallback-to-build

在这种情况下,一个可行的解决方案通常是回退到软件包的早期版本。

错误



此选项卡中将显示错误。如果您的应用出现故障,请检查是否有任何未解决的错误。

旧日志



如果您的应用抛出的任何错误或消息超过 1 周,则它们不会出现在您的日志中。有关更永久的日志存储选项,请联系support@meteor.com

下载日志



有时,您可能希望下载日志以搜索或将日志发送给没有访问您 Galaxy 应用权限的人员。您可以在过滤器选项的右侧下载日志。

默认值为 1 天。您可以选择 1 到 7 天。Galaxy 将导出您的日志,并在准备就绪后通过电子邮件发送给您。



自定义日志存储



如果您希望访问旧日志并更灵活地访问日志,您可以运行您自己的Elasticsearch服务器,并将 Galaxy 配置为将您的应用日志发送到您自己的服务器。然后,您可以使用任何支持 Elasticsearch 的工具来搜索和处理日志。几家公司提供托管的 Elasticsearch 系统,包括Elastic CloudAmazon Web Services

要使用 Galaxy 的自定义日志存储支持,请设置您的 Elasticsearch 服务器,并将它的 URL 作为USER_LOG_DESTINATION环境变量添加到您的应用的settings.json中。Galaxy 将把您的应用的标准输出和标准错误以及容器启动和退出事件的通知发送到您的 Elasticsearch 服务器。请注意,目前构建容器的日志以及 Galaxy 调度程序的一些其他服务日志不会发送到您的 Elasticsearch 服务器。

您仍然可以在 Galaxy 仪表板中查看最近一周的日志。

日志写入 Elasticsearch 索引,索引名称类似于app_logs-2018-01-29。每天(以 UTC 时区为准)都会创建一个新的索引。这使您可以通过删除旧索引轻松地回收服务器上的空间。

我们建议您创建一个索引模板来定义 Galaxy 的 Elasticsearch 集成使用的字段。索引模板告诉 Elasticsearch@timestamp字段包含日期和时间,以及其他几个包含 ID(如容器 ID)的字段不应“分析”:即,应按字面处理,而不是分解成字符串并转换为小写。

Elasticsearch 在最近的版本中更改了一些 API,因此确切的索引模板取决于您的 Elasticsearch 版本。

为 Elasticsearch 5 及更早版本设置索引模板



对于 Elasticsearch v6 之前的版本,请在您的 shell 中运行以下代码(替换为您的 Elasticsearch 服务器的凭据和地址)以创建索引模板

curl -X PUT 'https://username:password@your-elasticsearch-server.com/_template/app_logs?pretty' -H 'Content-Type: application/json' -d '
{
  "template": "app_logs-*",
  "mappings": {
    "line": {
      "properties": {
        "@timestamp": {
          "type": "date",
          "format": "dateOptionalTime"
        },
        "appId": {
          "type": "string",
          "index": "not_analyzed"
        },
        "containerId": {
          "type": "string",
          "index": "not_analyzed"
        },
        "stack": {
          "type": "string",
          "index": "not_analyzed"
        },
        "log": {
          "type": "string"
        },
        "stream": {
          "type": "string",
          "index": "not_analyzed"
        },
        "rootUrl": {
          "type": "string",
          "index": "not_analyzed"
        },
        "appVersionId": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }
}
'


为 Elasticsearch 6 设置索引模板



对于 Elasticsearch v6,请在您的 shell 中运行以下代码(替换为您的 Elasticsearch 服务器的凭据和地址)以创建索引模板

curl -X PUT 'https://username:password@your-elasticsearch-server.com/_template/app_logs?pretty' -H 'Content-Type: application/json' -d '
{
  "index_patterns": ["app_logs-*"],
  "mappings": {
    "line": {
      "properties": {
        "@timestamp": {
          "type": "date",
          "format": "dateOptionalTime"
        },
        "appId": {
          "type": "keyword",
          "index": true
        },
        "containerId": {
          "type": "keyword",
          "index": true
        },
        "stack": {
          "type": "keyword",
          "index": true
        },
        "log": {
          "type": "text",
          "index": true
        },
        "stream": {
          "type": "keyword",
          "index": true
        },
        "rootUrl": {
          "type": "keyword",
          "index": true
        },
        "appVersionId": {
          "type": "keyword",
          "index": true
        }
      }
    }
  }
}
'


为 Elasticsearch 7 及更高版本设置索引模板



对于 Elasticsearch v7,请运行以下命令以创建索引模式

curl -X PUT 'https://username:password@your-elasticsearch-server.com/_template/app_logs?pretty' -H 'Content-Type: application/json' -d '
{
  "index_patterns": ["app_logs-*"],
  "template": {
    "mappings": {
        "line": {
            "properties": {
                "@timestamp": {
                  "type": "date"
                },
                "appId": {
                  "type": "text"
                },
                "containerId": {
                  "type": "text"
                },
                "stack": {
                  "type": "text"
                },
                "log": {
                  "type": "text"
                },
                "stream": {
                  "type": "text"
                },
                "rootUrl": {
                  "type": "text"
                },
                "appVersionId": {
                  "type": "text"
                }
            }
        }
    }
  }
}
'

更新于:2024/07/15

这篇文章对您有帮助吗?

Share your feedback

Cancel

谢谢!