Logging OpenShift 提供了一些方便的机制来查看应用程序日志。首先也是最重要的是能够直接从 Web 控制台或通过命令行检查Pod的日志。 背景:容器日志 OpenShift 的构建方式使其期望容器将所有信息记录到STDOUT. 这样,常规和错误信息都是通过标准化的 Docker 机制捕获的。直接查看Pod的日志时,您实际上是通过 Docker 守护程序通过 OpenShift 的 API 访问容器的日志。 在某些情况下,应用程序可能并未设计为将其所有信息发送到STDOUT和STDERR。在许多情况下,会使用多个本地日志文件。虽然 OpenShift 无法解析这些文件中的任何信息,但也无法阻止它们的创建。在其他情况下,日志信息会发送到某个外部系统。在这里,OpenShift 也不禁止这些行为。如果您的应用程序没有登录到STDOUT,要么是因为它已经将日志信息发送到某个“外部”系统,要么是因为它将各种日志信息写入了各种文件,请不要担心 练习:查看日志 由于我们已经部署了我们的应用程序,我们可以花一些时间来检查它的日志。在Developer Perspective 中,从 Topology 视图中,单击parksmap条目,然后单击Resources选项卡。您应该会在Pod条目旁边看到一个查看日志链接。 单击View Logs链接,您应该会看到Pod日志的视图: 如果您在日志中发现一些错误,那没关系。我们稍后会解决这些问题。 您还可以选择从命令行查看日志。获取Pod的名称: oc get pods NAME READY STATUS RESTARTS AGE parksmap-1-hx0kv 1/1 Running 0 5h 然后使用logs命令查看这个Pod的日志: oc logs parksmap-1-hx0kv 您将在屏幕上看到所有应用程序日志滚动: 2019-05-22 19:37:01.433 INFO 1 --- [ main] o.s.m.s.b.SimpleBrokerMessageHandler : Started. 2019-05-22 19:37:01.465 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2019-05-22 19:37:01.468 INFO 1 --- [ main] c.o.evg.roadshow.ParksMapApplication : Started ParksMapApplication in 3.97 seconds (JVM running for 4.418) 2019-05-22 19:38:00.762 INFO 1 --- [MessageBroker-1] o.s.w.s.c.WebSocketMessageBrokerStats : WebSocketSession[0 current WS(0)-HttpStream(0)-HttpPoll( 0), 0 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(0)-CONNECTED(0)-DISCONNECT(0)] , stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], outboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], sockJsScheduler[pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 0] 2019-05-22 19:44:11.517 INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet' 2019-05-22 19:44:11.517 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization sta rted 2019-05-22 19:44:11.533 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization com pleted in 16 ms 2019-05-22 19:44:13.395 INFO 1 --- [nio-8080-exec-2] c.o.e.roadshow.rest.BackendsController : Backends: getAll 如果您滚动日志,您可能会注意到提及服务帐户的错误。那是什么?不要害怕,我们很快就会讲到。 Routes (路由) 权限