18.10. 教程:日志记录


在 Red Hat OpenShift Service on AWS (ROSA)中有各种方法查看您的日志。使用以下步骤将日志转发到 AWS CloudWatch,并使用 oc logs 直接通过 pod 查看日志。

注意

ROSA 没有预先配置了日志记录解决方案。

18.10.1. 将日志转发到 CloudWatch

安装日志记录附加组件服务,将日志转发到 AWS CloudWatch。

  1. 运行以下脚本,将 ROSA 集群配置为将日志转发到 CloudWatch:

    $ curl https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/resources/configure-cloudwatch.sh | bash
    注意

    将 ROSA 配置为将日志发送到 CloudWatch 超出了本教程的范围。与 AWS 集成并启用 CloudWatch 日志记录是 ROSA 的重要方面,因此包含一个脚本来简化配置过程。该脚本会自动设置 AWS CloudWatch。您可以检查脚本以了解涉及的步骤。

    输出示例

    Varaibles are set...ok.
    Policy already exists...ok.
    Created RosaCloudWatch-mycluster role.
    Attached role policy.
    Deploying the Red Hat OpenShift Logging Operator
    namespace/openshift-logging configured
    operatorgroup.operators.coreos.com/cluster-logging created
    subscription.operators.coreos.com/cluster-logging created
    Waiting for Red Hat OpenShift Logging Operator deployment to complete...
    Red Hat OpenShift Logging Operator deployed.
    secret/cloudwatch-credentials created
    clusterlogforwarder.logging.openshift.io/instance created
    clusterlogging.logging.openshift.io/instance created
    Complete.

  2. 几分钟后,您应该开始查看 AWS CloudWatch 中的日志组。运行以下命令来查看日志组:

    $ aws logs describe-log-groups --log-group-name-prefix rosa-mycluster

    输出示例

    {
        "logGroups": [
            {
                "logGroupName": "rosa-mycluster.application",
                "creationTime": 1724104537717,
                "metricFilterCount": 0,
                "arn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.application:*",
                "storedBytes": 0,
                "logGroupClass": "STANDARD",
                "logGroupArn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.application"
            },
            {
                "logGroupName": "rosa-mycluster.audit",
                "creationTime": 1724104152968,
                "metricFilterCount": 0,
                "arn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.audit:*",
                "storedBytes": 0,
                "logGroupClass": "STANDARD",
                "logGroupArn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.audit"
            },

18.10.2. 将数据输出到流和日志中

  1. 将消息输出到 stdout

    1. 在 OSToy 应用程序中,单击 Home,然后单击 Log Message (stdout) 的消息框。
    2. 将消息写入 stdout 流,如 "All is good!"。
    3. 单击 Send Message

      cloud experts deploying application logging ostoy stdout

  2. 输出消息到 stderr

    1. 单击 Log Message (stderr) 的消息框。
    2. 将消息写入 stderr 流,例如 "Oh no!error!"。
    3. 单击 Send Message

      cloud experts deploying application logging ostoy stderr

18.10.3. 使用 oc 命令查看应用程序日志

  1. 在命令行界面(CLI)中输入以下命令来检索 frontend pod 的名称:

    $ oc get pods -o name

    输出示例

    pod/ostoy-frontend-679cb85695-5cn7x 1
    pod/ostoy-microservice-86b4c6f559-p594d

    1
    pod 名称为 ostoy-frontend-679cb85695-5cn7x
  2. 运行以下命令查看 stdoutstderr 信息:

    $ oc logs <pod-name>

    输出示例

    $ oc logs ostoy-frontend-679cb85695-5cn7x
    [...]
    ostoy-frontend-679cb85695-5cn7x: server starting on port 8080
    Redirecting to /home
    stdout: All is well!
    stderr: Oh no! Error!

18.10.4. 使用 CloudWatch 查看日志

  1. 导航到 AWS Web 控制台 上的 CloudWatch
  2. 在左侧菜单中,点 Logs,然后点 Log groups 来查看不同的日志组。您应该看到 3 个组:

    • ROSA-<cluster-name>.application
    • rosa-<cluster-name>.audit
    • rosa-<cluster-name>.infrastructure

      cloud experts deploying application logging cw

  3. rosa-<cluster-name>.application
  4. 点 frontend pod 的日志流。

    cloud experts deploying application logging logstream2

  5. 过滤 stdoutstderr
  6. 展开行,以显示您之前输入的消息和其他相关信息。

    cloud experts deploying application logging stderr

  7. 返回到日志流,再选择微服务。
  8. 在搜索栏中输入"microservice",以在日志中查看其他消息。
  9. 展开其中一个条目,以查看 frontend pod 从微服务收到的颜色,以及将颜色发送到 frontend pod 的 pod。

    cloud experts deploying application logging messages

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.