gpt4 book ai didi

NGINX 日志在 Stackdriver 中没有 jsonPayload 字段

转载 作者:行者123 更新时间:2023-12-01 13:16:39 26 4
gpt4 key购买 nike

我有一个基本的 nginx 部署,为 GKE 集群上运行的静态内容提供服务。我已经按照说明为集群配置了 Stackdriver Logging here (我为现有集群启用了日志记录),并且我还启用了 Stackdriver Kubernetes 监控功能解释 here .日志本身似乎工作正常,因为我可以在 Stackdriver 中看到来自 nginx 的日志。

我正在尝试创建一些基于日志的指标,例如已完成的 2xx 请求的数量,但我在 Stackdriver 中的日志条目中得到的只是 textPayload field 。据我了解,在集群上启用 Stackdriver Monitoring 会启动一些 Fluentd 代理(如果我运行 kubectl get pods -n kube-system 我可以看到这些代理),并且它们应该默认启用 nginx 日志解析器(根据文档 here )。但是,Stackdriver 中显示的所有日志条目都没有 jsonPayload结构化日志应该存在的字段。

我正在使用默认值 log_format nginx 的配置,并且我已经验证默认的 nginx 解析器能够解析我的应用程序正在写入的日志(我将 default Fluentd nginx parser plugin regular expression 和我的应用程序中的日志条目复制到 this tool 并且它能够解析条目)

我确定我一定遗漏了什么,但我不知道是什么。

编辑:

作为引用,这是我的 NGINX 日志格式:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';

到目前为止,我已经尝试了以下方法:
  • 将我的 k8s 集群从 1.11.5 版升级到 1.11.6(由于 1.11.4 版中的结构化日志问题,该问题已在 1.11.6 中修复)
  • 从版本 1.11.6 降级到 1.11.3
  • 使用 GCP 控制台(版本 1.10.9)创建一个全新的集群,启用 Stackdriver Monitoring 和 Stackdriver Logging 选项并在其上部署我的应用程序。还是没有jsonPayload场,只有 textPayload .

  • 到目前为止,这些都没有解决它。

    最佳答案

    在与 Google Cloud 支持人员联系后,我们能够为这个问题设计一个解决方法,尽管根本原因仍然未知。

    解决方法是将 NGINX 日志格式本身定义为 JSON 字符串。这将允许 Google-Fluentd 解析器将有效负载正确解析为 JSON 对象。这是迄今为止唯一对我有用的解决方案。

    作为引用,我使用的日志格式是:

    log_format json_combined escape=json
    '{'
    '"time_local":"$time_local",'
    '"remote_addr":"$remote_addr",'
    '"remote_user":"$remote_user",'
    '"request_method":"$request_method",'
    '"request":"$request",'
    '"status": "$status",'
    '"body_bytes_sent":"$body_bytes_sent",'
    '"request_time":"$request_time",'
    '"http_referrer":"$http_referer",'
    '"http_user_agent":"$http_user_agent"'
    '}';
    access_log /var/log/nginx/access.log json_combined;

    关于NGINX 日志在 Stackdriver 中没有 jsonPayload 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54223239/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com