如何从GCP中的Redis实例的Memorystore中检索日志

问题描述

昨晚我与Redis实例的Memorystore发生连接事件,说Redis server went away,我想检索日志以查看实际发生的情况,因为Monitoring并没有提供太多的见解。看来这比我预期的要难。

Cloud Logging中的Memorystore没有选项来检索日志-我已经在文档和SO中搜寻了几个小时的答案,但没有找到答案。我发现的只是this个文档,其中简要提到了Redis produces logs that Cloud Logging captures.-就是这样。

我什至设置了Audit Logging,为Memorystore启用了所有选项,但是它只是显示访问日志,而不是像我担心的那样显示Redis创建的实际日志。我在这里想念什么?从Memorystore检索日志肯定不是那么麻烦...如果我走的路不对,那不是怎么做的,那我该如何实现呢?我是否应该按照here的说明从GCE连接到Redis并从那里获取日志?我真的很困惑,我们将不胜感激,谢谢您。

解决方法

由于Cloud Memorystore for Redis是一项托管服务,因此您将无法通过检查社区其他帖子(例如this one)中的内容来检查日志,其方式与社区中其他帖子中的解释类似。登录到托管redis实例的服务器,因为您受到以下product constraints的约束。这是使用此类托管服务的折衷方案。如果您需要在应用程序那一侧进行更多控制,则可以host your instance on a Compute Engine VM,在那里您可以完全控制Redis服务器。如果您希望保留托管服务,则需要集中精力实施更具描述性的客户端日志,以查找在遇到此类问题期间是否运行了任何昂贵的命令。

如果您的Redis实例是在2020年11月4日之后创建的,则可以使用您提到的文档连接到该实例,并运行MONITOR命令以检查Redis服务器处理的每个命令(尽管请注意,运行此命令将对实例的性能产生影响,因为它会使吞吐量降低50%以上。)

如果您无法在文档的troubleshooting section上找到解释,则该问题可能与与您的实例相关联的Google资源上的问题有关,您应该联系Google Cloud Support