GKE的Stackdriver日志未显示

GKE的Stackdriver日志未显示,stackdriver,google-kubernetes-engine,google-cloud-logging,Stackdriver,Google Kubernetes Engine,Google Cloud Logging,我似乎遗漏了一些配置,但不知道在哪里 我的应用程序(golang)正在使用stackdriver日志记录。当我在本地运行时,它工作正常,我的日志消息显示在Stackdriver中。当我在GKE中运行时,我的自定义记录器消息不会显示 任何标准输出消息(fmt.println())都将显示在堆栈驱动程序中。他们只是没有适当的严重性,宁愿我们使用日志API。在我的GKE实例中,我可能会错误地配置什么,使google日志无法显示 很抱歉我的帖子模糊不清,但我没有太多要说的,没有任何错误 这是我发送消息的

我似乎遗漏了一些配置,但不知道在哪里

我的应用程序(golang)正在使用stackdriver日志记录。当我在本地运行时,它工作正常,我的日志消息显示在Stackdriver中。当我在GKE中运行时,我的自定义记录器消息不会显示

任何标准输出消息(fmt.println())都将显示在堆栈驱动程序中。他们只是没有适当的严重性,宁愿我们使用日志API。在我的GKE实例中,我可能会错误地配置什么,使google日志无法显示

很抱歉我的帖子模糊不清,但我没有太多要说的,没有任何错误

这是我发送消息的代码,如果有帮助的话

func日志消息(消息字符串、事务ID字符串、严重性日志记录。严重性){
ctx:=context.Background()
//创建一个客户端。
client,err:=logging.NewClient(ctx,loggingData.ProjectID)
如果错误!=零{
log.Fatalf(“未能创建客户端:%v”,错误)
}
//选择要写入的日志。
logger:=客户端.logger(loggingData.LogName)
logger.Log(logging.Entry{Payload:message,InsertID:transactionID,Severity:Severity})
//关闭客户端并将缓冲区刷新到Stackdriver日志
//服务。
如果错误:=client.Close();错误!=nil{
log.Panicln(“未能关闭客户端:\n”,err.Error())
返回
}
返回
}
更新:

我让SSH在节点(VM实例)中工作,并确认FluentD似乎正在工作并接收更改。我打开日志文件,只看到fmt.Println中的内容,而从golang cloud Logger中看不到任何内容

也许我不明白Google Stackdriver日志()应该如何工作?很明显,我错过了一些东西,只是还不确定是什么


感谢GKE上的

,使用了fluentd代理,它包含在VM映像(节点)中。 他的角色是监视Docker日志文件的更改,这些文件位于目录
/var/lib/Docker/containers/
中,并使用捕获pod名称和容器名称的名称从
/var/log/containers
目录以符号方式链接到。然后将这些日志提交给Google Cloud Logging,Google Cloud Logging假定安装了云日志插件

您可以从其他输入(例如)自定义流日志的代理配置

默认情况下,fluentd从监控的“k8s\u容器”的标记中提取本地\u资源\u id:

资源。格式为:

'k8s_container.<namespace_name>.<pod_name>.<container_name>'.
输出示例:

2284 ?        Sl     0:00 /opt/google-fluentd/embedded/bin/ruby /usr/sbin/google-fluentd [...]
2287 ?        Sl    42:44 /opt/google-fluentd/embedded/bin/ruby /usr/sbin/google-fluentd [...]
通过运行以下命令行执行测试:

logger "Some test message"
检查stackdriver日志以获取您的测试消息

我在云运行中运行golang应用程序时收到的消息
通过筛选可以在日志查看器web UI中找到stackdriver日志
resource.type=“project”

感谢您的回复(对延迟表示歉意,我已外出)。我似乎无法通过ssh连接到节点。我不知道为什么我的防火墙规则看起来是正确的,另一个线程。我很确定fluentd在工作,就像我使用fmt.Println时一样,它在工作,并将进入stackdriver日志(只是所有内容都是“信息”)。我使用“cloud.google.com/go/logging”的任何日志都不会显示。我确认我容器中的服务帐户看起来是正确的。我有点不知所措。将继续解决SSH问题,但似乎已启用。
logger "Some test message"