×

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

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

将日志转发到 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"
            },

将数据输出到流和日志

  1. 将消息输出到stdout

    1. 在 OSToy 应用程序中,单击**主页**,然后单击**日志消息 (stdout)**的消息框。

    2. 编写要输出到stdout流的消息,例如“一切正常!”。

    3. 单击**发送消息**。

      cloud experts deploying application logging ostoy stdout

  2. 将消息输出到stderr

    1. 单击**日志消息 (stderr)**的消息框。

    2. 编写要输出到stderr流的消息,例如“哦,不!错误!”。

    3. 单击**发送消息**。

      cloud experts deploying application logging ostoy stderr

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

  1. 在命令行界面 (CLI) 中输入以下命令以检索前端 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!

使用 CloudWatch 查看日志

  1. AWS Web 控制台上导航到**CloudWatch**。

  2. 在左侧菜单中,单击**日志**,然后单击**日志组**以查看不同的日志组。 您应该看到 3 个组

    • rosa-<集群名称>.application

    • rosa-<集群名称>.audit

    • rosa-<集群名称>.infrastructure

      cloud experts deploying application logging cw

  3. 单击rosa-<集群名称>.application

  4. 单击前端 Pod 的日志流。

    cloud experts deploying application logging logstream2

  5. 筛选stdoutstderr

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

    cloud experts deploying application logging stderr

  7. 返回日志流并选择微服务。

  8. 在搜索栏中输入“microservice”以查看日志中的其他消息。

  9. 展开其中一个条目以查看前端 Pod 从微服务接收到的颜色以及哪个 Pod 将该颜色发送到前端 Pod。

    cloud experts deploying application logging messages