首先,根据 Istio 的 Wiki,我们从 Envoy 输出访问日志。
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: gateway-access-log
namespace: istio-system
label:
app: gateway-access-log
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
context: GATEWAY
listener:
filterChain:
filter:
name: "envoy.filters.network.http_connection_manager"
patch:
operation: MERGE
value:
typed_config:
"@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog"
path: /dev/stdout
format: "[%START_TIME%] \"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\" %RESPONSE_CODE% %RESPONSE_FLAGS% \n"
检查日志的命令是运行以下命令。
kubectl logs -l app=gateway-access-log -n istio-system
我想做的下一件事是使用另一个工具监视此访问日志。 另一个工具应该是我自己实现的应用程序,我不打算直接使用DataDog或StackDriver之类的工具。 换句话说,目标是实现一个中继服务器以将访问日志发送到您的日志记录工具。 直接的解决方案是通过管道传输
kubect logs
命令,但我认为这不是一个好方法。
静态资源: 听众:
地址: 套接字地址: 地址:0.0.0.0 端口值:8081