使用 Google Cloud Logging 从选定的一组日志中搜索文本?

Search for text from a selected set of logs using Google Cloud Logging?

使用 Kubernetes 时,一个 pod 有多个实例是很常见的 运行。每个 pod 都会在 "logs selector" 下拉列表中创建一个唯一的日志(见屏幕截图)。我只想搜索文本 Google 云日志控制台中的特定日志。例如,我想在名称包含 "my-pod-v1" 的所有日志中搜索文本 "Something"。这可能吗?

对于 Kubernetes 1.0 或更低版本的节点,最好的选择是使用 Cloud Logging 的“Advanced Filters”。您可以通过 select 在搜索栏末尾的下拉菜单中选择 "Convert to advanced filter".

来启用高级过滤器选项

高级过滤器允许您使用 : 运算符对日志名称进行子字符串匹配,因此您可以使用高级过滤器查询查询,例如 structPayload:Something log:kubernetes.my-pod-v1 到 select 日志行其中包括名称以 "kubernetes.my-pod-v1" 开头的日志中的文本 "Something"。请注意,此查询可能会很慢,但应该可以。

对于 Kubernetes 1.1 或更高版本的节点,这种查询变得非常容易,因为容器引擎日志在下拉框中有自己的层次结构,日志名称是容器名称而不是 pod 名称,所以所有日志通过选择适当的日志名称,可以将来自其中具有相同容器的副本简单地分组在一起。