kubernetes - istio-proxy 访问日志是什么意思?

标签 kubernetes istio envoyproxy

我正在尝试通过查看 istio-proxy 访问日志(它记录每次访问)来排除我的服务故障。但是,我找不到任何文档来解释日志中每个条目的含义。

例如

[2018-12-20T11:09:42.302Z] "GET / HTTP/1.1" 200 - 0 614 0 0 "10.32.96.32" "curl/7.54.0" "17b8f245-af00-4379-9f8f-a4dcd2f38c01" "foo.com" "127.0.0.1:8080"

上面的日志是什么意思?

已更新

我试过了 Vadim's answer , 但我找不到日志格式数据。这是 output json file .有什么我想念的吗? 我正在使用 istio-1.0.0

最佳答案

Istio 代理访问日志的配置被定义为 envoy.http_connection_managerenvoy.tcp_proxy 过滤器的一部分。要查看它的配置,请运行:

istioctl proxy-config listeners <your pod> -n <your namespace> -o json

为 HTTP 搜索 envoy.http_connection_manageraccess_log,为 TCP 搜索 envoy.tcp_proxyaccess_log

你会看到这样的东西:

 "filters": [
                {
                    "name": "envoy.http_connection_manager",
                    "config": {
                        "access_log": [
                            {
                                "config": {
                                    "format": "[%START_TIME%] \"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\" %RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% \"%REQ(X-FORWARDED-FOR)%\" \"%REQ(USER-AGENT)%\" \"%REQ(X-REQUEST-ID)%\" \"%REQ(:AUTHORITY)%\" \"%UPSTREAM_HOST%\" %UPSTREAM_CLUSTER% %UPSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_REMOTE_ADDRESS% %REQUESTED_SERVER_NAME%\n",
                                    "path": "/dev/stdout"

检查日志属性定义here

如果 access_log 的格式没有在上面的输出中指定,the default format被使用。

关于kubernetes - istio-proxy 访问日志是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53867545/

相关文章:

kubernetes - Kubernetes 与 Apache Airflow 的集成

docker - Docker ENTRYPOINT 和 Kubernetes 容器规范命令之间的区别?

kubernetes - 在没有负载均衡器的情况下在Digital Ocean的托管Kubernetes上暴露端口80

kubernetes - Istio 的 `sidecar-injector-configmap.yaml` 文件使用什么 helm 语法?

kubernetes - Kubernetes集群中服务端点的基于延迟的路由

ssl - 无法在大使上启用 TLS

apache - 使用 Nginx、Apache、Envoy 或其他反向代理将相互 TLS 转换为 OAuth 客户端凭证

kubernetes - Istio 直接 Pod 到 Pod 通信

kubernetes - 没有 LB 的 Istio ingressgateway

kubernetes - Istio |不使用 Istio 入口网关的 TLS 双向认证