18.10. 教程:日志记录
在 Red Hat OpenShift Service on AWS (ROSA)中有各种方法查看您的日志。使用以下步骤将日志转发到 AWS CloudWatch,并使用 oc logs
直接通过 pod 查看日志。
ROSA 没有预先配置了日志记录解决方案。
18.10.1. 将日志转发到 CloudWatch
安装日志记录附加组件服务,将日志转发到 AWS CloudWatch。
运行以下脚本,将 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.
几分钟后,您应该开始查看 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. 将数据输出到流和日志中
将消息输出到
stdout
。- 在 OSToy 应用程序中,单击 Home,然后单击 Log Message (stdout) 的消息框。
-
将消息写入
stdout
流,如 "All is good!"。 单击 Send Message。
输出消息到
stderr
。- 单击 Log Message (stderr) 的消息框。
-
将消息写入
stderr
流,例如 "Oh no!error!"。 单击 Send Message。
18.10.3. 使用 oc
命令查看应用程序日志
在命令行界面(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
。
运行以下命令查看
stdout
和stderr
信息:$ 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 查看日志
- 导航到 AWS Web 控制台 上的 CloudWatch。
在左侧菜单中,点 Logs,然后点 Log groups 来查看不同的日志组。您应该看到 3 个组:
-
ROSA-<cluster-name>.application
-
rosa-<cluster-name>.audit
rosa-<cluster-name>.infrastructure
-
-
点
rosa-<cluster-name>.application
。 点 frontend pod 的日志流。
-
过滤
stdout
和stderr
。 展开行,以显示您之前输入的消息和其他相关信息。
- 返回到日志流,再选择微服务。
- 在搜索栏中输入"microservice",以在日志中查看其他消息。
展开其中一个条目,以查看 frontend pod 从微服务收到的颜色,以及将颜色发送到 frontend pod 的 pod。