【问题标题】:Stackdriver Log Agent - Log Level Irrelevant with Google Cloud Logging Driver for DockerStackdriver Log Agent - 与 Google Cloud Logging Driver for Docker 无关的日志级别
【发布时间】:2019-01-29 05:50:08
【问题描述】:

TL,DR; 在使用 CloudLoggingHandler 从使用 Google Cloud Logging driver 的 Docker 容器中进行 Stackdriver 日志记录 API 调用时,将忽略日志级别。

细节; 从运行在 Google Compute Engine 上的 Docker 容器获取日志的推荐方法是使用Stackdriver Logging Agent

最佳做法是在您的所有设备上运行 Stackdriver Logging 代理 虚拟机实例。该代理可在 Linux 和 Windows 下运行。安装 Stackdriver Logging 代理,请参阅安装 Logging 代理。

以下步骤已成功完成:

  • 确保 Compute Engine 默认服务帐号具有 EditorLogs Writer 角色。
  • 确保 VM 实例具有 Stackdriver Logging API(完整)的 Cloud API 访问范围
  • 安装启动 Stackdriver Logging Agent。

然后,我从 Google 的 Cloud Platform Python docs 复制了示例 CloudLoggingHandler example

import logging
import google.cloud.logging
from google.cloud.logging.handlers import CloudLoggingHandler

client = google.cloud.logging.Client()
handler = CloudLoggingHandler(client)

cloud_logger = logging.getLogger('cloudLogger')
cloud_logger.setLevel(logging.INFO)
cloud_logger.addHandler(handler)

cloud_logger.error('bad news error')
cloud_logger.warning('bad news warning')
cloud_logger.info('bad news info')

Docker 容器以 Google Cloud Logging Driver 标志 (--log-driver=gcplogs) 启动:

sudo docker run --log-driver=gcplogs --name=server gcr.io/my-project/server:latest

这可行,但是 所有 日志,无论级别如何,仅在查看“任何日志级别”时在 Stackdriver 中可见。奇怪的是,消息本身包含关卡

2018-08-22 22:34:42.176 BST
ERROR:bad news error

2018-08-22 22:34:42.176 BST
WARNING:bad news warning

2018-08-22 22:34:42.176 BST
WARNING:bad news info

这使得在 Stackdriver UI 中无法按级别进行过滤:

在下面的截图中,每个日志条目的 LHS 上的所有图标都显示级别为Any

【问题讨论】:

  • 由于您收到日志,因此您的配置没有问题。问题似乎更多在于 Stackdriver Logging 代理能够在日志上设置严重性。 @MartinZeitler 提供的链接来自两年前。我建议创建一个新的公共问题,GCP 团队可以在此处进一步调查 Stackdriver Logging 问题:issuetracker.google.com
  • 您是否创建了问题?
  • @Jack 你知道了吗?
  • 对于那些在 GCE 而不是 GKE 上遇到此问题的人,请尝试将您的实例切换到支持 Stackdriver Logging Agent 的操作系统而不是容器优化

标签: docker google-cloud-platform stackdriver google-cloud-stackdriver


【解决方案1】:

据我所知,CloudLoggingHandler 是一个独立的处理程序,它将日志发送到Global 日志级别。要正确集成gcplogs驱动程序,请尝试使用ContainerEngineHandler

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 2020-07-07
    • 2018-05-27
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多