我正在尝试通过查看 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_manager
或 envoy.tcp_proxy
过滤器的一部分。要查看它的配置,请运行:
istioctl proxy-config listeners <your pod> -n <your namespace> -o json
为 HTTP 搜索 envoy.http_connection_manager
的 access_log
,为 TCP 搜索 envoy.tcp_proxy
的 access_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/